0

我遇到访问令牌问题已经有一段时间了,我认为这可以通过输入 try-catch 语法来解决。不幸的是,它所做的只是隐藏错误,而且 /me/accounts 有时仍会返回空。这是我的代码:

if($facebook->getUser()==0) {
    header("Location:{$facebook->getLoginUrl(array('scope' => 'SCOPE'))}");
} else {
    $user = $facebook->getUser();
    if ($user) {
        $logoutUrl = $facebook->getLogoutUrl();
    } else {
        $loginUrl = $facebook->getLoginUrl(array(
            'scope' => 'SCOPE'
        ));
    }
    try {
        $access_token=$facebook->setExtendedAccessToken();
        $accounts_list = $facebook->api('/me/accounts');            
        .
        .
        .
    } catch(FacebookApiException $e) {
        $results = $e->getResult();
    }
}

谁能告诉我为什么我的代码有时会生成一个空数组?

4

1 回答 1

0

在浏览了 Facebook 上的开发者博客后,我发现了这个:

从 /me/accounts/ 中删除应用程序我们将不再在 Graph API 中的 /me/accounts/ 下显示应用程序。您可以通过点击 /me/applications/developer/ 访问用户作为开发人员的应用程序列表。

(您可以在此处找到完整的更改列表

所以你得到空数组的原因可能是 /me/accounts 不再受支持。

此外,在进行需要访问令牌的 api 调用时,您应该像这样传递它:

$facebook->setExtendedAccessToken();
$access_token = $facebook->getAccessToken()
$facebook->api('/me/accounts', 'GET', array(
               'access_token' => $access_token));
于 2013-02-27T10:39:39.350 回答