2014-07-07 37 views
0

我在node.js中编写了一个程序来获取访问令牌来调用框apis,不幸的是我收到一个错误“invalid_client”,它是“客户端ID或秘密是错误的“按照文件。我很确定客户端ID和密码都是正确的,因为它在从UI执行ajax调用时工作正常。Box api调用获取访问令牌在node.js中失败

下面是一段代码,我使用

{{{ 
if(queryData && queryData.code) { 
    var code = queryData.code; 
    var data = { 
     "grant_type" : 'authorization_code', 
     "client_id" : 'alpha-numeric-id', 
     "client_secret" : 'alpha-numeric-secret', 
     "code": 'actual-code-given-in-redirect-uri' 
    }; 

    var options = { 
     'url': 'https://www.box.com/api/oauth2/token', 
     'proxy': 'http://corporate-proxy-url:port', 
     'headers': { 
      'accept': 'application/json', 
      'accept-language': 'en' 
     }, 
     'json': data, 
     'timeout': 5000 
    };  

    request.post(options, function (err, response, body) { 
     if (err) { 
      console.log("====error===="); 
     } else { 
      console.log("====success====="); 
      console.log(response.statusCode); 
      console.log(body); 
     } 
    }); 
} 
}}} 

这将是有益的,如果有人可以什么是错在我的代码搞清楚。

在此先感谢。

+0

我怀疑这些值是正确的,但请求的格式不正确。 – AlexMA

+0

对不起,如果我错了,是不是访问令牌的URL是“https://app.box.com/api/oauth2/token”。另外,您的公司代理不需要用户名和密码?如果你已经考虑过了,那就忽略这一点。 – Savaratkar

回答

1

你好像击中了错误的URL:没有www.box.com/api任何API调用,据我所知

根据该文件,它的app.box.com/api/oauth2/authorize?为您的第一个OAuth2调用做授权和api.box.com/oauth2/token为令牌调用以及所有后续API调用。 api.box.com/2.0/

所以第1步:授权:

GET https://app.box.com/api/oauth2/authorize?response_type=code&client_id=MY_CLIENT_ID&state=security_token%3DKnhMJatFipTAnM0nHlZA 

步骤1.5用户登录框,你会得到回叫的盒子......

第2步:您的令牌

curl https://app.box.com/api/oauth2/token \ 
-d 'grant_type=authorization_code&code={your_code}&client_id={your_client_id}&client_secret={your_client_secret}' \ 
-X POST 

第3步:调用的API:

curl https://api.box.com/2.0/folders/FOLDER_ID/items?limit=2&offset=0 \ 
-H "Authorization: Bearer ACCESS_TOKEN" 
相关问题