はじめに
TwitchAPIには100種類上のエンドポイントが用意されており、それらすべてを無料で利用することができます。(レート制限あり)
今回はTwitchAPIの利用までの流れを紹介していきます。
目次
- Twitch Developersでアプリケーションの登録
- アクセストークンの取得
- 利用したいAPIにアクセス
1. Twitch Developersでアプリケーションの登録
まず、Twitch Developersにアクセスし、アプリケーションの登録をします。登録手順に関しては、以下の記事で丁寧に説明されていたため、そちらを参考にしてください。
※アプリケーション名「test」「test_app」では作成できなかったため、
おそらくアプリケーション名の重複が許されていないかと思います。
重複していてもエラー表示が特に出ないため、要注意です。
登録後に確認できるクライアントIDとクライアントの秘密をアクセストークンの取得で使用するため、メモしておいてください。
2. アクセストークンの取得
TwitchAPIにはユーザーアクセストークンとアプリアクセストークンの2種類あります。
どちらのアクセストークンが必要なのかに関してはTwitch API Referenceに記載されているため、使用するAPIに合わせてアクセストークンを取得すると良いでしょう。
取得方法に関しては、Twitch APIの公式や以下の記事で詳しく説明されているため、それぞれの特徴について話していきます。
ユーザーアクセストークン
ユーザーアクセストークンとは?
ユーザーアクセストークンは、リソースにアクセスするためにユーザーの許可を必要となるAPIで使用されます。Twitchはスコープを使用して、アプリがアクセスするために許可が必要なリソース、またはリソース内のフィールドを識別しています。
TwitchAPIのスコープ一覧はこちらから。
取得方法1:Implicit Grant Flow
Implicit Grant Flowは、クライアントサイドのみで完結するため、サーバーが不要なJavascriptアプリやモバイルアプリを対象としています。認証コードを交換するステップが不要なので、ユーザーがアクセストークンをすぐに受け取れます。
取得方法2:Authorization Code Grant Flow
Authorization Code Grant Flowは、サーバーを使用し、クライアントの秘密(twitch developersで取得)を安全に保存でき、TwitchAPIに対してサーバー間リクエストを行うことができるアプリを対象としています。
認証コードがまずクライアントに送られ、その後サーバー側でアクセストークンが交換されるため、トークンの露出リスクが低減されます。また、リフレッシュトークンも取得できるため、アクセストークンが期限切れになった場合でも、新しいトークンを取得できます。これにより、ユーザーに再度ログインしてもらう必要がなくなります。
取得方法3:Device code grant flow
Device code grant flowは、サーバーを使用せず、入力機能が限られたデバイス(スマートTV、ゲームコンソール、プリンタ など)を対象としています。
入力機能が制限されているデバイスでも、ユーザーはスマートフォンやPCを使用して簡単に認証できます。
アプリアクセストークン
アプリアクセストークンとは?
アプリアクセストークンは、リソースへのアクセスにユーザーの許可を必要としないAPIで使用されます。ユーザーアクセストークンと異なり、アプリアクセストークンの取得方法は1つです。
取得方法:Client credentials grant flow
Client credentials grant flowは、アプリアクセストークンを使用するサーバー間の API リクエストのみを対象としています。事前にアプリアクセストークンを取得しておき、サーバー側で任意のAPIにアクセスするという流れになります。
3. 利用したいAPIにアクセス
Twitch API Referenceから利用したいAPIを探し、内容に従ってHTTPリクエストを送信すればリソースを取得できます。
以下の「Get Users」を例に挙げて説明します。「Get Users」はどちらのアクセストークンでもアクセス可能ですが、ユーザーアクセストークンを指定した場合、リクエストはアクセストークン内のユーザーに関する情報が返ってきます。
そのため、アプリを利用するユーザーの情報を取得したい場合は、ユーザーアクセストークンを取得する必要があります。
ユーザーIDを把握している場合は、アプリアクセストークンを利用して、ユーザーIDを指定してあげることで、指定したユーザー情報を取得することも可能です。
まとめ
TwitchAPIには多くのエンドポイントが用意されているため、
必要なアクセストークンを取得し、好きなAPIを呼び出して遊んでみてください!