【发布时间】:2019-07-28 10:52:05
【问题描述】:
我正在通过 javascript 库使用 youtube data api v3。 list livebroadcasts 调用 (https://developers.google.com/youtube/v3/live/docs/liveBroadcasts/list) 获取当前认证用户(例如通过 oauth 认证的用户)拥有的广播。我想为给定的 channelid 获取广播,然后获取它的 livechatid。
是否可以获得不属于当前认证用户的直播的livechatid?
在我的网络应用程序中,如果有针对给定硬编码频道 ID 的直播,那么我会让人们通过嵌入式播放器观看直播并通过聊天小部件进行交互。这允许用户在使用网络应用程序时按照说明进行操作,并通过聊天进行交互。
一些初步调查:
在文档中,没有可用的参数来解决此问题以检索直播的 livechatid,这是在 livechatmessages 资源中列出和插入所必需的。 可以使用search api资源获取当前直播的视频id(见How to check if YouTube channel is streaming live),但是不能使用list livebroadcast请求的id请求参数获取到livechatid)。
可以将 livechatmessages 资源用于当前已验证用户不拥有的 livechatid(尝试通过将 livechatid 作为所有者帐户,然后作为第二个帐户进行验证)并使用 api 资源管理器)。因此,一旦我获得了 livechatid,我就可以做需要的事情
我可以使用服务器端调用来获取当前的 livechatid。这似乎是目前唯一的好答案,但需要大量额外的工作。
还可以嵌入 youtube 聊天 iframe(请参阅 https://support.google.com/youtube/answer/2524549),但如果您没有登录,那么聊天框架似乎会重定向父级,并且不会在登录后返回网站。也许我可以使用谷歌客户端 api 登录,然后加载 iframe。这在前端工作中会更容易,但会牺牲任何可定制性。
【问题讨论】:
-
在创建聊天 iframe 之前使用客户端 api 进行宣誓可以正常工作。然后聊天 iframe 加载并运行没有任何问题
标签: youtube-api youtube-data-api