Facebook错误2500,有效访问令牌

时间:2014-06-16 10:48:44

标签: php facebook facebook-graph-api curl oauth

以前我可以通过PHP中的cURL访问Facebook OAuth服务。但是,我现在收到2500错误(在这种情况下An active access token must be used to query information about the current user.)。我可以通过我的网络浏览器直接使用URL来访问信息,但是当我尝试使用PHP中的cURL访问它时,它无法工作。我正在使用Facebook API v1.0,并且使用Graph API Explorer生成令牌。

我尝试了什么

我尝试过创建新的访问令牌,并尝试使用Facebook API v2.0和无版API。正如我上面所说,我尝试在浏览器中使用完全相同的URL,这有效。我也尝试过清除cookie并再次尝试,以及尝试使用完全不同的浏览器。

我在SO上看过some of the other questions与此问题相关但没有一个答案适合我。

代码

我使用的网址只是对/me/home边缘的调用。

https://graph.facebook.com/v1.0/me/home/?since=1402913078&until=1402913213&access_token=<access token here>

其中<access token here>是访问令牌

PHP cURL代码如下所示:

$url = "<the url here>";
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

$response = curl_exec($ch);
// get the response here...

1 个答案:

答案 0 :(得分:0)

事实证明,cURL请求的实际URL与应该请求的实际URL不同(缺少GET参数)。这是由代码中的另一个位置引起的。

要验证所请求的URL是否与传递给cURL的URL相同,请使用以下代码:

$requested_url = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);