使用内置的类似操作检查当前用户是否喜欢URL(og.likes)

时间:2012-06-26 11:50:07

标签: javascript facebook

我的应用程序使用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按钮创建的标准游戏不同。

3 个答案:

答案 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=...

请注意,网址必须在“引号”