2011-07-28 91 views
1

我现在想花几个小时来检查当前用户是否喜欢我的应用程序。 我在登录时需要“user_likes”权限,但即使当我点击类似按钮时,当我检查用户是否喜欢带有isFan或FQL的应用程序时,我仍然得到零喜欢!检测用户是否喜欢Facebook应用程序

这是如何我试图让用户是否“喜欢”的应用程序:

$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 />'; 

两种方法给我什么,请如果有一个人能帮助我这将会非常棒!

谢谢! Moti

+0

上的工具,你可以提供你设置$ session的代码吗? – squinlan

+0

这是我如何设置会话:$ session = $ facebook-> getUser(); – user310707

+0

您是否尝试过在Facebook文档上手动[这里](https://developers.facebook.com/docs/reference/rest/pages.isFan/)进行测试? – squinlan

回答

5

你想使用页面ID取代App ID的。我不确定您的信息页是否为Facebook页面(facebook.com/pages/ [PAGE_NAME]/[PAGE_ID])或者您是否拥有非Facebook页面。

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

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

使用该ID,而不是应用程序ID,它应该给你正确的结果。可以肯定的尝试使用Facebook docs

+0

我的应用程序如下所示:http://apps.facebook.com/MY_APPLICATION_NAME,并且没有提供任何页面ID ..任何想法? – user310707

+0

你在哪里放了类似的按钮?这是您需要ID的页面。 – squinlan

+0

我把它放在index.php页面中,但仍然没有看到页面名称..只有apps.face ....用我的名字给了我的应用程序 – user310707

2

您的网页是公开的吗?从squinlan在评论中发布的链接:

如果用户的页面被设置为小于每个人的隐私,你必须索要user_likes扩展权限的用户,包括在API调用中的有效用户访问令牌。

因此,当您通过授权流程documented here时,您将最终获得访问令牌。然后您可以附加到任何请求您对确保正确的权限被授予:

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

我确实要求提供“user_likes”权限..我也使用:hasAppPermission方法进行了检查,它给了我“真实”,所以没有问题/ – user310707

+0

您有权限,但是您是否随请求一起发送访问令牌? – shanethehat

+0

不......我只是了解它..我怎么发送它?你能给我举个例子吗? – user310707

相关问题