我在node.js中编写了一个程序来获取访问令牌来调用盒子apis,不幸的是我收到了一个错误" invalid_client"这是客户ID或秘密错误"根据文件。我很确定客户端ID和密码都是正确的,因为它在从UI进行ajax调用时对我来说很好。
以下是我正在使用的代码
{{{
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 :(得分:1)
看起来您输入了错误的网址:任何API调用AFAIK都没有www.box.com/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用户登录Box,然后通过Box回复...
第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"