最初に、事前に登録を行ったアプリケーションの情報を用いて認証コードを取得します。 ユーザーがクライアントアプリケーションにアクセスを許可した場合、上記のredirect_uriにリダイレクトされるとともに、認証コードがcodeパラメータとして返されます。 ログインが必要となるため、curlなどのコマンドラインツールではなく、ブラウザでアクセスします。
GET https://biz.conyac.cc/oauth/authorize
ブラウザで以下のURLにアクセス
https://biz.conyac.cc/oauth/authorize?response_type=code&client_id=df256790540e639c9ef7a1debc31ae09405170c5b51b76d4a123b910cc032e56&redirect_uri=https%3A%2F%2Fyourconyacapp.com%2Foauth%2Fconyac%2Fcallback
ログイン後、以下のURLにリダイレクトされる。
https://yourconyacapp.com/oauth/conyac/callback?code=daaefad48a50797ff9b424e4ac948dda87bb8238d67090b4fa6909726f235ad3
上記で得られた認証コードを用いてアクセストークンを取得します。
POST https://biz.conyac.cc/oauth/token
curl https://biz.conyac.cc/oauth/token \
-d client_id=df256790540e639c9ef7a1debc31ae09405170c5b51b76d4a123b910cc032e56 \
-d client_secret=f11d67fe92e97c371dec524e989ed3289828e604f5c4c4b545e7392dfb47d7a3 \
-d redirect_uri=https%3A%2F%2Fyourconyacapp.com%2Foauth%2Fconyac%2Fcallback \
-d grant_type=authorization_code \
-d code=b35ec927409e96ce3676ccc77e27240a205d4fe5e74d446c34e42e2f5f72c5ca
-X POST
{
"access_token": "a5adb9bc60a9ed4438f7db1443971181b1dab875f0d6994d3245aa4cee7e34b8",
"token_type": "bearer",
"expires_in": null,
"refresh_token": null,
"scope": ""
}
Conyac APIは標準的なOAuth 2.0 providerとして実装されているため、一般に公開されてるOAuth 2.0 comsumerライブラリを用いて認証とAPIアクセスが可能です。ここでは一例として、Rubyのoauth2 gemを用いた認証の例を挙げます。
irbで以下を実行
require 'oauth2'
callback = "https://yourconyacapp.com/oauth/conyac/callback"
app_id = "df256790540e639c9ef7a1debc31ae09405170c5b51b76d4a123b910cc032e56"
secret = "f11d67fe92e97c371dec524e989ed3289828e604f5c4c4b545e7392dfb47d7a3"
client = OAuth2::Client.new(app_id, secret, site: "https://biz.conyac.cc/")
client.auth_code.authorize_url(redirect_uri: callback)
以下のようなURLが出力されるので、ブラウザのURL入力欄にコピー&ペーストしてアクセスする。
https://biz.conyac.cc/oauth/authorize?response_type=code&client_id=df256790540e639c9ef7a1debc31ae09405170c5b51b76d4a123b910cc032e56&redirect_uri=https%3A%2F%2Fyourconyacapp.com%2Foauth%2Fconyac%2Fcallback
https://yourconyacapp.com に現在はWebアプリケーションは存在しないので、接続できませんでしたというエラーが出るが無視する。リダイレクトされたURL入力欄を見ると、以下のようなURLになっている。
https://yourconyacapp.com/auth/conyac/callback?code=205f705d46ccd7cdc0ea4f7f3db113289291ba8092f7e10586b9b1e2c1fe8e34
上記で得られたコード205f705d46ccd7cdc0ea4f7f3db113289291ba8092f7e10586b9b1e2c1fe8e34
を用いて、引き続きirbに以下のrubyコードを入力して、アクセストークンを取得する。
access_token = client.auth_code.get_token('205f705d46ccd7cdc0ea4f7f3db113289291ba8092f7e10586b9b1e2c1fe8e34', redirect_uri: callback)
access_token.token
で得られた文字列がアクセストークンである。
access_token.token
=> "2b0bf9de2146afa09996c2c6b180d69e9d6f1791c39dd169355a32adf3cf389f"