Class: Freee::Api::Token
- Inherits:
-
Object
- Object
- Freee::Api::Token
- Defined in:
- lib/freee/token/client.rb
Constant Summary collapse
- DEVELOPMENT_REDIRECT_URL =
Freee 開発環境用認証コードURL
'urn:ietf:wg:oauth:2.0:oob'
- AUTHORIZE_URL =
Freee 認証コードURL
'https://accounts.secure.freee.co.jp/public_api/authorize'
- TOKEN_URL =
Freee Token URL
'/oauth/token'
Instance Attribute Summary collapse
-
#client ⇒ Object
readonly
oauth-xx client(read only).
Instance Method Summary collapse
-
#authorize(redirect_uri) ⇒ String
本番環境用に認証コード・アクセストークンのコールバックURLを生成.
-
#development_authorize ⇒ String
開発環境用に認証コード・アクセストークンのコールバックURLを生成.
-
#get_access_token(code, redirect_uri) ⇒ Hash
アクセストークン関係のパラメータを取得.
-
#initialize(app_id, secret) ⇒ Token
constructor
A new instance of OAuth2 Client.
-
#refresh_token(access_token, refresh_token, expires_at) ⇒ Hash
リフレッシュトークンからアクセストークンを再取得.
Constructor Details
#initialize(app_id, secret) ⇒ Token
A new instance of OAuth2 Client.
21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/freee/token/client.rb', line 21 def initialize(app_id, secret) = { site: Parameter::SITE, authorize_url: AUTHORIZE_URL, token_url: TOKEN_URL } raise 'アプリケーションIDが入力されていません' if app_id.empty? raise 'Secretが入力されていません' if secret.empty? @client = OAuth2::Client.new(app_id, secret, ) end |
Instance Attribute Details
#client ⇒ Object (readonly)
oauth-xx client(read only)
7 8 9 |
# File 'lib/freee/token/client.rb', line 7 def client @client end |
Instance Method Details
#authorize(redirect_uri) ⇒ String
本番環境用に認証コード・アクセストークンのコールバックURLを生成
42 43 44 45 |
# File 'lib/freee/token/client.rb', line 42 def (redirect_uri) raise '認証用コードを返すためのリダイレクトURLが指定されていません' if redirect_uri.empty? @client.auth_code.(redirect_uri: redirect_uri) end |
#development_authorize ⇒ String
開発環境用に認証コード・アクセストークンのコールバックURLを生成
35 36 37 |
# File 'lib/freee/token/client.rb', line 35 def @client.auth_code.(redirect_uri: DEVELOPMENT_REDIRECT_URL) end |
#get_access_token(code, redirect_uri) ⇒ Hash
アクセストークン関係のパラメータを取得
51 52 53 54 55 56 57 58 59 |
# File 'lib/freee/token/client.rb', line 51 def get_access_token(code, redirect_uri) raise '認証用コードが存在しません' if code.empty? raise 'アクセストークンを返すためのリダイレクトURLが指定されていません' if redirect_uri.empty? begin @client.auth_code.get_token(code, redirect_uri: redirect_uri) rescue OAuth2::Error raise 'アクセストークンの取得に失敗しました。次の原因が考えられます。原因: 不明なクライアント、クライアント認証が含まれていない、認証コードが不正、認証コードが無効、リダイレクトURLが不正、別のクライアントに適用されている。' end end |
#refresh_token(access_token, refresh_token, expires_at) ⇒ Hash
リフレッシュトークンからアクセストークンを再取得
66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
# File 'lib/freee/token/client.rb', line 66 def refresh_token(access_token, refresh_token, expires_at) raise 'アクセストークンが存在しません' if access_token.empty? raise 'アクセストークンの有効期限が指定されていません' if expires_at.nil? raise 'リフレッシュトークンが存在しません' if refresh_token.empty? params = { refresh_token: refresh_token, expires_at: expires_at } @access_token = OAuth2::AccessToken.new(@client, access_token, params) begin @access_token.refresh! if @access_token.expired? rescue OAuth2::Error raise 'アクセストークンの取得に失敗しました。次の原因が考えられます。原因: 不明なクライアント、アクセストークンが不正、リフレッシュトークンが不正、有効期限が不正。' end end |