I found this function據推測,它會獲取accessToken,但我什麼也沒得到。 我確實有$_REQUEST['code']
以及此功能所需的其他信息。PHP。如何獲取訪問令牌。使用Google API的OAuth 2.0進行身份驗證
任何想法這裏有什麼錯? 謝謝。
//Oauth 2.0: exchange token for session token so multiple calls can be made to api
if(isset($_REQUEST['code'])){
$_SESSION['accessToken'] = get_oauth2_token($_REQUEST['code']);
}
//returns session token for calls to API using oauth 2.0
function get_oauth2_token($code) {
global $client_id;
global $client_secret;
global $redirect_uri;
$oauth2token_url = "https://accounts.google.com/o/oauth2/token";
$clienttoken_post = array(
"code" => $code,
"client_id" => $client_id,
"client_secret" => $client_secret,
"redirect_uri" => $redirect_uri,
"grant_type" => "authorization_code"
);
$curl = curl_init($oauth2token_url);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $clienttoken_post);
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$json_response = curl_exec($curl);
curl_close($curl);
$authObj = json_decode($json_response);
if (isset($authObj->refresh_token)){
//refresh token only granted on first authorization for offline access
//save to db for future use (db saving not included in example)
global $refreshToken;
$refreshToken = $authObj->refresh_token;
}
$accessToken = $authObj->access_token;
return $accessToken;
}
Thanx alot bro ....你的代碼對我來說是完美的 – deemi 2016-10-13 11:49:58
你是如何運行該文件的?我把它放到filezilla的一個php文件中,並用瀏覽器執行。但它不適用於我 – Simone 2017-08-13 11:45:03
@Simone:你有任何錯誤? – 2017-08-13 15:40:33