class Freee::Api::Token
Constants
Attributes
client[R]
oauth-xx client(read only)
Public Class Methods
new(app_id, secret)
click to toggle source
A new instance of OAuth2 Client. @param app_id [String] Application ID @param secret [String] Secret
# File lib/freee/token/client.rb, line 21 def initialize(app_id, secret) options = { 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, options) end
Public Instance Methods
get_access_token(code, redirect_uri)
click to toggle source
アクセストークン関係のパラメータを取得 @param code [String] Authentication Code @param redirect_uri [String] redirect_url for Access Token
@return [Hash] アクセストークン
# 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)
click to toggle source
リフレッシュトークンからアクセストークンを再取得 @param access_token [String] Access Token
@param refresh_token
[String] Refresh Token
@param expires_at [Integer] アクセストークンの有効期限(UNIX TIME) @return [Hash] アクセストークン
# 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