API Facebook: получите общий идентификатор сообщения

Используя API графиков FB, можно ли проверить, является ли сообщение общедоступным, как этот? https://www.facebook.com/alexey.kosov/posts/10203624447732200

И как получить исходный идентификатор сообщения?

Ответ 1

В вашем URL https://www.facebook.com/alexey.kosov/posts/10203624447732200 10203624447732200 - ваш идентификатор публичного сообщения. С API v2.0 вы можете получить общие сообщения с краем sharedposts: https://developers.facebook.com/docs/graph-api/reference/v2.0/object/sharedposts

Согласно документации на v2.0:

Для сообщений на странице общедоступные сообщения на странице можно восстановить с помощью любого действительного токена доступа. Сообщения людей на странице, сообщения людей, которые упоминают страницу, или целевые сообщения на странице (например, по языку или географии), могут потребовать токена пользователя или страницы. Токен доступа пользователя с read_stream или user_posts permission для любых других сообщений

Итак, вам нужен токен с одним из двух разрешений.

Я попытался извлечь этот ресурс из вашего сообщения: https://developers.facebook.com/tools/explorer/?method=GET&path=10203624447732200%2Fsharedposts&version=v2.0

И он вернул мне {"data": []}, однако после того, как я поделился этой записью, я повторил звонок, и я смог увидеть сообщение, которое я только что разделил в результатах.

Теперь, если я использую только post_id, я получаю снова пустой результат. Таким образом, вы можете видеть только, кто поделился этой записью, но нет, если она была передана кому-то другому. Если вы считаете, что общие сообщения являются узлами дерева, вы можете видеть только, что происходит в поддереве под node с post_id, который у вас есть.

Вам также необходимо учитывать, что вы не сможете получить повторно размещенные сообщения, которые вам не видны. i.e.: Если я разделяю ваше сообщение с приватностью "Только я", или если я разделяю его с конфиденциальностью "Друзья", и мы не друзья, вы не сможете его увидеть.