Идентификация пользователя 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
Это позволяет получить все идентификаторы пользователей с областью приложения на основе каждого бизнеса.