使用node-libcurl发出curl请求返回错误的身份验证错误响应



我正在尝试使用node-libcurl向检查器api发出POST请求。我需要创建并发送背景调查邀请给候选人,但我从他们的api得到一个Bad authentication error响应。任何帮助吗?

server.js

const data = {
'candidate_id': 'someid',
'package': 'driver_pro',
};
var checkr_sk =  'my_secret_key';
const Curl = require( 'node-libcurl' ).Curl;
curl = new Curl();
curl.setOpt(Curl.option.URL, `https://api.checkr.com/v1/invitations/${checkr_sk}`);
curl.setOpt('FOLLOWLOCATION', true);
curl.setOpt(Curl.option.POST, true);
curl.setOpt(Curl.option.HTTPHEADER, ['Content-Type: application/json']);
curl.setOpt(Curl.option.POSTFIELDS, JSON.stringify(data));
curl.on('end', function (statusCode, body, headers) {
var result = JSON.parse(body);
console.info(statusCode);
console.info(headers);
console.info(body);
console.info(this.getInfo(Curl.info.TOTAL_TIME));
this.close();
});
curl.on('error', function (err, curlErrorCode) {
console.error(err);
console.error(curlErrorCode);
this.close();
});
curl.perform();

我发现最好的curl请求方式是使用node-fetch库。首先使用npm安装node-fetch。这个旋度转换器是一个很好的资源。你可以在Github上找到它们的repo。

curl with node-fetch

const btoa = require('btoa');
const fetch = require('node-fetch');
const data = {
'candidate_id': 'someid',
'package': 'driver_pro',
};
var checkr_sk =  'my_secret_key';
fetch('https://api.checkr.com/v1/invitations', {
method: 'POST',
headers: {
'Authorization': 'Basic ' + btoa(checkr_sk+':'),
'Content-Type': 'application/json'
},
body: JSON.stringify(data)
}).then(function(response){ return response.json(); })
.then(function(data) {
const items = data;
console.log(items)
})

最新更新