Node.js 来自Nodejs的Post呼叫
我正在尝试从API获取身份验证令牌。 请求应该是这样的Node.js 来自Nodejs的Post呼叫,node.js,Node.js,我正在尝试从API获取身份验证令牌。 请求应该是这样的 POST /oauth2/token HTTP/1.1 Host: mysageone.ca.sageone.com client_id=4b64axxxxxxxxxx00710& client_secret=iNumzTxxxxxxxxxxhVHstrqWesH8tm9& code=12a0f9c12cxxxxxxxxxxxxxxx92a48cc1f237ead& grant_type=authorization
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();
});
在我看来,您的问题不在于Node.js,而在于您使用Sage One的api。这可能会解决你的问题 快速浏览一下,看起来您想要发送的是
GET
而不是POST
,您应该在URL中发送这些参数。以下是他们给出的URL示例:
&范围=完全访问
我以前从未使用过Sage One,但这与我使用其他OAuth API的经验相符。您的auth API可能需要您通过https调用?如果是这样,您需要的是软件包,而不是
http
软件包。我已经完成了第一步并获得了代码。我试图获取文档中提到的身份验证令牌,但我被卡住了。