Отримання токена користувача застосунку
Токен користувача застосунку використовується для авторизації запитів до SendPulse Service REST API для певних дій з даними в акаунті користувача, визначених дозволами.
Токен дійсний обмежений час — якщо вам необхідно авторизувати запит пізніше, токен потрібно буде оновити. Водночас варто уникати частих запитів, щоб не перевантажувати сервіс і не бути заблокованим.
Схематично процес отримання токена виглядає наступним чином:

Щоб отримати токен користувача застосунку, зробіть запит 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"
}
або