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
NameRequiredRemarks
client_id
redirect_uriApplicationページで設定したもの
response_typecodeのみ
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
NameRemarks
client_id
client_secret
redirect_uriApplicationページで設定したもの
code
grant_typeauthorization_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の有効期限はありません。
ユーザーがアプリケーションとの連携を解除するか、アプリケーションを削除するまで有効です。