无法获取粉丝页面以检查用户是否喜欢此页面或不使用fql

时间:2012-07-01 20:29:45

标签: facebook facebook-like facebook-fql facebook-apps facebook-page

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

    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无法判断该用户是否喜欢该页面?如果我们的页面位于该用户的粉丝页面中?它适用于其他用户。这是模棱两可的,但请告诉你们是否有任何想法?

先谢谢你们。

2 个答案:

答案 0 :(得分:1)

以下是我的笔记:

  1. 您应该使用Graph API用户likes连接而不是fql:/PROFILE_ID/likes/PAGE_ID
  2. 确保您拥有user_likes权限
  3. 检查此answer以获取上述内容
  4. 如果您正在尝试建立一个扇形门,那么您甚至不需要用户授权,因为Facebook会在您的页面选项卡上登陆时向您发送用户的“粉丝”状态。 See here

答案 1 :(得分:0)

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

你可以在这里关注类似的例子。

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