【问题标题】:Guzzle request for getting Youtube LiveChatMessages list获取 Youtube LiveChatMessages 列表的 Guzzle 请求
【发布时间】:2017-08-18 07:51:33
【问题描述】:

我正在使用 Youtube Data API 并尝试获取聊天消息,为此我必须提供 lifeChatIdpart 参数

我的代码

    $guzzle_client = new Client();
    $res = $guzzle_client->request('GET', 'https://www.googleapis.com/youtube/v3/liveChat/messages',
        [
           'liveChatId' => $broadcastsResponse['modelData']['snippet']['liveChatId'],
           'part' => 'id,snippet'
        ]
    );

我遇到了错误

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "required",
    "message": "Required parameter: liveChatId",
    "locationType": "parameter",
    "location": "liveChatId"
   },
   {
    "domain": "global",
    "reason": "required",
    "message": "Required parameter: part",
    "locationType": "parameter",
    "location": "part"
   }
  ],
  "code": 400,
  "message": "Required parameter: liveChatId"
 }
}

但我确定我提供了两个必需的参数。 这个 var_dump 写在 guzzle 请求之前

var_dump([
    'liveChatId' => $broadcastsResponse['modelData']['snippet']['liveChatId'],
    'part' => 'id,snippet'
]);)

返回

array(2) {
  ["liveChatId"]=>
  string(20) "Cg0KC2hRYmU3akNyaXBV"
  ["part"]=>
  string(10) "id,snippet"
}

知道为什么会出现这样的错误吗?

【问题讨论】:

    标签: php youtube youtube-data-api guzzle google-apis-explorer


    【解决方案1】:

    尝试使用 query 请求选项将它们作为查询字符串参数传递。

    $guzzle_client = new Client();
    $liveChatId = $broadcastsResponse['modelData']['snippet']['liveChatId'];
    
    $res = $guzzle_client->request('GET', 'https://www.googleapis.com/youtube/v3/liveChat/messages', [
        'query' => ['liveChatId' => $liveChatId, 'part' => 'id,snippet']
    ]);
    

    【讨论】:

    • 非常感谢!为我工作!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-22
    • 2016-10-23
    • 2017-04-16
    • 2015-12-09
    • 1970-01-01
    • 1970-01-01
    • 2015-11-26
    相关资源
    最近更新 更多