0

我只想知道用户是否喜欢页面,以下是我的代码:

    function checkPageLike($fbuid,$token){
    $fqlquery = "SELECT uid FROM page_fan WHERE page_id = ".$this->config->item('pageId')." and uid=".$fbuid;
    $res = "0";
    try{

        $ret_obj = $this->facebook->api(array('method' => 'fql.query',
                'query' => $fqlquery,
        ),'get',array('access_token' => $token));
        if(checkArray($ret_obj ) && $ret_obj [0]['uid']){
            $res = "1";
        }
    }catch(Exception $e){
        print_r($e);
    }
    return $res;

}

因此,通过使用此代码,我可以检查我们的页面是否被该用户喜欢。它正在工作。但是其中一位 QA 做了一些不同的事情,可能是他第一次没有授予权限,然后他授予了权限,安装了应用程序。如果用户喜欢该页面,我们上面的代码无法获得。该用户删除了该应用。然后再次安装但同样的问题。他从不同的机器登录,但我们上面的代码仍然无法获取该用户是否喜欢页面。所以我想知道为什么会发生这样的问题?是应用权限的问题吗?用户设置?或者我们使用错误的方式来检查用户是否喜欢该页面?为什么 fql 无法判断该用户是否喜欢该页面?我们的页面是否在该用户的粉丝页面中?它对其他用户工作正常。

提前谢谢你们。

4

2 回答 2

1

这是我的笔记:

  1. 您应该使用 Graph API 用户likes连接而不是 fql:/PROFILE_ID/likes/PAGE_ID
  2. 确保您有user_likes权限
  3. 检查以上答案
  4. 如果您正在尝试建立一个扇门,那么您甚至不需要用户授权,因为 Facebook 会在您登陆您的页面选项卡时向您发送用户的“粉丝”状态。看这里
于 2012-07-02T09:59:32.103 回答
0

确保您的$fbuid$token正在获得有效值。此外,我们需要知道是否$this->config->item('pageId')包含要检查的正确 pageId。您可能想要编辑您的问题以包括其中的值以及如何获取它们。

您可以在此处遵循类似的示例。

https://stackoverflow.com/a/10863558/1105497

于 2012-07-02T02:52:44.977 回答