META

Вход через META

Приложение запрашивает код

Получение токена в обмен на код, извлеченный из URL:

  • Приложение направляет пользователя на страницу META.OAuth, где он может разрешить доступ к своим данным.
  • Пользователь разрешает доступ приложению.
  • META.OAuth перенаправляет пользователя на адрес, указанный в поле Callback URL при регистрации приложения. Код подтверждения (или описание ошибки) передается в параметре URL перенаправления.
  • Приложение получает адрес перенаправления и извлекает код подтверждения.
  • Приложение отправляет POST-запрос с кодом.
  • META.OAuth возвращает токен или ошибку в теле ответа.

Регистрируете приложение

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

Запрос кода подтверждения

http://YOUR-META-URL/oauth2/authorize?response_type=code

  client_id=<идентификатор приложения>
  & redirect_uri=<адрес перенаправления>
  & state=<произвольная строка>
  & scope=<запрашиваемые необходимые права>

Получение кода подтверждения из URL

Когда пользователь разрешает доступ к своим данным META.OAuth перенаправляет пользователя на указанный вами redirect_uri с добавлением GET параметра code

Обмен кода подтверждения на токен

Приложение отправляет код, а также свой идентификатор и пароль в POST-запросе.

POST /oauth2/token HTTP/1.1
Host: YOUR-META-URL
Content-type: application/x-www-form-urlencoded
Content-Length: <длина тела запроса>

  grant_type=authorization_code
  & code=<код подтверждения>
  & client_id=<идентификатор приложения>
  & client_secret=<пароль приложения>

Формат ответа с токеном

{
  "scopes": [
    "userinfo.profile"
  ],
  "token_type": "bearer",
  "expires": 300,
  "access_token": "eyJraWQiOiJhZWRiYmZlN2NjZjA3YzRiZWZkNDUwOTAxNTAxYjgzNzg3Njg1ZWNmIiwidHlwIjoiSldUIiwiYWxnIjoiUlMyNTYifQ.eyJhdWQiOiJhcGlzLmRldmlzaW9uLmlvIiwic3ViIjoiMTAxOTEiLCJpdWlkIjowLCJzY29wZSI6InVzZXJpbmZvLnByb2ZpbGUiLCJpc3MiOiJ0b2tlbi1pc3N1ZXIuZGV2aXNpb24uaW8iLCJleHAiOjE1NDQ1NDY0NjYsImlhdCI6MTU0NDU0NjE2Nn0.kztLoOpqCSomQklGkORtkHS1Zg50SgIFn__79FNTZZJMLPrg0jj57aWQEcJwknWIN7yakUVq9RlEq8JL_k_LwNhFlZshaVCFDiOsXa3e6-U1l4z8ZRYOPcbT0imWdajHB34pU95Q-_OQWlsAhvWTqGd04maUil0EbubwDOuaLZlOpXbgjn2paGe_E0augK9DJk4XVHC24RD8ZKluzJLE0PO22AzI44tJu2WgB_P_alT6Z6R6ur8-yWhEjCEHyUb9a9Elq-qNcDnxg4Td9GP4nFsfCak4zZd6jWE0ITfpDsYuczINIQsYCgQIfeDB2plDqBMuzTEycOb5i1EmxzLEqw",
  "refresh_token": "da6e4c37987447312311a59fbc9d5b421",
  "user_id": 10191,
  "company_id": 1
}
  • scopes: Области доступа, доступные этому токену
  • token_type: Тип выданного токена. Всегда принимает значение «bearer»
  • expires: Время жизни токена в секундах
  • access_token: OAuth-токен с запрошенными правами
  • refresh_token: Токен, который можно использовать только для продления срока жизни соответствующего OAuth-токена”’

Время жизни refresh-токена совпадает с временем жизни OAuth-токена.

Если выдать токен не удалось, то ответ содержит описание ошибки:

{
  "token_type": "bearer",
  "error": "<код ошибки>",
  "error_description": "<описание ошибки>"
}

Обновить токен

Получение токена в обмен на refresh-токен:

  • Приложение отправляет POST-запрос с refresh-токеном.
  • META.OAuth возвращает новый access_token в теле ответа.
POST /oauth2/token HTTP/1.1
Host: YOUR-META-URL
Content-type: application/x-www-form-urlencoded
Content-Length: <длина тела запроса>

  grant_type=refresh_token
  & refresh_token=<refresh_token>
  & client_id=<идентификатор приложения>
  & client_secret=<пароль приложения>

В теле ответа вы получите такую же структуру, как и в случае получения токена по authorization_code