Перейти до змісту

Авторизація користувача

Платний контент (SVOD, TVOD, DTO) доступний лише авторизованому користувачеві. Нижче описано, як отримати для нього токен доступу й передавати цей токен у запитах Content API.

Перед початком роботи

Переконайтеся, що:

  • у вас є ID партнера, сіль (salt) і пара ключів (див. Облікові дані);
  • ваш код уміє підписувати запити (див. Підпис запиту);
  • користувач уже є в білінгу MEGOGO. Для цього зробіть одне з такого:
    • зареєструйте передплату або купівлю (див. Продаж передплати і Продаж окремого відео);
    • створіть користувача без послуги: GET https://billing.megogo.net/partners/{partner_id}/user/create?identifier={user_id}. Цей запит потрібен, якщо користувач має авторизуватися ще до першої купівлі.

ПРИМІТКА

Відео AdVOD і FVOD, а також трейлери відтворюються без користувача. Проте відео AdVOD і FVOD входять у вашу передплату, тому перш ніж запитувати потік, переконайтеся, що користувач має доступ у вашому застосунку.

Схема процесу

sequenceDiagram
    participant App as Застосунок партнера
    participant Server as Сервер партнера
    participant Billing as MEGOGO Billing API
    participant API as MEGOGO Content API
    Server->>Billing: subscription/subscribe (ідентифікатор користувача, ID послуги)
    Billing-->>Server: "successful": true
    Server->>API: GET /auth/by_partners (isdn, partner_key, token, sign)
    API-->>Server: access_token
    App->>Server: Запит на відтворення відео
    Server-->>App: Підписаний URL /stream з access_token
    App->>API: GET /stream
    API-->>App: src (URL маніфесту)

Крок 1. Обчисліть токен авторизації

На своєму сервері обчисліть хеш MD5 від рядка, у якому без роздільників з'єднано ідентифікатор користувача, ID партнера та сіль:

token = md5(user_id + partner_id + salt)

Приклад із вигаданими значеннями:

Значення Приклад
Ідентифікатор користувача user-0001
ID партнера examplepartner
Сіль examplesalt
Рядок для хешування user-0001examplepartnerexamplesalt
token 694ebeecfb23fd2331b76712d53e3017

Ідентифікатор користувача має бути той самий, що й у запитах Billing API (userId), і не змінюватися з часом — наприклад, внутрішній ID користувача у вашій системі.

ОБЕРЕЖНО

Надсилайте запит авторизації лише для користувача, якого ви вже створили в Billing API (купівлею або через user/create). Запит авторизації білінг не перевіряє: якщо такого ідентифікатора користувача в MEGOGO немає, буде створено новий обліковий запис MEGOGO без послуг.

Крок 2. Надішліть запит авторизації

GET https://api.megogo.net/v1/auth/by_partners?isdn={user_id}&partner_key={partner_id}&token={token}&sign={sign}
Параметр Обов'язковий Опис
isdn Так Ідентифікатор користувача у вашій системі
partner_key Так Ваш ID партнера
token Так Токен, обчислений на кроці 1
sign Так Підпис параметрів isdn, partner_key і token саме в такому порядку

Приклад із вигаданими значеннями та ключами зі сторінки Підпис запиту:

https://api.megogo.net/v1/auth/by_partners?isdn=user-0001&partner_key=examplepartner&token=694ebeecfb23fd2331b76712d53e3017&sign=0f80aec18dba20019775d90bad5e1020_example1_xx

Крок 3. Отримайте токен доступу з відповіді

Очікувана відповідь (скорочено):

{
  "result": "ok",
  "code": 200,
  "data": {
    "user_id": 1234567,
    "tokens": {
      "access_token": "{access_token}",
      "access_token_expires_at": 1793300000,
      "remember_me_token": "{remember_me_token}",
      "remember_me_token_expires_at": 1951000000
    }
  }
}
Поле Опис
user_id ID користувача MEGOGO
tokens.access_token Передавайте його в запитах, які виконуються від імені користувача
tokens.access_token_expires_at Час закінчення дії токена доступу у форматі часу Unix (UTC) — приблизно через 6 годин після запиту
tokens.remember_me_token Довгостроковий токен, за яким можна отримати новий токен доступу (крок 5)
tokens.remember_me_token_expires_at Час закінчення дії довгострокового токена у форматі часу Unix — приблизно через 5 років після запиту

Крім того, відповідь містить поля профілю та інші поля, наприклад is_new_user. Їх не використовуйте.

УВАГА

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

Крок 4. Використовуйте токен доступу

Передавайте access_token у запитах, які виконуються від імені користувача:

  • /stream — щоб отримати потік платного відео;
  • /video/info — щоб отримати значення is_available для цього користувача.

Параметр access_token входить у підпис, як і всі інші параметри:

https://api.megogo.net/v1/stream?video_id={video_id}&access_token={access_token}&sign={sign}

УВАГА

URL потоку в src містить дані користувача, тому не записуйте його в журнали й не зберігайте. Щоразу, коли користувач запускає відтворення, запитуйте новий src.

Крок 5. Отримайте новий токен доступу

Токен доступу діє приблизно 6 годин. Коли отримувати новий, вирішуєте ви — наприклад, перед закінченням терміну дії або після помилки. Це можна зробити двома способами:

  • надіслати токен «запам'ятати мене» (remember-me) на /auth/refresh;
  • повторити кроки 1–3.

Щоб скористатися токеном «запам'ятати мене», надішліть такий запит:

GET https://api.megogo.net/v1/auth/refresh?rememberme_token={remember_me_token}&sign={sign}

ОБЕРЕЖНО

Параметр називається rememberme_token — з одним підкресленням. Якщо передати remember_me_token, запит поверне помилку.

Відповідь має таку саму структуру, як на кроці 3; беріть із неї access_token. Якщо попередній токен доступу ще дійсний, у відповіді може повернутися той самий токен. Токен «запам'ятати мене» дійсний приблизно 5 років.

Помилки

Відповідь Причина Що робити
HTTP 200, "result": "error", "message": "The entered login or password is incorrect" Неправильний token Переконайтеся, що використовуєте ті самі ідентифікатор користувача, ID партнера й сіль, що й на кроці 1
HTTP 400, "message": "You entered wrong sign key" Неправильний підпис Переконайтеся, що підпис містить isdn, partner_key і token саме в такому порядку. В інших запитах додавайте до підпису access_token
HTTP 200, "result": "error", "code": 403 Токен доступу неправильний або його термін дії минув Отримайте новий токен доступу (крок 5)
/auth/refresh: HTTP 200, "result": "error", "code": 400 Неправильний токен «запам'ятати мене» або неправильна назва параметра Повторіть кроки 1–3
/stream: HTTP 200, "result": "ok", порожній src, restrictions містить NOT_PURCHASABLE У білінгу MEGOGO користувач не має активної послуги для цього відео або в запиті немає access_token Переконайтеся, що запит до білінгу був успішним. Див. Відтворення відео

Результат

Ви отримали токен доступу для користувача. З ним користувач може дивитися платний контент, доступний йому в білінгу MEGOGO.

Щоб переконатися, що послуги користувача у вашій системі та в MEGOGO збігаються, надішліть GET https://billing.megogo.net/partners/{partner_id}/user/subscriptions?identifier={user_id}. Див. довідник Billing API.

Що далі


Версія посібника 1.4.1, 2026-10-31 · Повідомити про проблему на цій сторінці