OSDN Git Service

一頁に表示できる最大件数を200に拡大。ユーザーTLとキーワードTLで長い投稿を省略しないように変更。
[yanmah2/YANMAH2-season2-.git] / login_processor.php
1 <?php defined("HELLO") or exit(); ?>
2 <?php
3 if (isset($_GET['with'])){
4   if (isset($_GET['callback'])){
5         $callback = $_GET['callback'];
6   } else {
7         $callback = 'http://'.$_SERVER["SERVER_NAME"].dirname($_SERVER['SCRIPT_NAME']).'/login.php?log=try';
8         if (isset($_GET['return'])) $callback = $callback.'&return='.rawurlencode($_GET['return']);
9   }
10   $error = '';
11   if ($_GET['with'] == 'twitter'){
12   } elseif ($_GET['with'] == 'haiku') {
13         $authorize = 'https://www.hatena.ne.jp/mobile/oauth/authorize';
14         // $myjson = 'http://n.hatena.com/applications/my.json';
15         $reqtoken = getRequest('https://www.hatena.com/oauth/initiate', $callback, 'read_public,write_public', $conkey, $conkey_sec);
16   //   var_dump($reqtoken);
17         if (isset($reqtoken['stat']) && $reqtoken['stat'] !== TRUE){
18           $error = "<p>ログインの初期処理に失敗しました。</p>\n<blockquote>{$reqtoken['error']}</blockquote>";
19           $_SESSION['oauth_stat'] = $reqtoken['stat'];
20         } else {
21           $_SESSION['reqtoken'] = $reqtoken['token'];
22           $_SESSION['req_sec'] = $reqtoken['secret'];
23           $redirect = $authorize.'?oauth_token='.rawurlencode($reqtoken['token']);
24           $_SESSION['auth'] = "wait";
25 //        header('HTTP/1.1 303 See Other');
26                 header('HTTP/1.1 307 Temporary Redirect');
27                 header('Location: ' . $redirect);
28                 exit();
29         }
30   }
31 }
32 if (isset($_GET['log']) && $_GET['log'] == 'try'){
33         $token = 'https://www.hatena.com/oauth/token';
34         $verifier = $_GET['oauth_verifier'];
35         $acstoken = getAccess($token, $_SESSION['reqtoken'], $_SESSION['req_sec'], $verifier, $conkey, $conkey_sec);
36         if (isset($acstoken['error'])){
37           $error = "<p>アクセストークンの取得に失敗しました。</p>\n<blockquote>{$acstoken['error']}<br />{$acstoken['body']}</blockquote>";
38           $_SESSION['auth'] = FALSE;
39           $_SESSION['oauth_stat'] = $acstoken['stat'];
40 //        var_dump($acstoken);
41         } else {
42           $_SESSION['acstoken'] = $acstoken['token'];
43           $_SESSION['acs_sec'] = $acstoken['secret'];
44           parse_str($acstoken['body'], $acs_body);
45           $_SESSION['hatenaid'] = $acs_body['url_name'];
46           $_SESSION['hatenaname'] = rawurldecode($acs_body['display_name']);
47           $_SESSION['auth'] = TRUE;
48           $_SESSION['oauth_stat'] = $acstoken['stat'];
49 //        var_dump($acstoken);
50 //        exit();
51 //        $_SESSION['reauth'] = $acstoken['stat'];
52           if (isset($_GET['image'])) $_SESSION['image'] = $_GET['image'];
53           parse_str($_SERVER['QUERY_STRING'], $parsedq);
54           foreach ($parsedq as $key => $val){
55                 if ($key == 'log' && $val == 'try') unset($parsedq['log']);
56                 if (preg_match('/^oauth_.+/', $key)) unset($parsedq[$key]);
57           }
58           $redirect = 'http://'.$_SERVER["SERVER_NAME"].$_SERVER['SCRIPT_NAME'];
59           if ($parsedq != ''){
60                 $redirect = $redirect.'?';
61                 $num = 1;
62                 foreach ($parsedq as $key => $val){
63                   if ($num == 1) {
64                         $redirect = $redirect.$key.'='.rawurlencode($val);
65                         $num = 2;
66                   } else {
67                         $redirect = $redirect.'&'.$key.'='.rawurlencode($val);
68                   }
69                 }
70           }
71 //        $redirect = 'http://'.$_SERVER["SERVER_NAME"].$_SERVER['SCRIPT_NAME'];
72 //        header('HTTP/1.1 303 See Other');
73                 header('HTTP/1.1 307 Temporary Redirect');
74                 header('Location: ' . $redirect);
75                 exit();
76         }
77 }
78 ?>