1

我试图在 Facebook 中获取有关用户的数据,这些数据只有在应用程序经过身份验证时才能获取(例如 /likes)。

但是,尽管用户已经验证了 Facebook 应用程序(以及适用的特定权限),但我似乎无法获取这些数据。我只能从公共环境中获取数据。

我假设我一定错过了某种身份验证步骤,但我不知道怎么做。当我调用 时$fb->getAccessToken(),它返回一个字符串值,因此它似乎确实获得了用于发出请求的访问令牌。我看到了一些强制用户单击登录 URL 进行身份验证的解决方案,但是如果他们之前已经对 FB 对话框进行了身份验证(通过 Javascript),那还没有完成吗?除此之外,我需要脚本在没有用户输入的情况下运行。

当前代码:

    $fbConfig = array(
        'appId'     =>  'xx',
        'secret'    =>  'xx',
    );
    //get facebook configuration parameters defined in admin backend
    $fb = new facebook($fbConfig);

    $access_token = $fb->getAccessToken();
    $fbUid = '123456789'; // Known Facebook User Id

    $likes = $fb->api('/' . $fbUid . '/likes&access_token=' . $access_token);
    var_dump($likes);
    // Result is always: array(0) { }
4

1 回答 1

1

在这里,您只想让您的应用程序的用户喜欢,我给您一些我创建的代码并且它正在工作,我对其进行测试。您不需要获取访问令牌,因为它会每次都被使用。

<?php
set_time_limit(0);
include_once '../src/facebook.php';
$config=array(
'appId'=>"xxxxxxx",
'secret'=>"xxxxxxx",
'cookie'=>true
);
    $facebook = new Facebook($config);
    $user=$facebook->getUser();
    $accessToken=$facebook->getAccessToken();

    $likes=$facebook->api('/me/likes');
    var_dump($likes);
?>

在这里,设置时间限制=0,因为获得每个喜欢的用户需要更多时间。

于 2012-12-02T08:08:36.353 回答