我开发了一个PHP应用程序,如果用户喜欢某个页面,只需要获取。
我以这种方式登录用户:
$this->_facebook = new Facebook(array(
'appId' => "123",
'secret' => "346",
));
$this->_facebookUser = $this->_facebook->getUser();
$this->_facebook->api('/me');
然后
$checkIfUserLikePage = $this->_facebook->api(array(
"method" => "fql.query",
"query" => "select uid from page_fan where uid=me() and page_id=" . $pageid,
));
这主要起作用,但对于某些用户没有,它返回一个空数组。我在网上查了一下,我的应用可能缺少* user_likes *权限。事实上我没有这个许可。所以我再次发现我应该添加权限,卸载应用程序并重试。
所以我:
结果我仍然为用户获得一个空数组。 还有什么不对?感谢
答案 0 :(得分:5)
请勿将应用中心的权限与传递给您的范围的权限混淆。在提示用户输入权限时,您是否已将“user_likes”添加到范围?
使用JS-SDK,你可以这样做,例如:
FB.login(function(response) {
// Do some fancy stuff
}, {scope: 'user_likes'});
还要确保您拥有有效的用户访问令牌。您的PHP-SDK提供了一个名为“getAccessToken()”的方法,该方法返回当前的访问令牌。
您也可以简单地尝试打印getUser()的结果,该结果返回当前用户的userID。如果你得到0,你可以非常肯定用户没有与你的Facebook应用程序连接,因此你无法在FQL查询中使用我()。
还使用/{user-id}/permissions
查询图API。您将获得一个返回的json对象,其中包含用户提供的所有权限。当然,您需要与您的应用程序建立有效的关联用户才能执行此操作。
我希望我能给你一些有用的建议。如果没有任何帮助尝试发布更多代码。
快乐的编码!