Facebook Graph - 用户“喜欢”我的页面吗?

时间:2010-05-13 20:18:34

标签: facebook facebook-graph-api

我正在尝试升级我的iPhone应用程序以使用新的facebook图形API。 我找不到的一件事是如何找出从我的应用程序连接到Facebook的当前用户是否是我的Facebook页面的粉丝 - (即在新范例中 - 用户是否喜欢我的页面)

在Rest Api中有一个函数isFan,但不在Graph中。

我可以获得用户喜欢的所有项目,并搜索其中一个是否是我的页面,但当然必须有一个更简单的方法,而不是每次我必须检查他是否是粉丝时,通过数千条记录,对吧? / p>

如果有人已经知道如何从他们的新文档中做到这一点,我将非常感谢您与我分享。

5 个答案:

答案 0 :(得分:6)

根据Facebook Dev docs,旧pages.isFan方法现在在图谱API中具有等价物

  

请注意:我们正在弃用REST API,并为此方法添加了对Graph API的等效支持。您现在可以向/ USER_ID / likes / PAGE_ID发出HTTP GET请求,以检查用户是否是粉丝的页面。

根据此情况,只要您拥有正确的{user_likesPermission或用户的喜欢是公开的,拨打/ {USER ID} / likes / {PAGE ID}就会返回必要的信息

答案 1 :(得分:0)

您正在寻找的是连接表。试试这个:

SELECT target_id, target_type
FROM connection
WHERE source_id = '_THE_USERS_FACEBOOK_ID_'
  AND target_id = '_THE_ID_OF_THE_PAGE_OR_OBJECT_TO_LIKE_'

这是一个可以从FB.api JavaScript方法或任何后端SDK运行的FQL语句。

答案 2 :(得分:0)

如果您在Facebook调用页面时解析$ _POST变量,那么这是最快捷简单的解决方案。 signed_request包含信息(也是),用户喜欢你的页面,甚至他/她还没有访问你的应用程序。

答案 3 :(得分:0)

使用PhoneGap的插件,我可以这样做:

pageID = '6815841748';
FB.api('/me', function (a) {
   user_id = a.id;
   FB.api('/' + user_id + '/likes/'+pageID, function (a) {
        alert(a.data.length);
    })
});

如果他们喜欢给定的页面ID,则返回1,否则返回0.

我发现(但尚未测试)可能更清洁的方法:

window.checkDoesLike = function() {
  FB.api({ method: 'pages.isFan', page_id: '6815841748' }, function(resp) {
    if (resp) {
      alert('You like.');
    } else {
     alert("You don't like.");
    }
  });
};

答案 4 :(得分:-2)

现在'// likes'图形资源是唯一可用的图形资源。但这并不算太糟糕。

https://graph.facebook.com/ngerakines/likes?access_token=