現在、OAuth2.0を使用してGoogleのリーダーAPIにアクセスしています。URLに返される「コード」と「状態」を正常に取得しました。現在、アクセストークンを受け取るために必要なパラメーターを渡すためにpostメソッドを使用しています。私はかなり長い間それをいじっていました、そして私が持っているのは:
{ "error": "invalid_request" }
私のコードは以下の通りです:
<?php
session_start();
$code = $_GET['code'];
$state = $_GET['state'];
if ((!is_numeric($state)) || ($state != $_SESSION['state'])) {
throw new Exception('Error validating state.');
}
$accessTokenExchangeUrl = 'https://accounts.google.com/o/oauth2/token';
$redirectUriPath = '/authentication.php';
$accessTokenExchangeParams = array(
'code' => $code,
'client_id' => 'xxxxx',
'client_secret' => 'xxxxx',
'redirect_uri' => (isset($_SERVER['HTTPS'])?'https://':'http://') . $_SERVER['HTTP_HOST'] . $redirectUriPath,
'grant_type' => 'authorization_code'
);
$goToUrl = $accessTokenExchangeUrl . '?' . http_build_query($accessTokenExchangeParams);
?>
<!DOCTYPE HTML>
<html>
<head>
<title></title>
</head>
<body>
<form action=<?php echo $goToUrl; ?> method="post">
<input type="submit" value="Click Me!">
</form>
</body>
</html>
前もって感謝します!