php - 无法像某些用户那样获取页面

标签 php facebook-fql

我开发了一个 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* 权限。事实上我没有这个许可。所以我再次发现我应该添加权限,卸载应用程序并重试。

所以我:

  1. 登录到 developer.facebook.com > apps > myapp> App details > 配置 App Center 权限
  2. 将“user_likes”添加到用户和好友权限文本区域
  3. 已保存
  4. 要求测试用户删除 myapp
  5. 要求测试用户访问该应用

结果我仍然为用户得到一个空数组。 还有什么问题?谢谢

最佳答案

不要将应用中心中的权限与您传递给范围的权限混淆。提示用户权限时,是否在范围内添加了“user_likes”?

例如,使用 JS-SDK,您可以这样做:

FB.login(function(response) {
    // Do some fancy stuff
}, {scope: 'user_likes'});

同时确保您拥有有效的用户访问 token 。您的 PHP-SDK 提供了一个名为“getAccessToken()”的方法,它返回当前的访问 token 。

您也可以简单地尝试打印返回当前用户的用户 ID 的 getUser() 的结果。如果得到 0,则可以确定用户未连接到您的 Facebook 应用程序,因此您将无法在 FQL 查询中使用 me()。

还可以使用 /{user-id}/permissions 查询图形 API。您将得到一个返回的 json 对象,其中包含用户授予的所有权限。当然,您需要一个有效的连接用户才能执行此操作。

我希望我能给你一些有用的建议。如果没有任何帮助,请尝试发布更多代码。

编码愉快!

关于php - 无法像某些用户那样获取页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20541335/

相关文章:

facebook - 如何获得好友的时间?

php - float 框将其他所有内容向下推 - 无限滚动

c# - 如何获取使用 facebook 注册应用程序注册我的网站的 facebook 用户的个人资料照片(不使用 mvc)

PHP,插入时刷新页面

php - MySQL中如何在使用LIKE查询语句的同时使用OR语句

android - 在 Android 中获取 Facebook 共同好友

facebook - 通过应用程序访问 token 使用 FQL 结交 friend

facebook -/me/home 检索新闻提要的过时 View

php - 查询生成器 Codeigniter 3

php - 一个类可以扩展一个类并实现一个接口(interface)吗