Я разрабатываю приложение для Facebook на PHP, часть которого перечисляет «понравится» пользователю. Я хотел бы добавить ссылку рядом с каждым так, чтобы пользователь мог управлять ими, удаляя их там, где они сочтут нужным.
Facebook упоминает об этом в своем графике api docs:
Вы можете удалить подобное, отправив запрос DELETE в / POST_ID / нравится (так как у друзей нет идентификатора).
Но каждый из них должен иметь идентификатор – как еще вы его удаляете?
Кто-нибудь делал это раньше?
Да, в API Graph нет идентификатора. Вам нравится или не нравится элемент POSTING или DELETEing для {item_id}/likes
, где {item_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" }
Идентификатор не содержит идентификатора. Это идентификатор объекта, который понравился пользователю, поэтому, чтобы его не понравилось, вы должны сделать DELETE на http://graph.facebook.com/29956247793/likes
.
Это не «как», у которого есть идентификатор, это сообщение – поэтому в качестве цели в вызове api используется «/ POST_ID / нравится», если вы удаляете «/ POST_ID», он избавится от сообщения, но если вы удалите «/ POST_ID / нравится», он избавится от «понравится» пользователя для этого сообщения.
У Likes есть идентификатор.
Если вы посмотрите на https://graph.facebook.com/me/likes , вы увидите, что результирующие данные содержат значение идентификатора для каждого.
{ "data": [ { "name": "Audi", "category": "Consumer_products", "id": "96585976469", "created_time": "2010-09-27T15:30:15+0000" } ] }
Возможно, вы захотите попробовать идентификатор там, я заметил, что в документе FB API иногда есть ошибки.
Редактирование : Я думаю, что это также может быть проблемой терминологии, поскольку то, что говорит док, не имеет идентификаторов, вероятно, нравится сообщению пользователя, и они, вероятно, не имеют идентификатора и могут быть удалены, отправив удаление на POST_ID / любит. Затем есть похожие, созданные с помощью симпатичных кнопок и / или внешних веб-сайтов, и у них есть идентификатор. Это смущает.
С OpenGrpah у подобных есть идентификаторы, это единственное поле id в объекте, возвращаемом вызовом API для og.likes.
Вы, в отличие от использования access_token
которые использовали для этого.
псевдокод:
FacebookGraphApi::getInstance()->setAccessToken('xxx')->post('xxxxxx/likes')
FacebookGraphApi::getInstance()->setAccessToken('xxx')->delete('xxxxx/likes')