Facebook Api v2.1 — удаление ссылки не работает

Я использую Facebook Api v2.1 и столкнулся со странной ситуацией.

Я создаю новый фид, используя /{UserId}/feed с POST. Все идет нормально. Я даже могу удалить этот пост с помощью метода /{PostId} и DELETE.

Проблема в том, что я создаю канал со ссылкой, а затем пытаюсь удалить его с помощью /{LinkId} (и метода DELETE)

Он возвращает следующую ошибку: сообщение: "(# 200) Это сообщение не было создано приложением"

Как это может быть? Я уже проверил разрешения publish_actions, и вы можете быть на 100% уверены, что публикую я, потому что сообщение DELETE работает.

Любые идеи? Спасибо заранее


person Francisco Afonso    schedule 10.11.2015    source источник
comment
Я не уверен, что понимаю вопрос. Я попробовал это с проводником Graph API: developers.facebook.com/tools/explorer/ 145634995501895 Но для меня PostId или LinkId абсолютно одинаковы, если вы публикуете с использованием /{UserId}/feed, вы всегда получаете PostId (независимо от того, со ссылкой или без нее), и я всегда могу удалить его . Как вы получаете linkId?   -  person artberri    schedule 19.11.2015
comment
linkid — это то, как facebook представляет идентификаторы из каналов/сообщений типа ссылки. Проблема не в самом идентификаторе, проблема в удалении фида методом DELETE, когда фид имеет тип ссылки. Пробовал сегодня в проводнике, выдает ту же ошибку. Похоже на ошибку facebook api, но я не нашел ничего задокументированного.   -  person Francisco Afonso    schedule 19.11.2015
comment
Я говорю о том, что я создал сообщение со ссылкой, а затем попытался удалить его, и я сделал это успешно, конечно, используя проводник Graph API с одним и тем же токеном для обоих. Я не могу воспроизвести вашу ошибку.   -  person artberri    schedule 19.11.2015


Ответы (2)


Вы можете удалять сообщения, только если:

  1. Опубликовано тем же приложением, используя токен доступа пользователя пользователя, опубликовавшего их.
  2. На временной шкале страницы, которую вы администрируете, используя токен доступа к странице для этой страницы.

Похоже, вы не делаете ни того, ни другого - сообщение об ошибке, скорее всего, правильное.

Вероятно, вы можете проверить это, если он работает в https://developers.facebook.com/tools/explorer/ .

  1. Получите токен доступа пользователя для вашего приложения
  2. Опубликовать через ленту
  3. Удалить с идентификатором ссылки.

Я только что протестировал его, он отлично работает.

Обновление:

Я заметил одну вещь: когда мы создаем сообщение со ссылкой (только {post_id}), сгенерированный идентификатор отличается от того, когда мы создаем сообщение ({app_id}_{post_id}). Я считаю, что удаление для / ссылок не поддерживается. Но удаление для «/feed» с полем ссылки или без него поддерживается.

person Somnath Muluk    schedule 13.11.2015
comment
Тогда почему Post DELETE успешен, а Link DELETE нет? - person Francisco Afonso; 13.11.2015
comment
Я заметил одну вещь: когда мы создаем сообщение со ссылкой (только {post_id}), сгенерированный идентификатор отличается от того, когда мы создаем сообщение ({app_id}_{post_id}). Я считаю, что удаление для /links не поддерживается. Но удаление для «/feed» с полем ссылки или без него поддерживается. - person Somnath Muluk; 13.11.2015
comment
@FranciscoAfonso: я проверил. Но я думаю, что это как-то не работает в соответствии с документацией или отсутствует какой-то слой. - person Somnath Muluk; 16.11.2015

Проверьте мой ответ (https://stackoverflow.com/a/35204907/1861769):

Возможно, вы столкнулись с ошибкой (https://developers.facebook.com/bugs/1671530079772375/), который сейчас исправлен.

Если вы опубликовали пост со ссылкой через приложение, находящееся в режиме разработки, этот пост не был зачислен на ваше приложение [ошибка], поэтому, если вы попытались удалить его, вы не смогли бы, потому что Facebook позволяет удалять только посты, опубликованные ваше приложение.

person JavierSA    schedule 04.02.2016