# OAuth

{% hint style="info" %}
Для включения данной опции нужно поставить галочку "Авторизация на стороннем сайте (OAuth)" в настройках приложения:

![](https://content.gitbook.com/content/ZN10WvcXgl30afEjLBp4/blobs/vgrt71bpYPR8PZME4h86/image.png)
{% endhint %}

Мы используем открытый протокол OAuth 2.0. При этом пользователь не передает логин и пароль приложению, поэтому его аккаунт не может быть скомпрометирован.

Вы можете получить ключ для работы с [API методами сообщества](https://help.senler.ru/senler/help/razrabotchikam/api)

Используйте Authorization Code Flow для вызова методов API Senler с серверной части вашего приложения (например, из PHP).

Необходимо перенаправить браузер пользователя по адресу

{% openapi src="<https://content.gitbook.com/content/ZN10WvcXgl30afEjLBp4/blobs/PxOz3AX1BQSufzFKHtIp/openapi_code.json>" path="/OAuth2authorize" method="get" expanded="true" %}
[openapi\_code.json](https://content.gitbook.com/content/ZN10WvcXgl30afEjLBp4/blobs/PxOz3AX1BQSufzFKHtIp/openapi_code.json)
{% endopenapi %}

Пример запроса:

<https://senler.ru/cabinet/OAuth2authorize?group_id=342173client_id=1&redirect_uri=https://mysite.ru/test_callback.php&state=63edf60ef1837b36ca611328>

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

Если не задан `group_id` , то в диалоговом окне ему будет предложено выбрать сообщество куда установить приложение.

### Получение code

После успешной авторизации приложения браузер пользователя будет перенаправлен по адресу `redirect_uri`, указанному при открытии диалога авторизации. При этом код для получения ключа доступа `code` будет передан как `GET`-параметр:

`REDIRECT_URI?code=7a6fa4dff77a228eeda56603b8f53806c883f011c40b72630bb50df056f6479e52a`

Параметр `code` может быть использован в течение 2.5 часа для получения ключа доступа к API `access_token` с вашего сервера.

### Получение access\_token

\
Для получения `access_token` необходимо выполнить запрос с вашего сервера на:

{% openapi src="<https://content.gitbook.com/content/ZN10WvcXgl30afEjLBp4/blobs/90bNlKl4xVlvyVIPCyLS/openapi_token.json>" path="/OAuth2token" method="get" expanded="true" %}
[openapi\_token.json](https://content.gitbook.com/content/ZN10WvcXgl30afEjLBp4/blobs/90bNlKl4xVlvyVIPCyLS/openapi_token.json)
{% endopenapi %}

Пример запроса:

<https://senler.ru/ajax/cabinet/OAuth2token?client_id=1&client_secret=6a5220b486f038d681d68599a68f6ac4470cd563&redirect_uri=http://mysite.ru&code=3e46f5ad365f8ae443c516642ffbfef3a9e1e859>

В результате выполнения данного запроса ваш сервер получит вновь созданный `access_token`. Токен бессрочный.

```json
{
  "access_token": "533bacf01e11f55b536a565b57531ac114461ae8736d6506a3",
  "success": "true"
}
```
