1 <?php defined("HELLO") or exit(); ?>
3 if (isset($_GET['with'])){
4 if (isset($_GET['callback'])){
5 $callback = $_GET['callback'];
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']);
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'];
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);
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);
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);
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]);
58 $redirect = 'http://'.$_SERVER["SERVER_NAME"].$_SERVER['SCRIPT_NAME'];
60 $redirect = $redirect.'?';
62 foreach ($parsedq as $key => $val){
64 $redirect = $redirect.$key.'='.rawurlencode($val);
67 $redirect = $redirect.'&'.$key.'='.rawurlencode($val);
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);