Открытие диалога авторизации
Чтобы авторизовать пользователя, необходимо перенаправить его браузер на URL https://store.admitad.com/api/authorize/, используя формат данных application/x-www-form-urlencoded и передав следующие параметры:
Название | Обязательный | Описание |
---|---|---|
client_id | ✔ | Идентификатор (ID) вашего приложения.*. |
redirect_uri | ✔ | Адрес на который будет переадресован пользователь после прохождения авторизации (домен указанного адреса должен соответствовать основному домену в настройках приложения). |
state | Значение, используемое клиентом для проверки состояния между запросом и ответом сервера. Сервер возвращает это значение, когда перенаправляет агента пользователя обратно к клиенту. | |
scope | ✔ | Список разделенных пробелом настроек доступа приложения, которые необходимо запросить. |
response_type | ✔ | Тип ответа, который вы хотите получить — code. |
-
* ID приложения залогинившийся рекламодатель может получить в своем аккаунте (при нажатии кнопки «Показать учетные данные»).
Пример запроса:
https://www.store.admitad.com/api/authorize/?scope=advertiser_statistics
advertiser_websites advertiser_info&state=7c232ff20e64432fbe071228c0779f&
redirect_uri=https://store.admitad.com/&response_type=code&client_id=cb281d918a37e346b45e9aea1c6eb7
Если пользователь не вошел на сайт, то в диалоговом окне ему будет предложено ввести свой логин и пароль.
Разрешение прав доступа
После успешного входа на сайт пользователю будет предложено авторизовать приложение, разрешив доступ к необходимым настройкам, запрошенным при помощи параметра scope
. Полный список настроек доступен в разделе прав доступа приложений.
Получение параметра code
После успешной авторизации приложения браузер пользователя будет перенаправлен по адресу redirect_uri
, указанному при открытии диалога авторизации. При этом код для получения ключа доступа code
будет передан в GET-параметре на указанный адрес:
https://redirect_uri/?state=7c232ff20e64432fbe071228c0779f&
code=c75ebf64ad48a352630b6d953ce365
В случае возникновения ошибки, браузер пользователя будет перенаправлен с кодом и описанием ошибки:
https://redirect_uri/?state=7c232ff20e64432fbe071228c0779f&
error_description=client_id+cb281d918a37e346b45e9aea1c6eb7+doesn't+exist&error=invalid_client
Получение access_token
Для получения access_token
необходимо выполнить POST запрос на URL https://api.admitad.com/token/, используя формат данных application/x-www-form-urlencoded и передав следующие параметры:
Название | Обязательный | Описание |
---|---|---|
client_id | ✔ | Идентификатор (ID) вашего приложения.*. |
client_secret | ✔ | Секретный ключ вашего приложения.* |
code | ✔ | Код, полученный на предыдущем этапе авторизации (параметр redirect_uri). |
grant_type | ✔ | Тип запроса — authorization_code |
redirect_uri | ✔ | Ссылка, на которую будет переадресован пользователь после прохождения авторизации (домен указанного адреса должен соответствовать основному домену в настройках приложения). |
Для запроса необходимо использовать HTTP Basic аутентификацию, используя client_id
* and client_secret
* как параметры доступа. Заголовок авторизации — a base64-encoded закодированная base64 строка, содержащая конкатенированные двоеточием client_id
и client_secret
.
- * Идентификатор (
client_id
) и секретный ключ (client_secret
) приложения залогинившийся рекламодатель может получить в своем аккаунте (при нажатии кнопки «Показать учетные данные»).
Пример формирования закодированного base64 заголовка авторизации в Python 2.7 для client_id=’cb281d918a37e346b45e9aea1c6eb7’ и client_secret=’a0f8a8b24de8b8182a0ddd2e89f5b1':
from base64 import b64encode
client_id='cb281d918a37e346b45e9aea1c6eb7'
client_secret='a0f8a8b24de8b8182a0ddd2e89f5b1'
data = client_id + ':' + client_secret
# data = 'cb281d918a37e346b45e9aea1c6eb7:a0f8a8b24de8b8182a0ddd2e89f5b1'
data_b64_encoded = b64encode(data)
Пример base64 закодированного заголовка авторизации (переменная data_b64_encoded):
Y2IyODFkOTE4YTM3ZTM0NmI0NWU5YWVhMWM2ZWI3OmEwZjhhOGIyNGRlOGI4MTgyYTBkZGQyZTg5ZjViMQ==
Пример запроса с использованием утилиты curl для client_id=cb281d918a37e346b45e9aea1c6eb7, где b64XXX — base64 закодированный заголовок авторизации:
curl -H 'Authorization: Basic b64XXX' -X POST https://api.admitad.com/token/ -d
'code=c75ebf64ad48a352630b6d953ce365&client_secret=a0f8a8b24de8b8182a0ddd2e89f5b1&
grant_type=authorization_code&client_id=cb281d918a37e346b45e9aea1c6eb7&redirect_uri=https%3A%2F%2Fadmitad.com%2F'
Пример запроса:
POST /token/ HTTP/1.1
Host: api.admitad.com
Content-Type: application/x-www-form-urlencoded;charset=UTF-8
code=c75ebf64ad48a352630b6d953ce365&client_secret=a0f8a8b24de8b8182a0ddd2e89f5b1&grant_type=authorization_code&
client_id=cb281d918a37e346b45e9aea1c6eb7&redirect_uri=https%3A%2F%2Fadmitad.com%2F
В результате выполнения данного запроса Вы получите новый access_token
. Вместе с access_token
возвращается время жизни ключа expires_in
в секундах, refresh_token
и дополнительная информация для пользователя:
{
"username": "advertiser1",
"first_name": "name",
"last_name"': "surname",
"language": "en",
"access_token": "4b8b33955a",
"token_type": "bearer",
"expires_in": 604800,
"refresh_token": "ea957cce42",
"scope": "advertiser_statistics advertiser_websites advertiser_info"
}