我一直在努力与YouTube很多。
问题是,我已经制作了自己的php curl脚本,该脚本应连接到youtube api并向当前流发送实时聊天消息。

我已经很接近完成这个问题了,但是只有这最后1个部分使我停滞不前。

我当前使用的脚本是:

$data = array("snippet" => ["type" => 'textMessageEvent', 'textMessageDetails' => ['messageText' => '<3']], 'livechatid' => '{{livechatid_here}}');
    $data_string = json_encode($data);

    $ch = curl_init('https://www.googleapis.com/youtube/v3/liveChat/messages?part=snippet&fields=authorDetails%2Ckind%2Csnippet&key={{Here is my key}}');
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
            'Content-Type: application/json',
            'Content-Length: ' . strlen($data_string),
            'Authorization: Bearer {{access_key}} ')
    );

    $result = curl_exec($ch);
    dd($result);

但即时通讯不断收到以下错误:
  "code": 400,
  "message": "snippet.live_chat_id is required"\n

所以我所做的就是将“livechatid”更改为:
  • liveChatId(API告诉我)
  • live_Chat_Id
  • livechatid
  • snippet.livechatid
  • snippet.liveChatId
  • snippet.live_chat_id

  • 他们都没有工作。
    有人知道我该如何解决吗?

    当然,我已经从上面的代码中删除了我的密钥和access_tokens。

    我也曾尝试将它们添加到标题中,但我仍然一次又一次遇到相同的错误。

    有人知道我该如何解决这个问题?

    最佳答案

    liveChatId放入snippet字段中:

    $data = array("snippet" => [
      "type" => 'textMessageEvent',
      'textMessageDetails' => ['messageText' => '<3'],
      'liveChatId' => 'YOUR_LIVE_CHAT_ID'
    ]);
    $data_string = json_encode($data);
    

    10-06 05:13