twitchのAPIを使って、特定の配信者が生配信をしているかをブラウザで手軽に調べる

twitch
スポンサーリンク

前提条件

以下のページを参考にアカウントを作って、アプリケーション登録、クライアントIDの取得まで終わっている

Twitch APIを利用してみよう - Qiita
はじめにTwitchには便利なAPIが提供されています。そんなAPIの存在を知らない人、知っててもなんとなくめんどくさくて使ってない人は割と多いと思います。というわけでTwitch APIを使っ…

また、以下のページからトークン取得まで実施している

Twitch APIに必要なOAuth認証のアクセストークンを取得しよう - Qiita
はじめにTwitch APIを利用してみようでAPIを使えるようになったと思います。しかしTwitch APIにはクライアントIDではなく、ユーザ認証によるアクセストークンが必要なものがあります…

今回はPostmanで実行してブラウザ上で挙動を検証する

OAth認証のためのキーを取得

以下のページの「3. The OAuth client credentials flow」を参考にOAuthキーをPostmanで取得します

Twitch APIに必要なOAuth認証のアクセストークンを取得しよう - Qiita
はじめにTwitch APIを利用してみようでAPIを使えるようになったと思います。しかしTwitch APIにはクライアントIDではなく、ユーザ認証によるアクセストークンが必要なものがあります…

公式の解説は以下のページ

Getting OAuth Access Tokens
Getting OAuth Access Tokens

Postmanでは以下のように設定します

  • methodのタイプを「POST」に変更
  • URLは「https://id.twitch.tv/oauth2/token」
  • Paramsには何も入力しない
  • Bodyのタイプを「x-www-form-urlencoded」に選択
  • Bodyのキーと変数に以下を入力
    「client_id」:「前提で取得したクライアントID」
    「client_secret」:「前提で取得したトークン」
    「grant_type」:「client_credentials」

これでPOSTすると、access_tokenにOAuth認証に必要な文字列が取得できます

配信者のidを取得

例えば釈迦の配信ページのURLを見ると、「https://www.twitch.tv/fps_shaka」となっており、fps_shakaがidのように思えますが違います

それぞれの配信者には数字のidを割り当てられており、これを先ほどのOAuthを使ってAPI経由で取得します

以下のページを参考に取得します

Twitch APIでクエリの際に使用するIDがややこしかった - Qiita
はじめにどうも、最近Twitch APIを使って色々遊んでいます。そんな中でAPIのクエリに指定するIDについて少々詰まりました。この"ID"とは、例えばあるストリーマーの配信情報を得たいときに…
Reference
Twitch Developer tools and services to integrate Twitch into your development or create interactive experience on twitch.tv.
  • URLは「https://api.twitch.tv/helix/users」
  • Headerに
    「client_id」:「前提で取得したクライアントID」
    「Authorization」:「Bearer」+「先ほど取得したOAuthの文字列」
  • Paramsに
    「login」:「配信者のURLの最後」e.g 釈迦ならfps_shaka
    またloginは複数同時に指定することもできます

これでGETを実行すると釈迦のidが「49207184」ということが分かります

※ほかには、

  • ファン太:203654142
  • けんき:113028874

などがidとして割り当てられています

idから配信者の生放送状況を取得

先ほど取得したidを使って配信者が何を放送しているかを取得します

以下のページを参考に取得します

Reference
Twitch Developer tools and services to integrate Twitch into your development or create interactive experience on twitch.tv.
  • URLは「https://api.twitch.tv/helix/streams」
  • Headerに
    「client_id」:「前提で取得したクライアントID」
    「Authorization」:「Bearer」+「先ほど取得したOAuthの文字列」
  • Paramsに
    「user_id」:「先ほど取得した配信者のid」e.g 釈迦なら49207184

もし、釈迦が配信中だった場合、以下のような返答が返ってきます

{
    "data": [
        {
            "id": "41160859143",
            "user_id": "49207184",
            "user_login": "fps_shaka",
            "user_name": "fps_shaka",
            "game_id": "55453844",
            "game_name": "Street Fighter 6",
            "type": "live",
            "title": "キャラ対 詰めていく",
            "viewer_count": 10323,
            "started_at": "2024-03-22T05:05:20Z",
            "language": "ja",
            "thumbnail_url": "https://static-cdn.jtvnw.net/previews-ttv/live_user_fps_shaka-{width}x{height}.jpg",
            "tag_ids": [],
            "tags": [
                "日本語",
                "ネタバレ禁止",
                "ネタバレ注意",
                "大会のネタバレ禁止",
                "匂わせしないで"
            ],
            "is_mature": false
        }
    ],
    "pagination": {
        "cursor": "eyJiIjp7IkN1cnNvciI6ImV5SnpJam94TURNeU15NHhNRGd4TURFd01UZzNNeXdpWkNJNlptRnNjMlVzSW5RaU9uUnlkV1Y5In0sImEiOnsiQ3Vyc29yIjoiIn19"
    }
}

配信中でない場合は以下のように何も配列に入っていないデータが返ってきます

{
    "data": [],
    "pagination": {}
}

これによって、配信者が生配信中かどうかを調べることができます

自分用メモ

ゲームIDについて

今回必要なグラセフのゲームidは「32982」

コメント

タイトルとURLをコピーしました