🗝️

Ruby での Box API OAuth 2.0 refresh token 取得

2020/09/27に公開1

これはなに?

手順

app 追加

  • まずアプリを追加する
  • 追加したら認証に↓を利用する
    • client id
    • client secret
  • リダイレクト URL に以下を設定する
    • http://localhost:8080/oauth2/callback

authorization code の取得

require 'oauth2'

client = OAuth2::Client.new(
  "", # client_id
  "", # client_secret
  site: "https://account.box.com",
)
client.options[:authorize_url] = "/api/oauth2/authorize"
client.options[:token_url] = "api/oauth2/token"

client.auth_code.authorize_url(
  redirect_uri: "http://localhost:8080/oauth2/callback",
)

↑を実行すると認証用の URL が返ってくるのでブラウザで開く

=> "https://account.box.com/api/oauth2/authorize?client_id=XXXXX&redirect_uri=http%3A%2F%2Flocalhost%3A8080%2Foauth2%2Fcallback&response_type=code"

認証画面が表示されるのでボタンを押す。

URL 欄に authorization code が返ってくる。

http://localhost:8080/oauth2/callback?code=XXXXX

refresh token 取得

client.auth_code.get_token(
  "", # authorization code
  redirect_uri: "http://localhost:8080/oauth2/callback",
).refresh_token

↑を実行すると refresh token が取得できる。

=> "XXXXX"

Discussion