javascript - 收到 403 错误(Fullcontact Api 密钥包含非十六进制字符)
问题描述
- 嗨,我正在尝试更新 fullContact apiKey
- 我的新密钥是这种格式->
Wa**IuyqQZd****YhUiko**Asdc**POU
- 我的旧密钥是这种格式->
aq******982ad**s
- 我从 Node Js 调用 fullContact APi
阿贾克斯调用:
var url = 'https://api.fullcontact.com/v2/person.json';
var data ={email:'abc@gmail.com',apiKey:'Wa**IuyqQZd****YhUiko**Asdc**POU'};
request({
method: 'GET',
url: url,
useQuerystring: true,
qs: data
},
function(error, response, body) {
//handling response here
if ((error || !response || response.statusCode > 400) && statusCode !== 404) {
console.log('Request to FullContact failed (status `' + statusCode + '`, time `' + time + '`):', data, error, body);
resolve(null);
return;
}
});
- 但是更新新密钥后出现错误
对 FullContact 的请求失败(状态
403
,时间1.467 sec
):{电子邮件:'abc@gmail.com',apiKey:'Wa##IuyqQZdyu##YhUiko##AsdcPOU'} null {“状态”:403,“消息”:“Api密钥包含非十六进制字符或无效" }
解决方案
更新
- 通过以下方式得到答案
request({
method: 'GET',
url: url,
useQuerystring: true,
headers: {
"Authorization": "Bearer "+data.apiKey
},
qs: data,
}
根据最近的文档,这需要在标题中传递 ("Authorization": "Bearer "+data.apiKey)。
推荐阅读
- c# - IEnumerable、Where 和 Object.ReferenceEquals 的问题
- spring-boot - 使用 spring.config.location 中的 @RefreshScope 重新加载 application.properties
- tensorflow - keras load_model 在谷歌 colab 中不起作用
- javascript - sequelize 中的引用字段是什么?
- javascript - Vue-router 推送未定义
- node.js - 在 discord.js 中删除超过 99 条消息
- json - 在 OutbreakLocation 上运行 evalMetrics API 时出错
- bootstrap-4 - 编辑 Bootstrap 4.3.1 CSS,没有任何变化
- javascript - 如何使用多个字符串来匹配javascript中的字符串前缀?
- php - 使用 PHP 将整数插入 MySQL 数据库时遇到问题