2012-08-17 89 views
0

用戶被重定向到登錄對話框php + facebook。歌廳訪問令牌返回:錯誤驗證驗證碼

$url = "https://graph.facebook.com/oauth/authorize?client_id=$appid&scope=&" . 
"redirect_uri=$process_url"; 

其中$ process_uri是url編碼形式https://my.domain.com/process.php?param1=value1&param2=value2的網址後。用戶返回https://my.domain.com/process.php後,我做的捲曲請求(已嘗試使用file_get_contents在前):

$url = "https://graph.facebook.com/oauth/access_token?client_id=" . 
"$appid&redirect_uri=$current_url&client_secret=$secret" . 
"&code={$_REQUEST['code']}"; 

我越來越{ "error": { "message": "Error validating verification code.", "type": "OAuthException", "code": 100 } }

谷歌搜索後,我意識到可能導致問題的主要原因是錯誤redirect_uri在curl請求。問題是:捲曲請求中應該是redirect_urihttps://my.domain.com/?或者https://my.domain.com/process.php?或https://my.domain.com/process.php?param1=value1&param2=value2

預先感謝您!

回答

1

當您將當前URL作爲redirect_uri提交到https://graph.facebook.com/oauth/access_token端點時,請刪除代碼參數。

+0

got''錯誤驗證驗證碼。「' – Eugeny89 2012-08-17 10:49:13

+0

嗯,我相信redirect_uri被用作散列,因此它必須以與您提供給授權端點完全相同的形式提交。用戶使用一個額外的參數代碼重定向到這個uri,所以只需從當前URL中刪除代碼參數就足夠了。確保編碼是相同的(包括套管)。從你上面的例子來看,它應該是「https://my.domain.com/process.php?param1=value1¶m2=value2」編碼 – darnmason 2012-08-17 10:57:10

相關問題