Youtube实时聊天消息Javascript API响应未与youtube网站和应用上可见的实际聊天同步

时间:2018-11-01 11:11:09

标签: javascript youtube youtube-api youtube-javascript-api youtube-livestreaming-api

我们正在尝试通过youtube(视频URL-https://www.youtube.com/watch?v=Sby6O2k9j4k)设置在线流式传输事件。现在,当我们滚动到最后时,我们在实时聊天重播中看到一条消息。但是当我尝试从此处使用API​​进行查询时-

获取https://www.googleapis.com/youtube/v3/liveChat/messages

带参数-liveChatId:Cg0KC2ZRcnpkRW5Vbm1J,部分:id,代码段,authorDetails

我得到了另一个尝试从此API插入的消息列表-

POST https://www.googleapis.com/youtube/v3/liveChat/messages

带有此请求正文-

{
  "snippet": {
    "liveChatId": "Cg0KC2ZRcnpkRW5Vbm1J",
    "type": "textMessageEvent",
    "textMessageDetails": {
      "messageText": "Test chat message api"
    }
  }
}

因此,只有我通过插入API发送的此消息才返回到列表API,而不是通过youtube网站发布并可见的消息。任何人都可以帮助调试或解决此问题。

此外,我尝试将iframe嵌入实时聊天中,但由于某种原因,iframe在移动设备中不可见,因此,如果有此修复程序,它将使我的生活更加轻松。 TIA

1 个答案:

答案 0 :(得分:0)

您似乎正在从以前的广播中收到消息。每当您每次上YouTube时,都会创建一个新的广播对象。因此,首先您需要通过提供参数(broadcastStatus = active)来获取广播列表

  

获取   https://www.googleapis.com/youtube/v3/liveBroadcasts?part=[id,snippet,contentDetails,status]&broadcastStatus=active&key=[YOUR_API_KEY]   HTTP / 1.1

     

授权:不记名[YOUR_ACCESS_TOKEN]接受:application / json

作为回应,将有现在直播的广播列表。因此,将有liveChatId。您可以获取当前广播的所有消息。

  

获取   https://www.googleapis.com/youtube/v3/liveChat/messages?part=[id,snippet,contentDetails,status]&key=[YOUR_API_KEY]   HTTP / 1.1

     

授权:不记名[YOUR_ACCESS_TOKEN]接受:application / json

如果这不起作用,请随时告诉我。

参考liveBroadcasts ListlivechatMessages List