使用box api访问令牌请求

时间:2014-11-22 11:06:46

标签: ruby-on-rails box-api rest-client

我在使用box api和其他客户端gem发送访问令牌请求时遇到问题:

请求

access_token_params = {
      grant_type: 'authorization_code',
      code: params[:code],
      client_id: box_params[:client_id],
      client_secret: box_params[:client_secret]
    }

    RestClient.post('https://app.box.com/api/oauth2/token', params: access_token_params){ |response, request, result, &block|
      check_request_success(response, "send_access_token")
    }

使用:

def box_params
    {
      client_id: "my_id",
      client_secret: "my_secret"
    }
  end

错误:

{"error":"invalid_request","error_description":"Invalid grant_type parameter or parameter missing"}

1 个答案:

答案 0 :(得分:0)

第一

您的RestClient.post()功能不正确。因为它是post你不应该有params:哈希,而是有效负载本身。这是因为帖子请求在URL中没有参数,而是在请求正文中的有效负载中。

第二

The Box API Docs& Oauth Tutorial page引用了两个端点。 API文档上请求的正确端点:https://api.box.com/oauth2/token

试试这个:

  RestClient.post('https://api.box.com/oauth2/token', access_token_params ){ |response, request, result, &block|

            check_request_success(response, "send_access_token")   
    }