YouTube数据api检索实时聊天消息并与之交互

时间:2019-03-06 17:18:40

标签: youtube-api youtube-data-api

我正在通过javascript库使用youtube数据API v3。列表直播呼叫(https://developers.google.com/youtube/v3/live/docs/liveBroadcasts/list)获取当前已认证用户(例如,通过oauth认证的用户)拥有的广播。我想针对给定的channelid进行广播,然后进行直播。

是否可以获取当前授权用户不拥有的直播广播的现场直播?

在我的Web应用程序中,如果有给定硬编码频道ID的直播,那么我将让人们通过嵌入式播放器观看广播并通过聊天小部件进行交互。这样一来,用户就可以在使用Web应用程序时遵循说明,并通过聊天进行交互。

一些初步调查:

在文档中,没有可用参数来解决此问题,以检索直播广播的livechatid,这是列出并插入livechatmessages资源所必需的。您可以使用搜索API资源来获取当前直播的视频ID(请参阅How to check if YouTube channel is streaming live),但是您不能使用{{ 1}}要求参加现场直播)。

可以将livechatmessages资源用于当前认证用户不拥有的livechatid(尝试通过将livechatid作为所有者帐户,然后作为第二个帐户进行认证来进行尝试并使用api Explorer)。因此,一旦我获得了现场表演,我就可以做所需的事情

可以使用服务器端调用来获取当前的活动目录。这似乎是目前唯一的好答案,但是还有很多工作要做。

也可以嵌入youtube聊天iframe(请参见https://support.google.com/youtube/answer/2524549),但是,如果您未登录,则聊天框会重定向父级,并且登录后不会返回网站。也许我可以使用Google客户端api登录,然后加载iframe。这在前端工作中会更容易,但会牺牲任何可定制性。

1 个答案:

答案 0 :(得分:0)

尽管没有解决核心问题,但仍在回答问题,因为我看不到有任何方法可以为另一位用户提供现场直播。

如评论所述:

  

在创建聊天iframe之前,使用客户端api宣誓就可以正常工作。然后,聊天iframe可以加载并正常运行

一个“没有任何问题”的警告是,如果我使用帐户A登录到youtube(例如,广播),然后在同一浏览器(chrome,而不是隐身)中使用我的应用,那么Google api客户端可以声明我没有登录,这很好,但是当我在oauth登录期间选择一个帐户B时,则结果iframed聊天使用帐户A而不是帐户B。这很有意义,因为在我的应用程序上下文中从来没有使用我的应用程序API密钥通过google api登录过,但是在youtube聊天iframe中,我大概是A或B。使用其他浏览器不会发生此问题。只有一个帐户在玩。