Получение ids_for_pages из Graph возвращает пустой

У меня проблемы с подключением людей к приложениям и ботам в мессенджере.

https://developers.facebook.com/docs/messenger-platform/connecting-accounts

Я уже связал свое приложение facebook для разработчиков (с входом в систему Facebook и продуктами для обмена сообщениями) с Business, а также со страницей.

Моя цель состоит в том, чтобы мой сервер мог идентифицировать пользователя мессенджера с зарегистрированным пользователем в приложении. Таким образом, когда пользователь перейдет в мессенджер, он получит тот же опыт, что и в приложении.

Проблема в том, что когда я пытаюсь получить ids_for_pages из графика, он возвращает пустые данные даже после того, как этот пользователь разговаривает с ботом.

Graph GET (v2.10)

/{user_login_id}/ids_for_pages?access_token={user_login_access_token}&appsecret_proof={appsecret_proof}

{"data": []}

Когда я использую идентификатор Page-Scoped, я могу получить ids_for_apps (отлично, я могу использовать это для сопоставления пользователя, если пользователь уже вошел в мое приложение), но если пользователь разговаривает с ботом, а затем переходит к мое приложение я не вижу возможности сопоставить пользователя. Я также исследовал Business Mapping API с token_for_business, но это необходимо для пользовательского узла. Отлично подходит для приложения, но я не могу получить токен пользователя или пользовательский узел по идентификатору Page-Scoped ID.

https://developers.facebook.com/docs/apps/for-business

Я делаю что-то неправильно? Отсутствует разрешение? Мой бот жив и имеет pages_messaging.

Любое руководство помогает! Спасибо за уделенное время!

ИЗМЕНИТЬ

Как сказал Амурамото, я использовал неправильный access_token. Он должен быть таким же, как я использовал в ids_for_apps.

/{user_login_id}/ids_for_pages?access_token={page_access_token}&appsecret_proof={appsecret_proof}

person Fábio Oliveira    schedule 28.07.2017    source источник
comment
Вы используете правильный токен доступа? Пример в документации показывает, что для вызова ids_for_pages требуется токен доступа к приложению, а не токен доступа пользователя.   -  person amuramoto    schedule 28.07.2017
comment
Время было почти идеальным! Пройдя несколько тестов и прочитав позже, я тоже это замечаю. В самом деле, это был не тот жетон !!! Я использовал токен входа как access_token, что было неверно. Так как сообщения об ошибке не было, я не заметил. В любом случае спасибо за ваш ответ, amuramoto! Вы абсолютно правы!   -  person Fábio Oliveira    schedule 28.07.2017
comment
здесь user_login_id означает какой id? идентификатор графика или идентификатор приложения? также как вы можете создать appsecret_proof.   -  person Shojib Flamon    schedule 23.04.2018


Ответы (1)


Поместите это здесь на тот случай, если в будущем у кого-то возникнут вопросы.

Вы используете неправильный токен доступа. Пример в документации показывает, что для вызовов ids_for_pages требуется токен доступа на уровне страницы, а не токен доступа пользователя.

person amuramoto    schedule 03.08.2017
comment
Я думаю, что я использую токен доступа к странице, но с той же проблемой. Результатом являются пустые данные для других пользователей, но не для меня. Как узнать, является ли токен, который я использую, токеном доступа к странице? - person Diego; 09.08.2017
comment
@Diego PSID поступает либо из пользовательского интерфейса настроек приложения, либо через POST-запрос к API. Вы также можете узнать, какие права доступны для вашего токена, с помощью отладчика токенов доступа. - person amuramoto; 09.08.2017
comment
Когда я использую токен доступа APP на {user-page-id} / ids_for_pages, api возвращает идентификатор отправителя Messenger в порядке. Это означает, что у пользователя есть ID с обеих сторон (страницы и мессенджера). Но когда я использую токен доступа PAGE для {messenger-sender-id} / ids_for_apps & appsecret_proof, он возвращает пустые значения для других пользователей, но идентификатор страницы для меня. Любые идеи? Спасибо - person Diego; 09.08.2017