2017-04-07 12 views
0

APIから認証トークンを取得しようとしています。 要求はNodejsからの呼び出し

POST /oauth2/token HTTP/1.1 
Host: mysageone.ca.sageone.com 

client_id=4b64axxxxxxxxxx00710& 
client_secret=iNumzTxxxxxxxxxxhVHstrqWesH8tm9& 
code=12a0f9c12cxxxxxxxxxxxxxxx92a48cc1f237ead& 
grant_type=authorization_code& 
redirect_uri=https://myapp.com/auth/callback 

私の現在のコードは私のステータス400を与え続け、私は、ヘッダーを変更しようとしているが、それは動作しませんように見えることになっています。私も、必要なパラメータを?を使ってパスの一部にしようとしました。

const http = require('http'); 
    var options = { 
     hostname: 'app.sageone.com', 
     path: '/oauth2/token', 
     method: 'POST', 
     headers: { 
     "client_id":"xxxxx", 
     "client_secret":"xxxxx", 
     "code":"xxxxxx", 
     "grant_type":"authorization_code", 
     "redirect_uri":"https://some link" 
     } 
    }; 
    console.log('in users file point 2'); 
    var req1 = http.request(options, (res1) => { 
     console.log('statusCode:', res1.statusCode); 
     console.log('headers:', res1.headers); 
     console.log('message',res1.statusMessage); 
     res1.on('data', (d) => { 
     res.json(d); 
     }); 
    }); 

    req1.on('error', (e) => { 
     console.error('error starts here',e); 
    }); 
    req1.end(); 
}); 
+0

あなたの認証APIはおそらくhttps経由で呼び出すと思われますか?もしそうなら、あなたは '' https'(https://nodejs.org/api/https.html)パッケージを 'http'よりもむしろ必要とします。 – dan

答えて

0

Node.jsではなく、Sage Oneのapiを使用して問題が発生しているように見えます。これはあなたの問題を解決するかもしれないthe relevant documentationです。

GETPOSTではないので、URLにこれらのパラメータを送信する必要があります。ここでは、彼らが与える例のURLです:

https://www.sageone.com/oauth2/auth?response_type=code&client_id=4b64axxxxxxxxxx00710&redirect_uri=https://myapp.com/auth/callback &範囲= full_access私は前にセージの一つを使ったことがない

、それは他のOAuthのAPIとの私の経験にマッチします。

+0

私はすでに第1ステップを完了し、コードを持っています。私は、私が立ち往生しているドキュメントに記載されている認証トークンを取得しようとしていました。 – asis8888

関連する問題