我正在尝试获取有关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) { }
答案 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,因为它需要更多的时间来吸引每个用户。