ベンです。私は ruby-box Gem の開発者の 1 人です。できることは次のとおりです。
- app.box.com で、このコールバックを使用するようにアプリケーションをセットアップします
https://localhost/oauth2callback
- IRB で、同じコールバックを使用して承認 URL を生成します。
session = RubyBox::Session.new({
client_id: $boxClientID,
client_secret: $boxClientSecret
}))
authorize_url = session.authorize_url('https://localhost/oauth2callback')
- この URL を Web ブラウザに貼り付けます。
- Box で認証すると、次のような URL を持つコールバック ページが表示されます。
https://localhost/oauth2callback?state=&code=OQpfImZH35Ab9weUy61kthIvqZ2Dyz6
- コードの値をコピーします。
- irb に戻り、次のコマンドを実行します。
token = session.get_access_token('OQpfImZH35Ab9weUy61kthIvqZ2Dyz6')
access_token = token.token
refresh_token = token.refresh_token
- アクセス トークンと更新トークンの両方をデータベース (またはナプキン、または適切と思われる場所) に保存します。
- これからは、次のようにセッションをインスタンス化できます。
session = RubyBox::Session.new({
access_token: $storedAccessTokenValue,
refresh_token: $storedRefreshTokenValue,
client_id: $boxClientID,
client_secret: $boxClientSecret
})
client = RubyBox::Client.new(session)
ユーザーごとに access_token と refresh_token を 1 回だけ取得する必要があります。