Авторизація користувача¶
Платний контент (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 · Повідомити про проблему на цій сторінці