Twitch API v5を利用して人気のゲーム情報を取得することができる。New Twitch APIでも可能だが、取得できるのは、現在の視聴数順にソートされたゲーム情報だけになる。v5はすでにdeprecatedなAPIとしてアナウンスされているが、ゲーム情報に加え、視聴数や配信チャンネル数も取得することができるため、New Twitch APIよりも利用価値が高い。
下記は、v5を利用して人気のゲーム情報を取得するコードの例。
class TwitchApi_v5_Client
{
private $endpoint = 'https://api.twitch.tv/kraken/';
private $oauthClientIdHeader;
public function __construct($CLIENT_ID, $ACCESS_TOKEN = "")
{
$this->oauthClientIdHeader = "Client-ID: $CLIENT_ID";
}
public function get($resource, array $queryParams)
{
$url = $this->endpoint . $resource;
if (!empty($queryParams))
$url .= '?' . http_build_query($queryParams);
$response = $this->execCurlGET($url);
sleep(1);
return json_decode($response, true);
}
private function execCurlGET($url)
{
$cmd = 'curl' .
" -H 'Accept: application/vnd.twitchtv.v5+json'" .
" -H '{$this->oauthClientIdHeader}'" .
" -X GET '$url'";
echo "# $cmd\n";
return exec($cmd);
}
}
$CLIENT_ID = '_CLIENT_ID_';
$client = new TwitchApi_v5_Client($CLIENT_ID);
$params = [
//'limit' => 100,
//'offset' => 0,
];
$response = $client->get('games/top', $params);
var_dump($response);
v5で人気のゲーム情報を取得するには、下記のURLに対してGETリクエストを送信すれば良い。
https://api.twitch.tv/kraken/games/top
リクエスト時のクエリパラメータとして、limit
パラメータを指定すると、APIレスポンスに含める結果の件数を変更することができる。デフォルトは 10
で10件のゲーム情報がレスポンスとして返される。最大値は 100
までとなる。
また、offset
パラメータを指定することにより、レスポンスデータのページネーションを行うことができる。デフォルトでは、0
が設定され、1ページ目の結果がレスポンスとして返される。2ページ目以降の結果を取得するには、この値をインクリメントしていけば良い。
APIリクエスト実行後、レスポンスデータの top
フィールドにゲーム情報(game
オブジェクト)が含まれている。viewers
プロパティがそのゲームの現在の視聴数、channels
プロパティが現在配信しているチャンネル数を表す。現在の視聴数とチャンネル数は、New Twitch APIではレスポンスデータに含まれないため、これらのデータを取得したい場合は、v5を利用する必要がある。