Facebook社交图API调用经过身份验证的用户

时间:2012-11-07 22:35:41

标签: php facebook-graph-api

我正在尝试获取有关Facebook用户的数据,只有在应用经过身份验证后才会被提取(例如/喜欢)。

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

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

当前代码:

    $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) { }

1 个答案:

答案 0 :(得分: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,因为它需要更多的时间来吸引每个用户。