Gyazo API
Register
アプリケーション登録ページからアプリケーションの登録をすると、client_idとclient_secretを発行できます。これを使用してAPIを利用したアプリケーションを開発してください。また、開発者自身のaccess_tokenも開発者ページで発行することができますので、まずはそちらを利用して開発を進めていくことができます。
全てのAPIはclient_idによる認証またはOAuthによる認証のどちらかが必要となります。ユーザーのログインを必要としないようなアプリケーションにはclient_idによる認証が簡単につかえて便利です。クライアントアプリの開発など、任意のユーザーがそれぞれのデータにアクセス出来るようにするためには、OAuth認証が必須となります。
client_id
client_idを必要とするAPIを使用する際には、下記のパラメータを付与してください。
client_id=LKjneiuajvdafasdsadfsadfasdhfa...
client_idはアプリケーションを利用するユーザーのデータには触れないため、Chromeエクステンション等のオープンな場所で使用しても問題ありません。
OAuth
OAuth2.0に準拠します。開発者ページでアプリケーションを登録し、client_idとclient_secretを取得します。client_secretは漏洩することのないように取り扱ってください。後述する手順に従ってユーザーを認証すると、そのユーザー用のaccess_tokenが発行されます。OAuth認証が必要となるAPIを使用する際は、このaccess_tokenを、
access_token=slakjfdijawnfjhf9w8ufwaejwa...このようにパラメータとして付与するか、あるいは
Authorization: Bearer slakjfdijawnfjhf9w8ufwaejwa...このようにリクエストヘッダーに付与してください。
ユーザーの認証フロー
ユーザによるアプリケーションの認証
ユーザー情報へのアクセスをリクエストするために下記のURLへユーザーをリクエストします。
GET /oauth/authorize
parameter
Name | Required | Remarks |
---|---|---|
client_id | ◯ | |
redirect_uri | ◯ | Applicationページで設定したもの |
response_type | ◯ | code のみ |
state | ||
team | 任意のチームを許可する場合はteam=* 、特定のチームだけを許可する場合はteam=helpfeel のようにチーム名を指定 |
ユーザーはこのページでGyazoにログインし、アプリケーションがGyazo情報にアクセスすることを許可します。認証がすむと、パラメータに指定したredirect_uriにコールバックされます。その際に、code
というパラメータが返ってきます。このcode
を利用して、ユーザーのaccess_tokenを取得します。
http://example.com/callback?code=asdklfajsdksajen...
また,CSRF対策としてstate
パラメータの利用が推奨されます。state
パラメータを設定した場合、code
と同時にstate
が返されます。
http://example.com/callback?code=asdklfajsdksajen...&state=wxyz...
access_tokenの取得
POST /oauth/token
parameter
Name | Remarks |
---|---|
client_id | |
client_secret | |
redirect_uri | Applicationページで設定したもの |
code | |
grant_type | authorization_code のみ |
このレスポンスにaccess_tokenが含まれているので、これをアプリケーションで保存してAPIを利用するときに使います。
HTTP/1.1 200 OK Date: Fri, 12 Oct 2012 23:33:14 GMT Content-Type: application/json; charset=utf-8 Status: 200 OK { "access_token" : "fkjasdlfjoiwjefjwanlekfjhwalkfhal", "token_type" : "bearer", "scope" : "public" }
access_tokenの有効期限
access_tokenの有効期限はありません。
ユーザーがアプリケーションとの連携を解除するか、アプリケーションを削除するまで有効です。