Github API

【Github API基本仕様】
①スキーム
01. すべてのAPIは、httpsで通信され、api.github.comドメインからアクセスされる。
02. エンタープライズ向けAPIは、◯◯.com/api/v3/~からアクセスされる。
03. すべてのデータはJSONで取得できる
04. 取得したJSONに含まれる時間のフォーマットは「YYYY-MM-DDTHH:MM:SSZ」
05. 取得できる情報には、「Summary」表現バージョンと「Detail」表現バージョンがある。パフォーマンス上の都合から、Summary版では一部の情報が機械的に省略される場合があるので、それがイヤな場合はDetail版のapiを使うべし。
06. Summary版のapiは「例:https://api.github.com/orgs/octokit/repos
07. Detail版のapiは「例:https://api.github.com/repos/octokit/octokit.rb
②パラメータ
08. 多くのAPIはパラメータを付与することができます。
09. GETメソッドではパスの要素の一部として特定できないパラメータは、StringパラメータのHTTPクエリとして処理されることがあります。
③O-Auth認証
10. GithubAPIでは3種類の認証方法を用意しています。
11. 認証なしのユーザーが事故的にアクセス出来てしまうのを防ぐために、認証が必要なAPIを認証なしで叩くと「403 Forbidden」ではなく「404 Notfound」で返ってくるものもあります。
Basic認証
$ curl -u "username" https://api.github.com
O-Auth認証(ヘッダで送信)
$ curl -H "Authorization: token OAUTH-TOKEN" https://api.github.com
O-Auth認証(パラメータで送信)
$ curl https://api.github.com/?access_token=OAUTH-TOKEN
O-Auth認証(KeyとSecretで送信 ※サーバーtoサーバーの通信に利用。※第3者に知られないように注意)
$ curl 'https://api.github.com/users/whatever?client_id=xxxx&client_secret=yyyy'
12. 信頼できない認証だった場合は「401 Unauthorized」を返す。ただし、短いスパンでの認証については時折「403 Forbidden」を返す。
④ページング
13. 複数の情報を扱うapiは基本的に30個ずつ情報を返す。
14. 「?page=数字」パラメータを使うと任意のページ数でデータを取得できる。
15. いくつかのapiリソースについては、「?per_page=数字」パラメータを使って1ページごとのサイズを増やすことができる。ただし、1ページあたりの上限は100。
例:$ curl 'https://api.github.com/user/repos?page=2&per_page=100'
⑤リクエスト制限
16. 認証済のリクエストについては1時間あたり5000リクエスト。認証なしのリクエストについては1時間あたり60リクエストまで。



【Github 開発者サイト】
https://developer.github.com/


【フィードの取得】
Atom形式(XMLの拡張版のようなもの。RSS的な。)で取得できる。


【Contributionの取得】
Contributionのカレンダーは、JavaScriptの「D3.js」のheatmap calendarが使われています。

https://github.com/users/ユーザー名/contributions
でSVG形式のhtmlが取得できる。
Chromeでは表示できる。UIWebViewに読み込んであげれば表示できる。
WebViewで表示する方法
javascriptで取得


最終更新:2014年12月01日 03:07