API данных Youtube для поиска и взаимодействия с livechatmessages - PullRequest
0 голосов
/ 06 марта 2019

Я использую API данных YouTube v3 через библиотеку javascript. Вызов списка livebroadcasts (https://developers.google.com/youtube/v3/live/docs/liveBroadcasts/list) получает трансляции, принадлежащие текущему аутентифицированному пользователю (например, пользователю, аутентифицированному oauth). Я хочу получить трансляцию для данного channelid, а затем получить его livechatid.

Можно ли получить прямую трансляцию прямой трансляции, не принадлежащую текущему авторизованному пользователю?

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

Некоторое первоначальное расследование:

В документах нет параметров, позволяющих обойти эту проблему, чтобы получить livechatid livebroadcast, который требуется перечислить и вставить в ресурс livechatmessages. Вы можете использовать ресурс API поиска, чтобы получить идентификатор видео текущей прямой трансляции (см. Как проверить, транслируется ли канал YouTube ), но тогда вы не можете использовать id параметр запроса запроса list livebroadcast, чтобы попасть в livechatid).

можно использовать ресурс livechatmessages для livechatid, который не принадлежит текущему авторизованному пользователю (попытайтесь это сделать, получив livechatid в качестве учетной записи владельца, затем авторизовавшись в качестве второй учетной записи и используя API Explorer). Поэтому, как только я получу livechatid, я смогу сделать то, что нужно

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

Существует также возможность встраивания iframe в чат YouTube (см. https://support.google.com/youtube/answer/2524549),, но, похоже, что если вы не вошли в систему, то рамка чата перенаправит родителя и не вернется на сайт после входа в систему. Возможно, я могу использовать API клиента Google для входа в систему, а затем загрузить iframe. Это облегчает работу с интерфейсом, но жертвует любой возможностью настройки.

1 Ответ

0 голосов
/ 07 марта 2019

Ответ, несмотря на отсутствие ответа на центральный вопрос, потому что я не мог найти способ получить livechatid для другого пользователя.

Как в комментарии:

Использование клиентского API для присяги перед созданием чата iframe работает нормально. После этого чат iframe загружается и работает без проблем

Одно из замечаний по поводу «без каких-либо проблем» заключается в том, что если я войду в youtube с учетной записью A (например, для трансляции), а затем в том же браузере (chrome, not incognito) воспользуюсь моим приложением, то клиент API Google может потребовать что я не вошел в систему, что нормально, но когда я выбираю учетную запись B во время входа в систему oauth, то получающийся чат iframed использует учетную запись A вместо учетной записи B. Это имеет некоторый смысл, поскольку в контексте моего приложения I Я никогда не входил в систему через API Google, используя ключ API моего приложения, но в контексте iframe чата на YouTube я мог быть А или В, предположительно. И при использовании другого браузера эта проблема не возникает; в игре только один аккаунт.

...