Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

...

...

...

...

...

...

...

...

...

...

...


Warning

Мы обновили документацию, актуальная версия страницы доступна по ссылке: Создание и авторизация приложений

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

...

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

  2. Если пользователь разрешает доступ, система перенаправляет пользователя на Redirect URL приложения, указанного при регистрации, предавая в качестве параметра запроса код для получения токена доступа.

    Code Block
    GET https://<apphostname>/authorized?code=SpHCEr6qiCj1kZRTvEb36qZAqWqIHz


  3. Приложение делает POST-запрос на сервер системы на URL https://<hostname>/oauth/token, для получения токена доступа, используя полученный код.

    Code Block
    POST https://<hostname>/oauth/token

    Параметры передаются в теле запроса в формате application/x-www-form-urlencoded.

    Параметры запроса

    Параметр
    Описание
    grant_typeВсегда должен иметь значение authorization_code
    code

    Параметр code, полученный приложением на предыдущем шаге

    redirect_uriURI перенаправления. Должен совпадать с одним из указанных при создании приложения
    client_idApp ID, сгенерированный при создании приложения
    client_secretApp Secret, сгенерированный при создании приложения 


  4. Система отвечает приложению

    Параметры ответа

    Параметр

    Описание

    access_tokenТокен доступа. Используется приложением для API-запросов
    expires_inПериод времени в секундах, в течение которого токен действителен. Если в процессе использования токена возникла ошибка авторизации, рекомендуется запросить токен заново, даже если заявленное в поле expires_in время до истечения токена еще не прошло
    token_typeТип токена всегда имеет значение Bearer
    refresh_tokenRefresh token, который может быть использован для регенерации токена доступа, когда он стал недействителен


...

Параметр

Описание

access_tokenТокен доступа. Используется приложением для API-запросов
expires_inПериод времени в секундах, в течение которого токен действителен. Если в процессе использования токена возникла ошибка авторизации, рекомендуется запросить токен заново, даже если заявленное в поле expires_in время до истечения токена еще не прошло
token_typeТип токена всегда имеет значение Bearer

...

Параметр

Описание

access_tokenТокен доступа. Используется приложением для API-запросов
expires_inПериод времени в секундах, в течение которого токен действителен. Если в процессе использования токена возникла ошибка авторизации, рекомендуется запросить токен заново, даже если заявленное в поле expires_in время до истечения токена еще не прошло
token_typeТип токена всегда имеет значение Bearer
refresh_tokenRefresh token, который может быть использован для регенерации токена доступа, когда он стал недействителен

...

Запросы к API будут выполняться от имени и с разрешениями пользователя, предоставившего доступ приложению. Если в процессе использования токена возникла ошибка авторизации, рекомендуется запросить токен заново, даже если заявленное в поле expires_in время до истечения токена еще не прошло.

Пример запроса на получение информации об авторизованном пользователе через программу curl:

curl -H "Authorization: Bearer 1sz9xnbNsgIXF5uGEeL0df2Iyec29W" https://hostname/api/ver1.0/user/

...

Параметр

Описание

access_tokenТокен доступа. Используется приложением для API-запросов
expires_inПериод времени в секундах, в течение которого токен действителен. Если в процессе использования токена возникла ошибка авторизации, рекомендуется запросить токен заново, даже если заявленное в поле expires_in время до истечения токена еще не прошло
token_typeТип токена, всегда имеет значение Bearer
refresh_tokenRefresh token, который может быть использован для регенерации токена доступа, когда он стал недействителен

...