API-интерфейс Facebook: найдите объект графика из URL-адреса

Учитывая URL-адрес общедоступной публикации в Facebook, как можно найти объект post в API-интерфейсе FB? (во-вторых, почему так много фидов пользователей пуст или почти пуст при доступе через API?)

Мы хотели бы иметь возможность комментировать или like сообщение через v2. Икс Graph API, учитывая URL-адрес публикации. Для этого требуется объект post ID, с помощью которого мы можем сделать некоторые обоснованные предположения, но фактический объект через API оказался ненадежным (работает для некоторых должностей, но не другие).

v2 API вводит идентификаторы пользователей с приложениями, а сообщения ID обычно выглядят иметь форму {app-scoped user id} _ {unique post id}. Вот сведения о некоторых попытках найти сообщения в API с различными комбинациями эти идентификаторы (глобальный идентификатор пользователя, идентификатор пользователя приложения и почтовый идентификатор).

  • Начиная с простого примера: https://www.facebook.com/evan.prodromou/posts/10153023417510505. Ключевыми характеристиками являются то, что они публичные, это не доля другой должности, и, самое главное, у нее нет фотографий, которые добавляют дополнительные идентификаторы и URL-адреса для отдельных фотографий и фотографий. Профиль Evan также является общедоступным, т.е. https://www.facebook.com/evan.prodromou не отображает общий файл. Этот контент в настоящее время недоступен

  • С помощью этого URL-адреса будет указан идентификатор пустой страницы, /v1.0/10153023417510505 и /v2.2/10153023417510505, оба дают ошибку "Неподтвержденный запрос на получение запроса (код 100)".

  • Общий идентификатор пользователя Evan - 525575504. Прикрепив это как префикс, /v1.0/525575504_10153023417510505 и /v2.2/525575504_10153023417510505 все еще обе дают ту же ошибку запроса неподдерживаемого запроса.

  • То же самое, что и его идентификатор пользователя, не связанный с приложением, /v2.2/10152350676805505_10153023417510505.

ОК, попробуйте другое направление. Мы перейдем через пользовательский канал, пока мы не найдем сообщение, о котором идет речь. Похоже, что это более ожидаемый вариант использования API...

Для справки, здесь проблема GitHub, где мы отслеживали эту проблему.

Ответ 1

В принципе вам понадобится read_stream для этого (которое ваше приложение не получит). И да, несмотря на то, что публикация является общедоступной, вам все равно нужно read_stream, чтобы получить доступ для чтения ко всем типам сообщений.

Вы можете легко поиграть с этим в Graph API Explorer. Сначала дайте вашему приложению read_stream разрешение на получение идентификаторов элементов в вашем канале - это даст вам идентификаторы "идентификатора сообщения идентификатора пользователя с расширением приложения". Затем удалите read_stream (снова нажав "Получить токен доступа" и используя кнопку "Очистить" ) и попробуйте несколько разрешений user_*, и вы увидите, что для большинства ваших сообщений, даже для публичных, вы по-прежнему будет получать "Неподдерживаемый запрос на получение", что означает, что вам не разрешено читать этот объект.

Fe, у меня есть публичный пост, в котором общий видеоролик с другой страницы на моей временной шкале, type есть video и status_type is shared_story, но ни user_status, ни user_videos не позволяют мне читать этот пост - только когда я предоставляю read_stream снова, мое приложение может прочитать этот пост. То же самое с другим публичным сообщением типа status и status_type mobile_status_update - читаемым с помощью read_stream, а не с любыми разрешениями user_*.

Вкратце: то, чего вы хотите достичь, больше не возможно с API v2 и ограничение, которое read_stream будет предоставляться приложениям на платформах, где не существует официального клиента FB.

Ответ 2

Одно предложение состоит в том, чтобы сделать api-вызовы для написания сообщений facebook, поскольку они возвращают действительный post_id, который вы могли бы использовать

Во-вторых, Когда вы попробуете https://developers.facebook.com/tools/explorer/256884317673197/?method=GET&path=525575504%2Fposts&version=v2.0&

Вы можете видеть, что его идентификатор сообщений не начинается с его public id, как вы написали 525575504 _ *

но они все еще ставят неподдерживаемый запрос на получение

https://developers.facebook.com/tools/explorer/256884317673197/?method=GET&path=10152853212485505_351575675029953&version=v2.0

Третий, так как выше не работает, эти сообщения общедоступны наверняка?