login.php
<?php
define('client_id', 'cid');
define('redirect_uri', 'http://domain.tld/file.php');
define('client_secret', 'secret');
$endpoint = 'https://accounts.google.com/o/oauth2/auth';
$querystr = array(
'response_type' => 'token',
'client_id' => client_id,
'redirect_uri' => redirect_uri,
'scope' => 'https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile',
# 'state' => $_SERVER['REQUEST_URI']
);
if (isset($_GET['access_token']))
print_r($_GET);
else
header('Location: ' . $endpoint . '?' . http_build_query($querystr));
?>
上記のコードは正常に動作します。問題は、Google からの応答が適切に形成されていないことです。私が取得しているクエリ文字列は、疑問符?
で始まっていません。番号記号で始まってい#
ます。以下は、Google のサーバーから返される例です。
http://domain.tld/file.php#access_token=ya29.AHES6ZABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmno&token_type=Bearer&expires_in=3600
クエリ文字列とファイル パスがシャープ記号で区切られているのはなぜですか? 私は https スキーマを使用しておらず、それが私を罰しているからですか?