Community

コミュニティをご利用の際は 【ガイドライン】を確認・同意いただいた上でご利用ください。

  • 投稿

    アバターs-develop

    人事労務APIでの値の取得について

    Rails + OAuth2を使用した人事労務APIとの連携をしたいのですが、

    アクセストークンは取得してリフレッシュトークンと一緒にDBに登録している
    人事労務APIにてまずはログインユーザを取得したい(/api/v1/users/me)

    options = {
      site: 'https://api.freee.co.jp/hr',
      authorize_url: '/oauth/authorize',
      token_url: '/oauth/token'
    }

    oauth_initialize = OAuth2::Client.new(ENV['FREEE_CLIENT_ID'], ENV['FREEE_SECRET_KEY'], options) do |conn|
      conn.request :url_encoded
      conn.request :json
      conn.response :json, content_type: /\bjson$/
      conn.adapter Faraday.default_adapter
    end

    freee_uid = current_company.freee_cooperation.uid # freee上のcurrent_companyのid

    # current_company.freee_cooperation.access_tokenはアクセストークンのことです
    client = OAuth2::AccessToken.new(oauth_initialize, current_company.freee_cooperation.access_token)

    @freee_current_user = client.get("/api/v1/users/me").response.env[:body]

    上記の上でアクセス(‘client.get(“/api/v1/users/me”).response.env[:body]’)しようとすると、

    「登録済みのメールアドレス、パスワードを入力してfreeeにログインください。Googleアカウント・facebookアカウントでのログインにも対応。 アカウントをお持ちでない方は、無料でアカウント作成が行えます。」

    との表示がされてしまいます。

    ‘/api/1/users/me’と’v’を外した状態


    client.get("/api/1/users/me").response.env[:body]

    だと、正常にjsonで値が返ってきます。
    ただ’v’を外した状態で従業員一覧を取得しようとすると

     


    client.get('/api/1/employees').response.env[:body]

    同じく

    「登録済みのメールアドレス、パスワードを入力してfreeeにログインください。Googleアカウント・facebookアカウントでのログインにも対応。 アカウントをお持ちでない方は、無料でアカウント作成が行えます。」

    との表示がされてしまいます。

    ‘v1’でアクセスした状態でも期待するjsonの値が返ってきて欲しいです。よろしくお願いします。

    回答

    アバターs-develop

    すいません、自己解決しました。パスだけでなくURL全体が必要でした。

    “client.get(‘https://api.freee.co.jp/hr/api/1/users/me’)”