API Facebook - как получить идентификатор пользователя с областью страницы (ids_for_pages пусто)? - PullRequest
3 голосов
/ 06 февраля 2020

Моя цель - идентифицировать авторов постов, опубликованных на моей странице в Facebook, сопоставив их с идентификаторами пользователей из моей базы данных, которые имеют идентификаторы Идентификаторы пользователей в рамках приложения (ASID) .

Я сгенерировал токены доступа пользователей (через приложение) и расширил их до долгоживущих токенов доступа. Затем я сгенерировал токены доступа к страницам для всех страниц, управляемых пользователями - перечисленных через GET user/accounts.

Сначала я проверяю автора сообщения ({PID} - это идентификатор поста Facebook):

curl -X GET 'https://graph.facebook.com/v6.0/{PID}?fields=admin_creator&access_token={ACCESS_TOKEN}'

Это дает мой ID пользователя, который, как я считаю, Идентификатор страницы в области страницы (PSID) .

Чтобы выполнить сопоставление, я пытаюсь Establi sh PSID-s для всех страниц, управляемых всеми пользователями из моей базы данных:

curl -X GET 'https://graph.facebook.com/v6.0/{UID}/ids_for_pages?access_token={ACCESS_TOKEN}&appsecret_proof={APPSECRET_PROOF}'

Где {UID} - это пользователь ASID , {ACCESS_TOKEN} это токен доступа к странице, а APPSECRET_PROOF - это га sh, сгенерированный из токена доступа к странице и секрета приложения. Приложение и страницы принадлежат одному и тому же бизнесу (который обязателен для использования ids_for_pages конечная точка).

К сожалению, ответ:

{"data":[]}

Я прочитал документацию - https://developers.facebook.com/docs/facebook-login/connecting-accounts (который рекомендует использовать токен доступа к приложению для ids_for_pages) и аналогичный вопрос StackOverflow - Получение ids_for_pages из Graph возвращает пустое (которое рекомендует использовать токен доступа к странице для ids_for_pages ).

Поэтому вместо токена доступа к странице как {ACCESS_TOKEN} я также пытался использовать (с соответствующим APPSECRET_PROOF):

  1. токен доступа к приложению (генерируется из секрета приложения). )
  2. токен доступа пользователя (долгоживущий)

но без эффекта. В ответ я всегда получаю пустой список.

Я даже пытался изменить {UID} (идентификатор пользователя в приложении) на:

  1. Стандартный идентификатор профиля Facebook
  2. Идентификатор пользователя в области страницы (именно это я и хочу получить в ответ!), Полученный из поля admin_creator полученных сообщений

Ничего. Ответ пуст. Я полностью застрял.


Как и подсказывало @ 04FS, причиной может быть что-то описанное в документации API Facebook ids_for_pages (ссылка выше):

Ваш начальный вызов API может вызвать проверку приложения, выполнение которой может занять приблизительно 48 часов.

Однако прошло более 48 часов с тех пор, как был задан вопрос, и более 72 часов с момента моего первоначального вызова API , но ответ по-прежнему пуст.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...