检测用户是否喜欢facebook app

时间:2011-07-28 22:47:42

标签: php facebook

我正在尝试几个小时来检查当前用户是否“喜欢”我的应用。 我确实要求登录时使用“user_likes”权限,但即使我点击“赞”按钮,当我检查用户是否喜欢使用isFan或FQL的应用程序时,我仍然得到零赞!

如果用户“喜欢”该应用,我就会尝试这样做:

$isFan = $facebook->api(array(
  "method"    => "pages.isFan",
  "page_id"   => xxxxx,
  "uid"       => $session
));

if($isFan === TRUE)
  echo "I'm a fan!";

OR

$likes = $facebook->api(array(
  'method' => 'fql.query', 
  'query' => "SELECT uid FROM page_fan WHERE page_id='xxxxx' AND uid='$session'", 
));

print  'likes found: ' . count($likes) . '<br />';

这两种方法都没有给我任何帮助,如果有人可以帮助我,那就太棒了!

谢谢! 莫蒂

2 个答案:

答案 0 :(得分:5)

您希望使用Page ID而不是App ID。我不确定您的页面是否是Facebook页面(facebook.com/pages/ [PAGE_NAME] / [PAGE_ID] )或者您是否有非Facebook页面

显然,如果你有一个Facebook页面,那么URL末尾的数字就是你的页面ID。否则,如果您有非Facebook页面,则可以使用该图表获取您的页面ID。

  

https://graph.facebook.com/?id= [PAGE_URL]

使用该ID而不是应用ID,它应该为您提供正确的结果。请务必使用Facebook docs

上的工具进行试用

答案 1 :(得分:2)

您的网页是否公开?来自squinlan评论中发布的链接:

  

如果用户的页面设置为低于每个人的隐私,则必须询问用户user_likes扩展权限,并在API调用中包含有效的用户访问令牌。

因此,当您通过documented here进行授权过程时,最终会获得一个访问令牌。然后,将其附加到您发出的任何请求以确保授予正确的权限:

$isFan = $facebook->api(array(
  "method"       => "pages.isFan",
  "page_id"      => xxxxx,
  "uid"          => $session,
  "access_token" => $access_token
));