2

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

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

我可以获取用户喜欢的所有项目并搜索其中一个是否是我的页面,但肯定有一种更简单的方法,而不是每次我必须检查他是否是粉丝时都要检查数千条记录,对吧?

如果有人已经从他们的新文档中弄清楚了如何做到这一点,如果您与我分享,我将不胜感激。

4

5 回答 5

6

根据Facebook Dev docs,旧pages.isFan方法现在在 Graph API 中有一个等价物

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

据此,调用 /{USER ID}/likes/{PAGE ID} 将返回必要的信息,前提是您具有正确的 ( user_likes)权限或用户的喜欢是公开的

于 2011-01-10T22:54:44.940 回答
0

如果您在 Facebook 调用您的页面时解析 $_POST 变量,这是最快和最简单的解决方案。signed_request 有信息(以及),用户喜欢你的页面与否,甚至他/她还没有授予对你的应用程序的访问权限(还)。

于 2011-11-09T22:56:19.843 回答
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.");
    }
  });
};
于 2012-07-04T14:49:32.443 回答
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 语句。

于 2011-11-09T21:10:42.680 回答
-2

现在,'//likes' 图表资源是唯一可用的资源。不过还不错。

https://graph.facebook.com/ngerakines/likes?access_token=
于 2010-05-14T00:11:17.240 回答