用于获取访问令牌的Box api调用在node.js中失败

时间:2014-07-07 15:43:42

标签: node.js api box

我在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);
        }
    } );
}
}}}

如果有人能够弄清楚我的代码中有什么不对,那会很有帮助。

提前致谢。

1 个答案:

答案 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"