7
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

UnityでYouTubeLiveのAPIを叩きに行く メモ

Last updated at Posted at 2018-01-29

メモです

YouTubeLiveAPIを叩きに行って、コメントを取得したかったもののまだ途中です。
忘れないためのメモ。
コードが汚いのは、メモなので勘弁してほしい。

UnityでYoutubeAPIを叩きに行く

private IEnumerator GetYoutubeAPI()
    {
        
        UnityWebRequest request = UnityWebRequest.Get(uri);

        yield return request.SendWebRequest();

        if(request.isHttpError || request.isNetworkError)
        {
            Debug.Log(request.error);
        }
        else
        {
            Debug.Log(request.downloadHandler.text);
        }
    Debug.Log(request.downloadHandler.text);
}

コルーチン内で、UnityWebRequestを作って、Get(uri)で、呼びに行く。
uriは、上の方で適当に定義する。

Debug.Log(request.downloadHandler.text);

これで、コンソールにJSONのログが出現する。

yield return request.SendWebRequest();

yield 節の意味を未だによくわかってない。誰か教えて。

とりあえずこれで、JSONデータがとれます。

YouTubeLiveのコメントを見に行く。

たどる順番。

  • チャンネルIDを知っているとする
  • videoIDを取得
  • chatIDを取得
  • チャットを取りに行く!

JSONのパースで大いにハマる。

結局、Unity標準のJsonUtilityは使い方がわからなかったので、MiniJSONを使用。
JSONの辿り方としてこれで正しいか全くわからないけど、
videoID取りに行くときのやり方をメモしておく。

 //MiniJSON つかうー!!!!
        var mjson = (IDictionary)MiniJSON.Json.Deserialize(jsontext);

        var mitems = (IList)mjson["items"];
        var mid = (IDictionary)mitems[0];
        var sid = (IDictionary)mid["id"];
        //videoIdを取得
        videoId = (string)sid["videoId"];

中に配列がはいっていてもパースできることがわかったので良かった。
こんな感じで、URI作って投げて、返ってきた値を、突っ込んで投げてすればチャットとれます。

全然まとまってないのは、そのうちちゃんとかきます。
まだ、表示部までできてないので・・・。

参考と言うか、ほぼそのままと言うか

JSONをパース

https://qiita.com/phi/items/914bc839b543988fc0ec
https://qiita.com/asus4/items/bac121c34cd3169116c0

YoutubeLive

https://blog.sky-net.pw/article/86
https://qiita.com/minakawa-daiki/items/2568afdc6d88a0de705a

その他もろもろ・・・。
うぅ。出来る人なら1時間もあれば出来ることを僕はまるっと一日かかってしまった。(しかもまだ途中

もっとこうした方がいいよ、。とか言うことがあれば、教えて下さい。お願いします。
あと、コルーチンとかまだまだよくわかってないし。。。

7
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?