编程语言
首页 > 编程语言> > php – 无法为某些用户获取页面

php – 无法为某些用户获取页面

作者:互联网

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

所以我:

>登录到developer.facebook.com>应用> myapp>应用详情>配置App Center权限
>将“user_likes”添加到“用户和朋友权限”文本区域
>保存
>要求测试用户删除myapp
>要求测试用户访问该应用程序

结果我仍然为用户获得一个空数组.
还有什么不对?谢谢

解决方法:

不要将应用程序中心的权限误认为是您传递给范围的权限.在提示用户输入权限时,您是否已将“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对象,其中包含用户提供的所有权限.当然,您需要一个有效的连接用户与您的应用程序,以便这样做.

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

快乐的编码!

标签:php,facebook-fql
来源: https://codeday.me/bug/20190831/1774280.html