#はじめに
GitHubAPIで、OAuth認証してデータ取得する為の方法を
メモっておきます。
言いたいことは、タイトルで終わっています。
他は特に嵌るポイントはないです。
#OAuth認証するメリット
OAuth認証しないと1時間に60回しかリクエストを送れません。
認証すると、1時間5000回までいけるようになります。
このAPIを利用して、ちょっとしたwebサービスでも作ろうと思ったら
基本OAuth認証が必要になります。
#嵌りどころ
##ユーザエージェントが罠
PHPでfile_get_contentsでリクエストを送ると
リクエストヘッダのユーザエージェントが、デフォルトで
「PHP/x.x.x」になります。
この「PHP/x.x.x」をGitHubAPIが弾いているようで
そのままリクエストを送ると403が返ってきます。
その為、php.iniのユーザエージェント設定を変更するか
file_get_contentsにてユーザエージェントを指定する必要があります。
参考
http://webtech-walker.com/archive/2007/05/08223419.html
http://xirasaya.com/?m=detail&hid=320
#サンプルコード
$options = array(
'http'=>array(
'method' => 'GET',
'header' => array(
'Authorization: token [API_TOKEN]',
'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36',
)
)
);
$context = stream_context_create( $options );
$contents = file_get_contents( 'https://api.github.com/users/bzz0217', FALSE, $context );
var_dump($contents);
#変更が必要な箇所
上記サンプルコードを動かす為に必要な変更箇所です。
##APIトークンの設定
[API TOKEN]の箇所に自身のGitHubのAPIトークンを設定してください。
'Authorization: token [API_TOKEN]',
APIトークンの取得がまだの方は下記記事を参考に取得してください。
http://blog.fkoji.com/2012/09051441.html
##リクエストするURLを変更
リクエストしたいURLを変更してください。
$api_url = 'https://api.github.com/users/bzz0217';
どんなことが出来るかは、下記マニュアルを参照ください。
https://developer.github.com/v3/repos/
#Lets'エンジョイ!
では、GitHubAPIでLets'エンジョイ!
快適なAPIリクエストライフをお楽しみ下さいw