Но это все. Если вам нужны какие-либо токены доступа или другая авторизация для выполнения действий в рамках этих внешних служб, то вам нужно справиться с этим самостоятельно.

рвых, яне ищем токен доступа для учетной записи Facebook.

Мне (или моему боту мессенджера в Facebook) нужен токен доступа для связанной сторонней учетной записи.
Аккаунт был успешно связан, как описано здесь:https://developers.facebook.com/docs/messenger-platform/identity/account-linking

Немного не по теме: Первая проблема, которую я заметил, которая не соответствует спецификациям OIDC / OAuth2, заключается в том, чтоURI перенаправления дано/ авторизацию конечная точка ожидает парамКод авторизации" вместо"код" с фактическимКод авторизации, Хорошо, хорошо, что мы не используем готовое программное обеспечение для IdP, так что я могу это исправить. Все же.

Теперь я привык из аккаунта Amazon Alexa связываться, чтобы позволить amazon управлять токенами, обновлять и т. Д. И доставлять третьим лицамтокен доступа с каждой просьбой.

Но не с Facebook, кажется. Насколько мне удалось понять (не по документам, а по try & error), для Facebook Messenger привязка аккаунта заканчивается, как только они получаютКод авторизации (и позвоните в связанный веб-крючок). Но так как мне нужен фактическийтокен доступа на каждый запрос к моему боту это не сильно поможет.

Теперь мне кажется, что я должен расширить свой бот, чтобы он стал полноценным, но не стандартизированным клиентом OAauth2 / OIDC (включая обработку токенов, обновление и т. Д.) С некоторыми проблемами:

Как проверить правильность URI перенаправления?должно быть таким же, как в первоначальном запросекак проверить код авторизации?имейте в виду, обычно этот бот не имеет подключений / доступа к базе данных IdPкак связать это с определенным идентификатором пользователя Facebook?

Теперь у меня вопрос: как справиться с таким поведением, когда я собираюсь использовать стандартизированное программное обеспечение для IdP OAuth / OIDC? Есть идеи?

Заранее спасибо Томас

РЕДАКТИРОВАТЬ: Чтобы прояснить, что подразумевается под «связыванием учетной записи»: я не заинтересован в учетной записи пользователя Facebook, я хочу получить доступ к информации сторонней учетной записи (предоставляемой моей реальной службой) этого пользователя. Например, для звонка типа «Сколько картинок в моей учетной записи Tumblr» потребуется клиент, чтобы связать учетную запись Tumblr с этим ботом мессенджера в Facebook.

Для сравнения: с Amazon Alexa и Google Actions это работало очень гладко. Мне просто нужно было ввести учетные данные клиента и конечные точки OAuth, вот и все. Если пользователь успешно связал стороннюю учетную запись, я получаю токен доступа при каждом запросе к моей бэкэнде, как и ожидалось.

EDIT2: Как указывает CBroe, это не поддерживается Facebook. Возможно только «связывание» идентификаторов пользователя.

 CBroe23 окт. 2017 г., 09:49
 CBroe23 окт. 2017 г., 10:33
Тогда я не знаю, в чем твоя настоящая проблема. При связывании учетных записей требуется, чтобы вы отправили пользователя через поток входа в FB (если вы хотите связать его с профилем пользователя Facebook), и поток входа в систему заканчивается тем, что ваше приложение обменивается кодом, полученным для токена доступа, чтобы вы могли затем использовать этот токен для запроса сведений о пользователе, таких как идентификатор области приложения.
 thomas23 окт. 2017 г., 10:30
Ну, спасибо, но, как уже упоминалось впервый линия моего вопроса, яне ищу токен доступа к фейсбуку. И так как у меня никогда не было возможности сообщить моему приложению facebook конечную точку токена моего IdP, я сомневаюсь, что это вернет токен доступа, выданный моим собственным IdP. И еще одна проблема: код авторизации довольно недолговечный, так что это даст мне только конечный токен доступа, который не очень полезен.
 CBroe23 окт. 2017 г., 10:44
«Но не с Facebook, похоже». - нет, вся цель этого состоит только в том, чтобы создать начальную «связь» между вашим идентификатором мессенджера в области страницы и любым внешним сервисом, с которым вы хотите взаимодействовать.Этот идентификатор пользователя мессенджера связан с этой учетной записью Instagram, этой учетной записью Amazon и данным профилем Google. Но это все. Если вам нужны какие-либо токены доступа или другая авторизация для выполнения действий в рамках этих внешних служб, то вам нужно справиться с этим самостоятельно.
 thomas23 окт. 2017 г., 10:37
В этом случае я мог бы уточнить, что подразумевается под «связыванием учетной записи» (как это указано в предоставленном URL): мне не нужна учетная запись пользователя на Facebook, я хочу, чтобы пользователь мог связать стороннюю учетную запись (из моя компания / служба) для этого бота-мессенджера, чтобы бот мог использовать информацию этого сервиса. Например. «Сколько картинок у меня есть в моей учетной записи Tumblr» можно сделать, только если пользователь связывает учетную запись Tumblr с ботом мессенджера Facebook и учетной записью Hin Facebook

Ответы на вопрос(0)

Ваш ответ на вопрос