Получение токена пользователя приложения
Токен пользователя приложения используется для авторизации запросов к REST API сервиса SendPulse для действий с данными в аккаунте пользователя, определеные разрешениями.
Токен действителен ограниченное время – если вам необходимо авторизовать запрос позже, токен нужно будет обновить. В то же время, следует избегать частых запросов, чтобы не перегружать сервис и не быть заблокированным.
Схематически процесс получения токена выглядит следующим образом:

Чтобы получить токен пользователя приложения,сделайте запрос POST на следующую ссылку:
| https://api.sendpulse.com/oauth/access_token/market |
Параметры запроса:
client_id |
string | Ключ пользователя приложения.* |
client_secret |
string | Ключ пользователя приложения.* |
grant_type |
string | Всегда имеет значение client_credentials |
*Ключи пользователя приложения (client_id и client_secret) отличаются от ключей, которые пользователь может найти в настройках своего акаунта. Ключи пользователя приложения можно получить только через процесс авторизации.
Пример запроса:
{
"client_id": "b2bfd8a8441294fa0171c195ada8cf56",
"client_secret": "f7064fb0bbecd392d7b3ea2e2bd77758",
"grant_type": "client_credentials"
}
Пример ответа в случае успешного запроса:
{
"token_type": "Bearer",
"expires_in": 3600,
"access_token": "eyJ0eXAiOiJKV1Q...Bv1L"
}
Параметры ответа:
token_type |
string | Тип токена. |
expires_in |
int | Время жизни токена в секундах. По умолчанию — 3600 (60 минут). Всегда ориентируйтесь на значение, которое возвращается в этом поле, а не на заданный срок. |
access_token |
string | Токен пользователя приложения. |
Сохраните токен в кеше и используйте его повторно, пока не истечет срок его действия. Не запрашивайте новый токен для каждого запроса к API.
Если API возвращает ошибку 401 Unauthorized, проверьте данные запроса, получите новый токен и повторите запрос к API один раз. Если повторный запрос тоже вернет ошибку, не отправляйте запрос снова — покажите пользователю сообщение об ошибке.
Пример ответа при неуспешном запросе:
{
"error": "invalid_client",
"error_description": "Client authentication failed",
"message": "Client authentication failed"
}
или