Авторизация пользователя¶
Платный контент (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 · Сообщить о проблеме на этой странице