🎥

YoutubeAPIにて、指定したパラメータとは違うレスポンスが帰ってきたときの解決法

2023/11/28に公開

概要

YoutubeAPIの/searchを使って配信中のライブカメラを取得しようとした。
しかし、指定したパラメータとは違うレスポンスが帰ってきたことに気づく。

原因

連想配列の先頭要素以外を取得しようとしたら、
二番目の要素だけ取得してしまっていた。

修正内容

+ $firstKey = array_key_first($query_object);
+ unset($query_object[$firstKey]);
- $parameter = array_splice($query_object, 1, 1);
$parameter = $query_object;

$query_object(YoutubeAPIのクエリ)

array($query_object):6 [ 
  "part" => "id,snippet"
  "q" => "ライブカメラ,空港 | 道路"
  "type" => "video"
  "eventType" => "live"
  "order" => "viewCount"
  "maxResults" => "10"
]

修正前

array($query_object):1 [ 
  "q" => "ライブカメラ,空港 | 道路"
]

修正後

array($query_object):5 [ 
  "q" => "ライブカメラ,空港 | 道路"
  "type" => "video"
  "eventType" => "live"
  "order" => "viewCount"
  "maxResults" => "10"
]

あとがき

パラメータを書く順番のミス等、色々考えたが自作関数が間違っているだけだった。
array_spliceのリファレンスを曖昧に読んだ結果である。

YoutubeAPIのリファレンスからAPIを試しに叩ける機能があるので、
次からはそこと見比べておかしかったら自作部分に原因があることに早く気付ける。

Discussion