2013年7月29日 星期一

Github API 如何申請與使用

GitHub API 可以讓你寫一個完整的 Client 程式,讀取、寫入 GitHub 上的相關資料,最簡單的就是列出檔案目錄,然後讀取檔案的內容,或是上傳等等。

GitHub 使用的是 OAuth 認證流程,不過我下面的範例你不需要詳細了解 OAuth 即可開始使用,並且只要用 Chrome 就可以完成 API 的呼叫。但對於 Http Get、Http Post、JSON 需要有基本認識。在整個過程中有一個重要的概念是 AccessToken,這是最終呼叫 API 時所要取得的暫時 Key,這個 Key 一段後可能會過期…總歸來說真正要上線使用時,仍要了解 OAuth 的相關概念。
  • 申請 API Key,到下列網址,需要登入。
https://github.com/settings/applications/new
申請時需要打上一些資訊,下面提供說明:
Application name:隨意打一個
Homepage URL:輸入「http://127.0.0.1:8080」。
Authorization callback URL:輸入「http://127.0.0.1:8080/oauth」。
Application description:隨意寫個說明…
上列網址不需要真正存在的,除非你已經完成開發,要上線使用時。
完成之後你會得到下列兩個重要資訊「Client ID、Client Secret」,把他記到一個地方。
這是得到 AccessToken 過程中重要的資訊。
  • 到下列網址取得暫時的 code,是用來隨後取得 AccessToken 的另一個暫時代碼(clientid 要傳入你剛剛申請得到的)。
https://github.com/login/oauth/authorize?client_id=<clientid>
他會需要登入,並且他會問一些東西,反正你就都按確定或是 Accept 之類的就對了。完成之後會 Redirect 到你剛剛申請時所輸入的網站,並帶一個參數,這就是要換 AccessToken 的一個重要暫時通行代碼,例:http://127.0.0.1:8080/oauth?code=261a428a68188bfd98f6
  • 到下列網站取得 AccessToken
https://github.com/login/oauth/access_token?client_id=<clientid>&client_secret=<clientsecret>&code=<code>
clientid、clientsecret:輸入申請時的。
code:傳入剛剛第上一步取得的暫時通行代碼。
他會回傳一個 AccessToken 的資訊,我用的是 Chrome,他會下載一個檔案,裡面就會包含 AccessToken 的資料。
  • 測試呼叫一個 API。
https://api.github.com/repos/<owner>/<repos>/contents/?access_token=<accesstoken>
owner:傳入你的帳號名稱。
repos:要下載的「知識庫」名稱。
accesstoken:剛剛得到的 AccessToken。

API 的呼叫格式在最後的網頁中有提到,不同的 API 有些許不同,可以參考最下面提供的 Github API 說明文件,這裡就省略不說了...有空再寫。

上列動作通通可以使用 Browser 完成,我使用的是 Chrome,不過其他 Browser 可能有不同的反應,或是不可以用...致少 IE 就好像不能用。

所有資訊都可以在下列網站看到,寫的很詳儘,不過是英文的…
http://developer.github.com/v3/oauth/


呼叫後 Response 範例: