使用访问令牌时,Facebook图形API返回FALSE

时间:2014-07-07 16:29:12

标签: php facebook facebook-graph-api

在我的应用程序中,我正在尝试测试过期的访问令牌。在提出要求时

https://graph.facebook.com/1234?access_token=xxxxxxxxxx

它始终返回FALSE

奇怪的是,当复制网址并在网络浏览器中使用它时,它会返回预期结果而不是false。似乎无法在facebook文档中找到有关它为什么会返回FALSE以及如何解决它的文档。

我在stackoverflow上找到另一个问题“回答”问题,但答案不是很明确,我无法评论询问它。这是链接Facebook Graph API returns false

任何建议或帮助都将不胜感激。

编辑:

向Facebook发出请求时,它意味着返回JSON对象。我向网址0发出请求时收到的响应代码为https://graph.facebook.com/1234?access_token=xxxxxxxxxx,响应正文为FALSE,如上所述。我使用的代码如下:

$url = "https://graph.facebook.com/{user_id}?access_token=xxxxxxxxxx";
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPGET, TRUE);
curl_setopt($curl, CURLOPT_VERBOSE, 1);
curl_setopt($curl, CURLOPT_HEADER, 1);
$curl_response = curl_exec($curl);
$header_size = curl_getinfo($curl, CURLINFO_HEADER_SIZE);
$header = substr($curl_response, 0, $header_size);
$body = substr($curl_response, $header_size);
$response_code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);

运行上面的代码时,我收到FALSE响应,http代码为0。 当我将网址复制并粘贴到任何浏览器时,会发生以下情况: 如果访问令牌有效,则返回JSON格式的用户数据。 $response_code200$body的值应如下所示:

{
    id: "1234",
    first_name: "Name",
    gender: "male",
    last_name: "Surname",
    locale: "en_US",
    middle_name: "Middle Name",
    name: "Name Middle Name Surname",
    username: "name.surname"
}

如果访问令牌无效,则以JSON格式返回错误。 $response_code取决于错误,但在大多数情况下都是403.示例数据($body的值:

{
    error: {
        message: "Error validating access token: The user has not authorized application xxxxxxxxxxxxxx.",
        type: "OAuthException",
        code: 190,
        error_subcode: 458
    }
}

我知道响应代码0通常意味着从未发出过请求或者不支持curl或类似的情况但是,当我使用相同的代码$url = "http://www.google.co.za";时,我得到的响应代码为{{1}返回的响应主体是网站的html代码。所以我知道它有效,我用3个不同的网址测试了它。

0 个答案:

没有答案