【问题标题】:Youtube data api retrieving and interacting with livechatmessagesYoutube 数据 api 检索并与 livechatmessages 交互
【发布时间】: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


【解决方案1】:

尽管没有解决核心问题,但还是回答了,因为我看不到任何方法可以为其他用户获取 livechatid。

如评论:

在创建聊天 iframe 之前使用客户端 api 进行宣誓可以正常工作。然后聊天 iframe 加载并运行没有任何问题

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

【讨论】:

    猜你喜欢
    • 2016-10-23
    • 2019-09-20
    • 2022-09-26
    • 2021-06-09
    • 2012-05-12
    • 2012-06-13
    • 2020-11-27
    • 2011-09-23
    • 1970-01-01
    相关资源
    最近更新 更多