Twitch API v5はすでにdeprecatedであるが、v5でユーザー情報を取得する方法を記載する。あえてv5でユーザー情報を取得する理由は、New Twitch APIで取得できるユーザー情報には、アカウント作成日時や更新日時が含まれていないが、Twitch API v5ではそれが取得可能なため。
下記は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 = [
'login' => 'ninja',
];
$response = $client->get('users', $params);
var_dump($response);
Twitch API v5でユーザー情報を取得するには、
https://api.twitch.tv/kraken/users
に対し、クエリパラメータとして、login
パラメータにユーザー名を指定してGETリクエストを行えば良い。
※公式ドキュメントでは リクエストURLに user IDs
と記載されていて紛らわしいが、ユーザーIDではなくユーザー名を指定する。
上記のコードを実行するとAPIレスポンスとして、下記のようなユーザー情報を取得することできる。
※実際はAPIレスポンスとしてJSONデータが返されるが、json_decode()
を使って配列データに変換している。
レスポンスデータに含まれる created_at
と updated_at
がNew Twitch APIでは取得できない情報で、それぞれアカウントの作成日時、更新日時にあたる情報となる。
array(2) {
["_total"]=>
int(1)
["users"]=>
array(1) {
[0]=>
array(8) {
["display_name"]=>
string(5) "Ninja"
["_id"]=>
string(8) "19571641"
["name"]=>
string(5) "ninja"
["type"]=>
string(4) "user"
["bio"]=>
NULL
["created_at"]=>
string(27) "2011-01-16T04:31:20.024666Z"
["updated_at"]=>
string(27) "2020-08-26T11:23:23.750014Z"
["logo"]=>
string(109) "https://static-cdn.jtvnw.net/jtv_user_pictures/cef31105-8a6e-4211-a74b-2f0bbd9791fb-profile_image-300x300.png"
}
}
}