2012-08-17 105 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

相关问题