如果用户当前登录到Facebook并且喜欢当前页面,我想显示不同的消息。我明白了:
FB.Event.subscribe('edge.create', function(response) {
// you like this
});
当用户喜欢该页面时会触发,但是当您重新加载页面时,您如何确定他们已经喜欢当前页面?
谢谢!
答案 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
答案 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
权限。