我正在用 PHP 为 Facebook 开发一个应用程序,其中一部分列出了用户的“喜欢”。我想在每个赞旁边添加一个链接,以便用户可以通过在他们认为合适的地方删除它们来管理他们的赞。
Facebook 在他们的图形 api 文档中提到了这一点:
您可以通过向 /POST_ID/likes 发出 DELETE 请求来删除赞(因为赞没有 ID)。
但是每个点赞都必须有一个 id——否则你会如何删除它?
有没有人这样做过?
我正在用 PHP 为 Facebook 开发一个应用程序,其中一部分列出了用户的“喜欢”。我想在每个赞旁边添加一个链接,以便用户可以通过在他们认为合适的地方删除它们来管理他们的赞。
Facebook 在他们的图形 api 文档中提到了这一点:
您可以通过向 /POST_ID/likes 发出 DELETE 请求来删除赞(因为赞没有 ID)。
但是每个点赞都必须有一个 id——否则你会如何删除它?
有没有人这样做过?
不是“喜欢”有 ID,而是帖子——这就是 api 调用使用“/POST_ID/likes”作为目标的原因——如果你删除“/POST_ID”,它会删除帖子,但是如果您删除“/POST_ID/likes”,它将删除用户对该帖子的“喜欢”。
是的,点赞在 Graph API 中没有 ID。您通过 POST 或 DELETEing 来喜欢或不喜欢某个项目{item_id}/likes
,其中{item_id}
替换为您喜欢/不喜欢的对象的 ID。
要找出当前用户喜欢的内容(以便您可以适当地删除它们),您可以使用 User 对象(docs)的“喜欢”连接。因此,如果您请求http://graph.facebook.com/me/likes
,您将获得用户喜欢的页面/人员/任何内容的列表。(注意:这不包括帖子或照片或类似的东西)
这将返回一个充满数据的数组,如下所示:
{
"name": "Very Hungry Caterpillar",
"category": "Artist",
"id": "29956247793",
"created_time": "2009-03-27T15:48:29+0000"
}
里面的ID不是类似的ID。它是用户喜欢的对象的 ID,因此为了不喜欢它,您必须对http://graph.facebook.com/29956247793/likes
.
你不像使用access_token
which used to make this like。
伪代码:
FacebookGraphApi::getInstance()->setAccessToken('xxx')->post('xxxxxx/likes')
FacebookGraphApi::getInstance()->setAccessToken('xxx')->delete('xxxxx/likes')
点赞确实有 ID。
如果您查看https://graph.facebook.com/me/likes,您会看到生成的数据确实包含每个 ID 值。
{
"data": [
{
"name": "Audi",
"category": "Consumer_products",
"id": "96585976469",
"created_time": "2010-09-27T15:30:15+0000"
}
]
}
您可能想尝试那里的 ID,我注意到 FB API 文档有时会出现错误。
编辑:我认为这也可能是一个术语问题,因为文档所说的没有 ID 可能喜欢用户帖子,而这些可能没有真正的 ID,可以通过向POST_ID/喜欢。然后是通过喜欢按钮喜欢页面和/或外部网站生成的喜欢,这些都具有 ID。令人困惑,它是。
使用 OpenGrpah,喜欢确实有 id,它是对象中的单个 id 字段,由对 og.likes 的 API 调用返回。