IGDB は、世の中の(ビデオ)ゲームの情報をデータベースとして集約しようとしている壮大なプロジェクトで、現在 Twitch が運営しています。
この情報には IGDB API という Web API でアクセスできるようになっていて、簡単に試す程度なら無料で利用できます。
ちょっと試してみたのでメモに残しておきます。
とりあえず、curl
コマンドで API のレスポンスを確認するところまで。
大まかには、Twitch developers console でアプリクライアントを登録し、アクセストークンを発行して API を叩く、という流れになります。
Twitch アカウントを登録する
IGDB API を使うには、Twitch developers コンソールでアプリケーション(クライアント)の登録が必要です。 このサイトにサインインするには、Twitch のアカウントが必要 なので、下記から作成します。 すでに Twitch アカウントを持っている場合は、そのまま使えます。
さらに、API を使用する場合は、さらに二段階認証の設定が必須になっているので、次のような感じでたどって設定しておきます。 メールアドレスや電話番号を登録すれば二段階認証を有効化できます。
アプリケーションを登録してクライアント ID とシークレットを発行する
Twitch developers コンソール の アプリ管理画面 でアプリを登録すると、クライアント ID とシークレットキーを取得できます。
アプリケーションを登録
ボタンをクリック名前
: 適当な名前を入力(グローバルに一意な名前じゃないといけないっぽい)OAuthのリダイレクトURL
: 決まっていないならhttp://localhost:3000
などを入力しておけば OKカテゴリー
: プルダウンから適当に選択(Website Integration など)
作成
ボタンを押して完了- 作成されたアプリの
管理
ボタンをクリック 新しい秘密
ボタンを押してクライアントシークレットを発行
上記の手順で、IGDB API を呼び出すためのクライアント ID とシークレットを確認できます。
- クライアント ID の例:
mhtlekfud5qy706n5wpl568uz1k7j9
- クライアントシークレットの例:
aoz73xqlpnry1lnw7ohdz7ry5qb4nu
アクセストークンを発行する
IGDB API でゲーム情報を取得するためには、アクセストークンが必要 なのですが、これは前述の手順で発行したシークレットとは異なります。
Authentication API でクライアント ID とシークレット情報を送ることで、一時的なアクセストークンを発行する必要があります。
次のように curl
コマンドで POST リクエストを送れば、レスポンスでアクセストークンを取得できます。
ここでは、直接レスポンスでアクセストークンを取得する OAuth Client Credentials Flow というフローを使いましたが、これは、サーバーサイドでトークンのやりとりを完結できる場合のみに使用できるフローです。 他の OAuth フローに関しては、下記のドキュメントを参照してください。
IGDB API でゲーム情報を取得する
アクセストークンを取得したら、ゲーム情報を取得するための API を呼び出すことができます。
下記はゲームのリストを取得する API (https://api.igdb.com/v4/games
) の呼び出し例です。
REST API なので、取得する情報ごとにエンドポイント (URL) を使い分ける必要があります。
$ curl -H "Client-ID: mhtlekfud5qy706n5wpl568uz1k7j9" \
-H "Authorization: Bearer 1rp02cemrb59wzbhoi2ei8yx6nms3l"
-d "fields *;"
https://api.igdb.com/v4/games
アクセストークンは、上記のように Authorization
ヘッダーで指定してください。
デフォルトでは 10 件分のゲーム ID が返ってくるようです(本当に ID だけ)。
POST リクエストの Body 部分(-d
オプション)で fields *;
と指定すると、ゲームの詳細情報が含まれるようになります。
ここまでできれば、あとはいろんな API を試せますね。
٩(๑❛ᴗ❛๑)۶ わーぃ