Идентификация пользователя Facebook Messenger с UserID из входа в Facebook

Я пробую новую платформу Facebook Messenger и столкнулся с небольшой проблемой.

когда пользователь впервые общается с моим ботом, я хочу использовать sender.id для поиска пользователя в моей БД и проверки того, являются ли они клиентом или нет, и предлагают более адаптированный UX.

пользователь регистрируется в моем сервисе с помощью Facebook Login, но, к сожалению, похоже, что Facebook ID моего приложения и Facebook ID моего бота отличаются из-за того, что идентификаторы ограничены App-scopes.

есть ли способ связать 2 идентификатора, чтобы позволить мне найти пользователя в моей БД?

обновление (20.04.2016): Мы обошли это, попросив пользователей при первом контакте через messenger щелкнуть ссылку для входа в свою учетную запись, чтобы мы могли связать их messenger_id с их учетной записью в нашей БД.

было бы здорово, если бы facebook вместо этого включил идентификаторы PAGE_SCOPED в ids_for_business конечной точки.

обновление: (6/1/2016): Последнее обновление Facebook включает в себя новую функциональность" Связывание учетных записей", которая, как представляется, решает эту проблему. См.https://developers.facebook.com/docs/messenger-platform/account-linking

5 ответов


последнее обновление Facebook включает в себя новую функциональность" привязка учетной записи", которая, как представляется, решить эту проблему. См.https://developers.facebook.com/docs/messenger-platform/account-linking


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


да. Вы можете получить подробную информацию, как имя, фамилия, профиль pic url, локаль, часовой пояс, пол из api. Только вам нужно передать их идентификатор получателя / идентификатор отправителя и acccess_token вашего бота-мессенджера.

https://graph.facebook.com/v2.6/USER_ID?fields=first_name,last_name,profile_pic,locale,timezone,gender&access_token=TOKEN

Я решил это по-другому, но он отлично работает graph API, я читаю почтовый ящик моей страницы, так что, когда кто-либо может взаимодействовать с помощью messenger bot, чем я читаю страницы inbox и перебираю,

Шаг 1:

сделать запрос HTTP get по graph API , вы хотите PAGE_UNIQUE_ID из Graph API,

ПОЛУЧИТЬ ЗАПРОС

https://graph.facebook.com/v2.6/<PAGE_UNIQUE_ID>?fields=conversations.limit(10){participants,updated_time,id}&access_token=<PAGE_ACCESS_TOKEN>

Page_unique_id подсказки:

Go ===> https://developers.facebook.com/tools/explorer/ ==> нажмите "получить токен" = = = > выберите нужную страницу == = >наконец отправить, вы показываете идентификатор на выходе, который является PAGE_UNIQUE_ID здесь.

Проверьте браузер для resoponse.

Шаг 2:

после выполнения выше http-запроса, вы получаете объект JSON, который покажет последние 10 разговор страниц, где желаемый Facebook id включен.


Это, вероятно, то, что вы хотите:https://developers.facebook.com/docs/apps/for-business

Это позволяет получить все идентификаторы пользователей с областью приложения на основе каждого бизнеса.