Авторизація за допомогою OAuth 2.0 | Support

Дані користувача

Email

Омніканальність

Автоматизація

Відстеження подій та поведінки

Авторизація за допомогою OAuth 2.0

Для інтеграції стороннього застосунку з eSputnik ми рекомендуємо налаштувати авторизацію за допомогою OAuth 2.0

OAuth 2.0 — це протокол авторизації, що дозволяє стороннім застосункам отримувати безпечний доступ до певних даних та можливостей eSputnik, не надаючи користувацькі облікові дані та API-ключі.

Надання прав доступу до акаунту eSputnik

З OAuth 2.0 ви можете обмежити доступ до ваших ресурсів у eSputnik. Наприклад:

  • Stripo.email дозволяє лише експортувати шаблони листів до eSputnik.
  • CRM (наприклад, AmoCRM) дозволяє лише додавати та редагувати контакти в eSputnik, коли вони змінюються у CRM. Або CRM також може отримувати дані про активність контактів та відображати їх у себе.
  • CMS (наприклад, Wix) дозволяє лише використовувати стандартні форми підписки, щоб додавати підписників безпосередньо до eSputnik.

Доступ до ресурсів eSputnik обмежений наданими під час реєстрації застосунку правами:

  • Повний доступ до API
  • Доступ до подій
  • Доступ до подій і контактів
  • Доступ до повідомлень

Ви можете обмежити доступ до будь-якого з прав з цього списку.

Групи API-методів за функціями в системі

1. Загальні методи

Методи з цієї групи не вимагають спеціальних дозволів, потрібна лише авторизація акаунту eSputnik.

1.1 Інформація про версію протоколу:

  • GET version

1.2 Інформація про обліковий запис:

  • GET account/info
  • GET balance
  • GET subscriptions
  • GET addressbooks

1.3 Керування повідомленнями

  • POST messages/email
  • GET messages/email
  • GET messages/email/{id}
  • DELETE messages/email/{id}
  • PUT messages/email/{id}
  • DELETE messages/email/{id}/{language}
  • PUT messages/email/{id}/{language}
  • GET messages/email/{id}/viewLink
  • GET messages/sms
  • GET messages/sms/{id}

1.4 Керування інтерфейсами

  • GET interfaces/email
  • GET interfaces/sms

1.5 Статистика

  • GET callouts/sms
  • GET contact/token/activated/{app_uuid}/{token_id}
  • PUT contact/token/activated/{app_uuid}/{token_id}
  • PUT interactions/{interaction_id}/status

2. Методи для оновлення контактів та груп

Зазвичай інтеграція передбачає оновлення контактів, а не їх зчитування. Тому, щоб уникнути витоку даних, можна обмежити права доступу лише оновленням контактів.

  • POST contacts
  • POST contacts/upload
  • GET importstatus/{sessionId}
  • POST contact
  • PUT contact/{id}
  • DELETE contact/{id}
  • PUT contact/{id}/subscriptions
  • POST contact/subscribe
  • POST emails/unsubscribed/add
  • POST emails/unsubscribed/delete
  • POST group/{id}/contacts/detach

3. Методи для читання контактів та груп

  • GET contacts
  • GET contact/{id}
  • GET contacts/email
  • GET contact/{id}/subscriptions
  • GET groups
  • GET group/{id}/contacts

4. Методи для отримання даних щодо активності контактів

  • GET contacts/activity

5. Методи для керування подіями

  • POST event
  • POST past_events
  • DELETE past_events

6. Методи для керування повідомленнями

  • POST message/{id}/smartsend
  • POST message/{id}/send OLD
  • GET message/status
  • POST message/email
  • GET message/email/status OLD
  • POST message/sms
  • GET message/sms/status OLD
  • POST message/viber
  • GET message/viber/status OLD
  • POST broadcast
  • GET broadcast/{broadcast_id}
  • DELETE broadcast/{broadcast_id}
  • GET broadcasts

Реєстрація, редагування та видалення застосунку в eSputnik

Перед тим, як почати інтегруватися за допомогою OAuth 2.0, зареєструйте свій застосунок в eSputnik.

Реєстрація застосунку

1. Натисніть назву вашої організації у верхньому правому куті та виберіть вкладку “Для партнерів".

Для партнерів

2. Натисніть кнопку “Зареєструвати застосунок”.

Зареєструвати застосунок

3. Надайте інформацію про застосунок:

  • Назва
  • Callback URL — адреса, на яку сервіс буде перенаправляти користувача після авторизації або відмови в авторизації  вашого застосунку (ви можете створити застосунок без Callback URL та вказати його пізніше)
  • Виберіть області доступу

Інформація про застосунок

4. Натисніть “Зареєструватися”.

Зареєструвати

Після реєстрації застосунку йому буде присвоєно ID клієнта (Client ID) та клієнтський ключ (Client Secret). Запишіть їх у надійному та безпечному сховищі.

Client ID / Client Secret

5. Налаштуйте зовнішній вигляд форми авторизації:

  • Натисніть "Редагувати";

Редагувати

  • Перейдіть на вкладку "Форма авторизації";
  • У разі потреби введіть назву застосунку;
  • Завантажте логотип: максимальний розмір JPG, GIF або PNG – 1 МБ; співвідношення сторін, що рекомендується, — 1:1 (96×96 пікселів); зображення більшого розміру будуть обрізані до 100% ширини та вирівняні по центру.

Завантажте логотип

Після реєстрації застосунку на вкладці "Для партнерів" з'явиться вікно з інформацією про нього.

Натисніть три крапки, щоб переглянути форму авторизації або видалити застосунок. Після видалення всі ключі/токени/інтеграції стануть недійсними.

Видалення та попередній перегляд

Інтеграція з OAuth 2.0

Зверніть увагу

Реалізація підтримана лише для застосунків, що мають серверну частину, тобто response_type=code.

1. Авторизація

Відправте GET-запит на URL-адресу авторизації https://uaa.esputnik.com/uaa/oauth/authorize.

Запит має містити ID клієнта, що ви отримали при реєстрації застосунку в eSputnik. 

Формат запиту:

https://uaa.esputnik.com/uaa/oauth/authorize/oauth/authorize?response_type=code&client_id=YOUR_CLIENT_ID&redirect_uri=YOUR_CALLBACK_URL

В результаті з’явиться вікно авторизації.

Введіть логін та пароль облікового запису eSputnik та підтвердьте доступ.

Запит буде перенаправлено на Callback URL із кодом, що використовуватиметься для отримання токенів.

> HTTP/1.1 302 Found
> Location: http://awesome_host/callback?code=YOUR_CODE

2. Отримання токенів авторизації та оновлення

Відправте POST-запит на URL-адресу токена доступу https://uaa.esputnik.com/uaa/oauth/token.

Запит має містити:

  • ID клієнта та клієнтський ключ, що ви отримали при реєстрації застосунку в eSputnik 
  • код, що ви отримали при авторизації

Формат запиту:

https://esputnik.com/uaa/oauth/token?grant_type=authorization_code&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET&code=YOUR_CODE&redirect_uri=YOUR_CALLBACK_URL

У відповіді ви отримаєте токен для доступу до API eSputnik (Access Token) та токен для оновлення токена доступу (Refresh Token).

Формат відповіді:

{
  "access_token": "YOUR_TOKEN",
  "token_type": "bearer",
  "refresh_token": "YOUR_REFRESH_TOKEN",
  "scope": "UseRestApi",
  "expires_in": 172541
}

Примітка

Термін дії токена стартує з моменту його створення. За замовчуванням це 172800 секунд для токена доступу і 2592000 секунд для токена оновлення.

3. Оновлення токена

Відправте POST-запит на URL-адресу токена доступу https://uaa.esputnik.com/uaa/oauth/token.

Запит має містити:

  • ID клієнта та клієнтський ключ, що ви отримали при реєстрації застосунку в eSputnik
  • код, що ви отримали при авторизації
  • останній отриманий вами токен оновлення

Формат запиту:

https://esputnik.com/uaa/oauth/token?grant_type=refresh_token&refresh_token=YOUR_REFRESH_TOKEN&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET&code=YOUR_CODE&redirect_uri=YOUR_CALLBACK_URL

Відповідь міститиме новий токен доступу та новий токен оновлення, який потрібно використати при наступному оновленні токена доступу.

4. Тестування авторизації

Відправте GET-запит на URL https://esputnik.com/api/v2/version з авторизацією у вигляді заголовка Authorization: Bearer <YOUR_ACCESS_TOKEN>.

У відповіді ви маєте побачити поточну версію API та версію API-протоколу.

Приклад авторизації за допомогою Python

import requests, json
import subprocess
import sys
authorize_url = "https://uaa.esputnik.com/uaa/oauth/authorize"
token_url = "https://uaa.esputnik.com/uaa/oauth/token"
callback_uri = "http://my_host:8081/test/callback"
protected_api_contacts = "https://esputnik.com/api/v1/contacts"
test_api_url = protected_api_contacts
client_id = 'daf4ba310fe44961fabc80ce2d1f67cd'
client_secret = '6c573654f43bc05c13c6b0d0bc65d6a65fe38a09f84e84ac37c3210e78b06b3e'
#step A - simulate a request from a browser on the authorize_url - will return an authorization code after the user is
# prompted for credentials.
authorization_redirect_url = authorize_url + '?response_type=code&client_id=' + client_id + '&redirect_uri=' + callback_uri
print("go to the following url on the browser and enter the code from the returned url: ")
print("---  " + authorization_redirect_url + "  ---")
authorization_code = input('code: ')
# step I, J - turn the authorization code into a access token, etc
data = {'grant_type': 'authorization_code', 'code': authorization_code, 'redirect_uri': callback_uri}
print("requesting access token")
access_token_response = requests.post(token_url, data=data, verify=False, allow_redirects=False, auth=(client_id, client_secret))
print("response")
print(access_token_response.headers)
print('body: ' + access_token_response.text)
# we can now use the access_token as much as we want to access protected resources.
tokens = json.loads(access_token_response.text)
access_token = tokens['access_token']
print("access token: " + access_token)
api_call_headers = {'Authorization': 'Bearer ' + access_token}
#api_call_response = requests.post(test_api_url, headers=api_call_headers, verify=False, json=json)
api_call_response = requests.get(test_api_url, headers=api_call_headers, verify=False)
print(api_call_response.text)

Підключені застосунки

Інтегровані застосунки відображаються на вкладці “Підключені застосунки” у налаштуваннях вашої організації. Щоб відключити застосунок, натисніть на три точки навпроти її назви та виберіть відповідну опцію.

Підключені застосунки

Залишилися питання?
Спеціалісти обов'язково нададуть відповідь та допоможуть вирішити вашу проблему!
Зворотний дзвінок
Залишіть заявку – і наш спеціаліст зв'яжеться з вами в робочий час.
Відправити заявку
Консультація в чаті
Готові до ваших запитань!
Написати в чат
Електронна пошта
Напишіть в службу підтримки eSputnik.
Надіслати email