facebook graph api确定用户是否喜欢url

时间:2010-12-01 07:11:46

标签: php javascript facebook facebook-graph-api

如果用户当前登录到Facebook并且喜欢当前页面,我想显示不同的消息。我明白了:

FB.Event.subscribe('edge.create', function(response) {
    // you like this
});

当用户喜欢该页面时会触发,但是当您重新加载页面时,您如何确定他们已经喜欢当前页面?

谢谢!

6 个答案:

答案 0 :(得分:3)

我很确定你不能做你想做的事情(在这种情况下)。

请看这个页面:http://fbrell.com/fb.api/does-like

您会看到您需要用户批准查看相似内容的权限。

允许某人看到用户的“喜欢”是一个巨大的安全风险 - 即使对于当前页面也是如此。想想你可以轻松欺骗当前页面并伪装成任何页面。

<强> BUT ...

我建议你做的只是在用户“喜欢”你的页面时为你自己的利益设置一个cookie(用javascript)。假设您从此页面获得了很大比例的“喜欢”,那么您可以安全地将Cookie的存在与“赞”相关联。

我已经看到一些安全例外,但它似乎有效(至少在Chrome中)。

答案 1 :(得分:2)

感觉您将该页面描述为“当前页面”我理解它位于iframe标签中。如果是这种情况,签名请求会将您提供的信息作为$decode_signed_request = array('page' => array('liked' => true/false))

否则,您可以提供带有GET参数fb_page_id的画布页面,其中应包含参数fb_sig_added到服务器请求的0/1,具体取决于用户是否是该页面的粉丝。 (这可能需要在迁移设置中禁用OAuth 2.0)

如果您正在谈论具有开放图形网址的类似社交插件,则无法在没有安装应用程序的情况下查明用户是否为粉丝。如果你有,你可以对/me/likes进行api调用,这将返回用户拥有的所有喜欢的列表,并搜索你正在测试的对象的id。

答案 2 :(得分:1)

使用Graph API更安全,因为Facebook正在弃用他们的REST API。因此,要获得用户喜欢您的网页,您需要使用网页ID和应用的访问权限。

https://graph.facebook.com/me/likes/PAGE_ID?format=json&access_token=ACCESS_TOKEN

  • 其中PAGE_ID是您要检查的网页ID。
  • 和ACCESS_TOKEN是您的应用访问令牌。

答案 3 :(得分:0)

在图谱API中,您可以通过他的ID获取用户的喜欢,如:

https://graph.facebook.com/ID/CONNECTION_TYPE

所以为了获得你放置访问令牌的喜欢,并且:

https://graph.facebook.com/me/likes?access_token=2222222222222222

然后查找您喜欢或不喜欢的页面。

但是你总是可以尝试FQL查询,我实际上没有尝试过喜欢。

我希望有所帮助。

答案 4 :(得分:0)

当用户喜欢该链接

时,将用户ID或third_party_id保存在数据库中

获取third_party_id

graph.facebook.com/me/?fields=third_party_id&access_token=xxx

答案 5 :(得分:0)

https://graph.facebook.com/{FB_USER_ID}?fields=likes.target_id(167584559969748)&access_token={VALID_ACCESS_TOKEN}

显示该用户是否喜欢该Facebook粉丝页面的数据。

https://graph.facebook.com/{FB_USER_ID}?fields=likes.fields(link)

显示了所需链接的列表,您可以从中获取所需的链接。

所有这些都需要'user_likes'和/或friend_likes权限。