2014-07-07 68 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" 
相關問題