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

Checking if the current user liked an URL using the built-in like action (og.likes)

本文关键字:用户 是否 喜欢 URL 检查 内置 like 操作 likes og      更新时间:2023-09-26

我的应用程序使用Facebook的官方内置类似操作实现自定义喜欢按钮。

唯一缺少的部分是,如果用户已经喜欢该资源,则禁用该按钮。在使用 FQL 测试了各种方法都不成功之后,我只是尝试针对 https://graph.facebook.com//og.likes 发出一个 get 请求,该请求返回当前用户的 Open Graph 喜欢。

不幸的是,我似乎找不到一种方法来过滤特定object_id的结果。任何人都可以推荐解决方案或知道使用 FQL 完成相同任务的方法吗?请注意,我们在这里谈论的是打开图喜欢,这似乎与使用Facebook喜欢按钮创建的标准喜欢不同。

我也

一直在努力知道如何使用图形API或FQL获取有关这些og.likes的信息。 它们似乎没有存储在任何常用表(url_like或link_stat)中。 这可能不是"正确"的方法,但这是我的做法。

为了检查用户是否喜欢该对象,我正在使用您提到的图形 API,网址为 graph.facebook.com/[userid]/og.likes。 然后,我只需遍历响应中的数组,并查找与我感兴趣的对象的 URL 或 ID 匹配的数组。 如果用户有很多 og.like,它不是特别有效,但它可以完成工作。

我不确定 API 是否可用。

但是,您有解决方法。当您知道正在查看的资源时,您知道用户 ID,当发布任何操作时,将其存储在您的数据库中并使用该信息禁用类似。

一旦我找到更多信息,我会及时通知您。

编辑

包含用户已点赞的打开图形 URL 的 FQL 表。

要读取您需要的url_like表

user_likes当前喜欢的所有打开图形 URL 的权限 会话用户对所有打开图形 URL 的friend_likes权限,例如 当前会话用户的好友

来源:用户喜欢

看起来您可以为您的 URL 设置一个"喜欢"按钮,然后通过在 WHERE 子句中输入"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=...

请注意,网址必须位于"引号"中