2013-02-23 104 views
0

我想用這段代碼得到access token,但沒有得到任何成功。我已經檢查了每一個捲曲操作,每一件事情都很好,但仍然無法獲得令牌。爲什麼我無法獲取訪問令牌?

this is OAuth2 Guidlines from Google

$data_string = "code=" . $_REQUEST['code'] . "&client_id=" . $client_id . "&client_secret=" . $client_secret . "&redirect_uri=" . $redirect . "&grant_type=authorization_code"; 
$ch = curl_init(); 
curl_setopt($ch,CURLOPT_URL,'https://accounts.google.com/o/oauth2/token'); 
curl_setopt($ch,CURLOPT_POST,TRUE); 
curl_setopt($ch,CURLOPT_RETURNTRANSFER,TRUE); 
curl_setopt($ch,CURLOPT_HTTPHEADER,array('Content-type: application/x-www-form-urlencoded')); 
curl_setopt($ch,CURLOPT_POSTFIELDS,$data_string); 
$response = curl_exec($ch); 
curl_close($ch); 
//$data = json_decode($response); 
print_r($response); 
+1

如果你沒有得到一個道理,一切不好。你能澄清你的意思嗎?「無法獲得令牌」?訪問者從未重定向到您的網站?重定向發生在沒有令牌的情況下?你看到一個異常或?答案是否爲空? – Basic 2013-02-23 13:44:33

回答

0
$data_string = "code=" . $_REQUEST['code'] . "&client_id=" . $client_id . "&client_secret=" . $client_secret . "&redirect_uri=" . $redirect . "&grant_type=authorization_code"; 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL,'https://accounts.google.com/o/oauth2/token'); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE); 
curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE); 
curl_setopt($ch, CURLOPT_POST,TRUE); 
curl_setopt($ch, CURLOPT_POSTFIELDS,$data_string); 
curl_setopt($ch, CURLOPT_VERBOSE, TRUE); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER,TRUE); 
curl_setopt($ch, CURLOPT_HTTPHEADER,array('Content-type: application/x-www-form-urlencoded')); 
$response = curl_exec($ch); 
curl_close($ch); 
0

請記住,如果你在你的URL中使用HTTPS,你必須添加在你的代碼:

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);