我的应用程序使用Facebook官方built-in like action实现了一个自定义按钮。
唯一缺失的部分是如果用户已经喜欢该资源,则禁用该按钮。在使用FQL测试各种不成功的方法之后,我只是尝试针对https://graph.facebook.com/<user_id>/og.likes发出get请求,并且看到当前用户返回Open Graph。
不幸的是,我似乎找不到一种方法来过滤特定object_id的结果。任何人都可以推荐一个解决方案或知道使用FQL完成相同的方法吗?请注意,我们在这里谈论Open Graph Likes,这似乎与使用Facebook Like按钮创建的标准游戏不同。
答案 0 :(得分:3)
我也一直在努力知道如何使用图形API或FQL获取有关这些og.likes的信息。它们似乎不存储在任何常用表(url_like或link_stat)中。这可能不是“正确”的方式,但这就是我的方式。
为了检查用户是否喜欢该对象,我正如你所提到的那样使用URL graph.facebook.com/ [userid] /og.likes来访问Graph API。然后我只是循环遍历响应中的数组,并寻找一个与我感兴趣的对象的URL或ID匹配的数组。如果用户有很多og.likes,它不是特别有效,但它得到了完成工作。
答案 1 :(得分:1)
我不确定API是否可用。
但是,你有解决方法。如您所知,正在查看的资源,您知道用户ID,何时发布操作,将其存储在您的数据库中并使用该信息禁用。
一旦找到更多信息,我会及时通知您。
编辑
包含用户已获取的开放图谱URL的FQL表。
要阅读您需要的url_like表
user_likes当前所喜欢的所有Open Graph网址的权限 会话用户friend_likes对所有Open Graph URL的权限 当前会话用户的朋友
来源:user likes
答案 2 :(得分:1)
看起来你可以为你的URL设置一个Like按钮,然后在WHERE子句中通过ANDing“url =”来检查用户是否喜欢它:
https://api.facebook.com/method/fql.query?query=SELECT url FROM url_like WHERE user_id = me() and url="http://www.yourUrl.com"&access_token=...
请注意,网址必须在“引号”
中