Link Search Menu Expand Document

Часто задаваемые вопросы

Авторизация и доступ пользователей

Можно ли предоставить доступ к записям напрямую с платформы для всех пользователей через API?

Мы не предоставляем общий доступ к облачной записи для обычных пользователей, только для администратора.

При тестировании столкнулась с проблемой: при попытке учеником присоединиться к вебинару приходит ответ Unauthorized.

Предположительно, браузер не сохраняет файлы cookie, что приводит к тому, что аутентификация не работает. Попробуйте в настройках браузера включить разрешение браузеру к хранилищу. Например, для браузера Firefox см. в настройках раздел Приватность и защита > Куки и данные сайтов. Для браузера Chrome - раздел настроек Конфиденциальность и безопасность > Файлы cookie и другие данные сайтов.

Ошибка при получении токена пользователя. Использовали учетные данные клиента и grant_type: password, а так же учетные данные пользователя. Попробовали вариант с передачей access token в заголовке и без него, в обоих случаях приходит ответ {"error":"invalid_grant","error_description":"Invalid credentials"}

Тут есть определённая путанница в авторизации. В соответствии с требованиями стандарта RFC oauth2 при получении токена с grant_type: password, поле с идентификатором пользователя обязано именоваться username. Но идентификатором пользователя у нас выступает email, так как username не уникален. Таким образом, при получении токена пользователя в поле username надо указывать email пользователя.

Запрос GET https://moodhood-api.livedigital.space/v1/spaces/ возвращает ошибку авторизации 403 Данный метод запрещен для пользователя. Токен запрашиваю: "grant_type": "client_credentials" - возможно, тут надо использовать другой тип? Какой тип следует указать для получения отчетов по работе в комнате, информации по вебинарам?

Создавать спэйсы\комнаты и получать данные по ним можно только под токеном пользователя - grant_type:password. Подробнее см. здесь.

Как сделать конференцию только для опредленных людей (чтобы никто случайно не вошел, даже зная ссылку)?

У комнаты есть признак приватности и в неё смогут зайти только те люди, которым выдан доступ. Т.е. даже владелец спейса в приватную комнату зайти не сможет, если ему создатель этой комнаты не добавил права на её посещение.

Можно ли пригшашать в комнату пользователя по предварительной авторизации (например, используя refresh hash), чтобы ему ничего не пришлось вводить при входе в комнату, и он сразу заходил в нее?

Есть метод roomGenerateAccess полностью автоматизирующий этот процесс, подробная инструкция здесь. Спецификация метода в Swagger.

А по пользователям — доступны только эти переменные? Или можно передавать еще и ID с платформы? Актуально, если, например, сменил почту и/или имя, а ID на платформе постоянный.

Смотря о каком методе мы говорим. Если generate-acccess, то да. Там можно указать externalUserId - это идентификатор пользователя из вашей системы и по нему можно в аналитике соотнести ваших и наших пользователей.

Группы и комнаты

**В инструкции указан пример URL https://moodhood-api.livedigital.space/v1/spaces/60d55c0eb9ef88ab17b0aabb/rooms/60d55c0eb9ef88ab17b0aabb/generate-access - там всегда дважны используется идентфикатор комнаты ()? Получается, что запрос пойдет такой `https://moodhood-api.livedigital.space/v1/spaces//rooms//generate-access`**

Не совсем, вот корректная структура запроса: https://moodhood-api.livedigital.space/v1/spaces/<space_id>/rooms/<room_id>/generate-access

Более подробное описание всех параметров запроса можно посмотреть в Swagger.

Обратил внимание, что ссылка формируется в примере только с room_alias.

Ссылки на открытие комнаты всегда формируются по alias, верно. А в работе с методами самого API всегда используются идентификаторы.

Насколько вообще нужена группа, если у нас просто отдельный iFrame с уроком? Создание группы это опционально и ее может не быть? Или группа есть всегда?

Группа всегда есть. К группе можно относиться просто как к директории для комнат. Можно создать их несколько, а можно все комнаты хранить в одной группе. Это родительский компонент для комнаты и всех имеющихся сущностей в конференции.

В ссылке-приглашении на комнату https://edu.livedigital.space/room/0mrw9W62rC не указан spaceId, значит группа опцинальна?

В ссылке используется alias, это сделано просто для сокращения длины ссылки, так как alias сам по себе уникален.

Могу ли я сделать запрос без указания spaceId? Чтобы создателю было достаточно лишь указать просто ссылку на комнату

Нет, если посмотреть в Swagger, то все запросы в API, касающиеся комнат содержат в URL и идентификатор spaceId тоже.

Чем отличается группы от комнат и зачем они нужны (группы) на одной учетой записи? Не до конца понятна логика.

Группы - это просто иерархическая единица, включающая в себя комнаты. Группа может быть одна. А может быть несколько, для удобства, так как каждое из них может иметь свои настройки приватности.

Может ли быть несколько админов у вебинарной комнаты?

Может быть неограниченное количество админов в вебинаре, но на экране отображается всего трое. Их можно чередовать, но чем больше админов участвуют именно в вещании (находятся на экране с включенными камерами\микрофонами), тем более высокая нагрузка.

Получение статистики

Нам нужна возможность в начале сессии передать Email пользователя, чтобы в конце сессии получить данные о посещаемости. В идеале нам надо каким-то методом отправлять запрос и получать список посещений, в виде адреса емейл и времени, проведённого на занятии, а также общее время встречи.

В этом разделе описано, как сгенерировать готовую ссылку для iFrame для вашего пользователя с нужными правами и идентификатором пользователя из вашей системы, по которому вы сможете найти в аналитическом отчёте информацию о его активности в звонке, сообщениях в чате и др.

Какие методы в Swagger отвечают за возможность показа статистики пользователям? Например, вебинар был обучающий. Getcourse, например, предоставляет доступ к шкале достижения оценок, статистике прохождения уроков, посещаемости, расписанию уроков.

Вы можете собирать статистику по участникам мероприятий и результаты голосований по API в формате JSON. И из этих данных на своей стороне формировать любые типы отчетов. Вам могут пригодиться следующие методы:

Нужно получить статистику по вебинару, проведенному в комнате с заданными spaceId > roomId в определенное время. Какой метод для этого используется?

Первым делом необходимо запросить звонки, совершённые в комнате за интересующую дату с помощью метода analyticsCalls. Затем, используя необходимый callId, получить аналитический отчёт в необходимом вам формате с помощью метода getRoomAnalyticsReport.

Статистика доступна для всех? Статистика пользователей и их действий (реакций, опросов, чатов). Говорят, у беcплатных групп нету статистики?

Статистика доступна только модераторам и администраторам на спэйсах, имеющих тариф с доступом к статистике.

Интеграция

Зачем тестировать интеграцию? Вообще на нашей платформе это лишь iFrame, который не дает никакой нагрузки на саму платформу, это чисто клиентская история (фронтэнд). Это равносильно тому, что просто будет открыта страница с сервисом и никакой трафик непосредственно через наши сервера в данном случае не идет.

Все боты почти одновременно пройдут процедуру авторизации в вашем сервисе. Этот момент мы и тестируем, так как в некоторых случаях даже такой небольшой одновременный вход оказывался критичным.

В хуках, которые вы отправляете, есть событие: record_failed - Во время облачной записи произошла ошибка. Стоит ли мне при этом событии заново стартовать запись? Она автоматические не стартует при ошибках?

Да, в случае ошибки лучше начать заново, мы автоматически этого не делаем.

Разное

Будет ли приходить нашим пользователям ваша рассылка?

При создании пользователей через API они не попадают в наши рассылки. Более того, мы пока этой опцией (рассылками) не пользуемся. Отправляем письма только для восстановления паролей. Но это не ваш случай, т.к. вы создаете на нашей стороне временных пользователей.

После оканчания оплаченного тарифа он сменился на тариф Free. Я ожидала, что будет удаление аккаунта. Это баг?

Это не баг. На нашей стороне просто отключается платный тарифный план, все правильно.

Клиент, который будет использовать сервис, должен предоставить нам не только clientId и clientSecret, но еще и учетные данные своей учетки?

clientId и clientSecret - это только ваши данные. К данному вопросу можно подойти с нескольких сторон. Нужно знать вашу схему интеграции. Вы можете зарегистрировать себе одного главного пользователя, который будет создавать все спэйсы\комнаты, генерировать ссылки и доступы для других пользователей на мероприятия. И этому же пользователю будут доступны все данные по мероприятиям - аналитика, отчёты и т.д.

Каждому новому мероприятию присваиваеться ID? То есть, если вебинар был 21.12 в 10.00 и потом в 13.00, обоим мероприятиям будет назначен разный ID? Или следует по времени сортировать?

Да, у каждого звонка свой идентификатор. Отдельная сущность для каждого звонка создаётся в момент входа первого пользователя в комнату и заканчивается в момент выхода последнего.

Какой метод используется для получения списка записей?

Документацию по работе с записью вебинаров можно посмотреть по этой ссылке.

Cмена типа с вебинара на конференцию возможна после проведения? Это на что-то влияет, на представление комнаты, например?

Это deprecated функционал, скоро будет удалён. Настоятельно рекомендуем не изменять тип комнаты.