Привязка аккаунта

Функция привязки аккаунта не связана с другими функциями веб-просмотра на платформе Messenger. Ее можно активировать только кнопками входа. Ее нельзя включить в постоянном меню бота, кнопками с URL, в уже открытом веб-представлении и в плагине чата.

Разработчики, использующие эти функции, теперь могут безопасным путем получить ID пользователя с помощью функции getContext() в расширениях Messenger. Этот ID позволяет ботам привязать аккаунт пользователя или персонализировать взаимодействие с ним.

В настоящий момент привязка аккаунта поддерживается только в приложении Messenger для iOS и Android.

Когда пользователь вступает в переписку с вашей компанией, вы можете захотеть проверить, зарегистрирован ли он в ней как клиент. Мы создали безопасный протокол для привязки и отвязки аккаунтов Messenger и идентификаторов пользователей, зарегистрированных в компании.

Вы можете предложить пользователю выполнить вход, используя ваш процесс аутентификации, и по окончании получить его PSID (ID внутри страницы) Messenger. Так вы сможете сделать переписку с пользователями более безопасной, персонализированной и актуальной.

Содержание

Процесс привязки

Привязка аккаунта выполняется в несколько простых шагов.

  1. Зарегистрируйте URL обратного вызова с помощью кнопки "Войти".
  2. Платформа Messenger активирует зарегистрированный URL, когда пользователь запускает процесс привязки аккаунта. Параметры redirect_uri и account_linking_token добавляются в зарегистрированный обратный вызов.
  3. Когда привязка будет завершена, перенаправьте пользователей по ссылке redirect_uri и добавьте параметр authorization_code (который определяете вы), подтверждающий привязку.
  4. Можно также извлечь ID пользователя внутри страницы (PSID) с помощью конечной точки для привязки аккаунтов. Этот шаг следует выполнять, только если PSID пользователя понадобится вам в процессе привязки.

Отвязку аккаунта может инициировать:

Обратный вызов

URL привязки аккаунта активируется платформой Messenger, когда пользователь инициирует привязку аккаунта. В URL обратного вызова добавляются параметры redirect_uri и account_linking_token.

<yourAccountLinkingUrl>
  ?account_linking_token=ACCOUNT_LINKING_TOKEN
  &redirect_uri=CALLBACK_URL

Если привязка аккаунта прошла успешно, остается только перенаправить браузер на URL, указанный в параметре redirect_uri, и добавить параметр authorization_code, который определяете вы. Обратите внимание, что URL может уже содержать параметры, поэтому нужно добавить код авторизации соответствующим образом:

<redirect_uri>
  &authorization_code=AUTHORIZATION_CODE

Если произошел сбой привязки, перенаправьте браузер по ссылке redirect_uri, которую вы получили в виде параметра, но не добавляйте параметр authorization_code.

Параметры

Имя параметра Описание

redirect_uri

URI перенаправления, который добавит Messenger. Вам необходимо перенаправить браузер по этой ссылке в конце процесса аутентификации. Он может содержать параметры с использованием URL-кодирования.

account_linking_token

Краткосрочный маркер, который передает Messenger. В процессе перенаправления вы должны отправить его обратно. Этот маркер действует только в течение 5 минут. Он зашифрован и уникален для каждого пользователя.
С помощью этого маркера можно вызвать конечную точку для извлечения PSID, чтобы получить соответствующий PSID.

authorization_code

Код, который вы предоставляете для подтверждения успешной привязки. Платформа Messenger возвращает этот код вместе с PSID пользователя в событии Webhook привязки аккаунта. Если этот параметр не будет передан, процесс привязки прервется.

Событие Webhooks

Успешно завершенная привязка активирует событие привязки аккаунта, чтобы передать ID пользователя внутри страницы (PSID).

Вы должны зарегистрировать событие обратного вызова привязки аккаунта. В противном случае это событие Webhook прервет процесс привязки.

Конечная точка извлечения PSID

В некоторых случаях в процессе привязки необходимо извлечь ID пользователя внутри страницы (PSID). Для этого мы предоставляем специальную конечную точку, которая позволяет получить этот PSID по действительному маркеру account_linking_token до истечения срока его действия.

Запрос

curl -X GET "https://graph.facebook.com/v2.6/me?access_token=PAGE_ACCESS_TOKEN \
      &fields=recipient \
      &account_linking_token=ACCOUNT_LINKING_TOKEN"

Ответ

{
  "id": "PAGE_ID",
  "recipient": "PSID"
}    

В некоторых случаях ID пользователя внутри страницы (PSID), необходимо программными средствами отвязать от вашего сервера. Для этого мы предоставляем специальную конечную точку, которая позволяет отвязать аккаунт пользователя с указанием действующего PSID.

Запрос

curl -X POST -H "Content-Type: application/json" -d '{
   "psid":"PSID"
}' "https://graph.facebook.com/v2.6/me/unlink_accounts?access_token=PAGE_ACCESS_TOKEN"

Ответ

{
  "result": "unlink account success"
}

Рекомендации

Используйте привязку аккаунта, если у вас есть система управления аккаунтами пользователей не только в Messenger.

Позвольте создавать в Messenger аккаунты, доступные за его пределами.

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

Подумайте, какие действия должен выполнить бот, если пользователь откажется войти в систему.

Когда пользователь войдет в систему, покажите подтверждение входа и дружелюбное приветствие.

Не используйте привязку аккаунта, если люди будут общаться с вами только через Messenger. Информацию об аккаунте можно сохранить через ID переписки.

По возможности не просите человека сразу же привязать аккаунт. Сначала он должен понять, для чего нужен ваш бот.

Рекомендуемое оформление

  1. Добавьте в запрос на вход нашу кнопку "Привязка аккаунта".
  2. Покажите в веб-представлении привязки аккаунта страницу входа на ваш сайт (со ссылкой "Создать аккаунт"). Убедитесь, что она хорошо смотрится (в том числе на мобильных устройствах).
  3. После входа покажите в веб представлении подтверждение, которое пользователь должен закрыть самостоятельно.
  4. Поблагодарите человека в переписке и (или) отправьте ему дальнейшие инструкции, в том числе по выходу из системы.