API在此返回无法识别的Kid Null错误 注意

问题描述

这是我的cURL请求

curl https://geocode.search.hereapi.com/v1/geocode?q=5%20Rue%20Daunou%2C%2075000%20Paris%2C%20France -H "Authorization: Bearer XXXXXXXXXXXXXXXXXXXXXXXXXXX"

这是回应

{"error":"Unauthorized","error_description":"Token Validation Failure - unrecognized kid null"}

我不确定发生了什么。我尝试了其他访问密钥。我产生了新的。但是请继续得到相同的错误。

解决方法

“访问密钥ID”不是您需要在 Authorization 标头中发送的令牌,这就是为什么您收到 “令牌验证失败”

但是,“访问密钥ID”是您要生成OAuth令牌所需的凭据参数之一,另一个参数是“访问密钥秘密”。

如果您尚未保存访问密钥密钥,请转到HERE Account Project Management Space并确保下载凭据文件:

enter image description here enter image description here

在凭据文件中,请注意最后三行:

here.access.key.id = redacted
here.access.key.secret = redacted_redacted_redacted
here.token.endpoint.url = https://account.api.here.com/oauth2/token

然后,我们可以使用Postman生成OAuth令牌:

  • 打开邮递员并创建一个新请求。
  • 方法POST,网址:https://account.api.here.com/oauth2/token
  • 转到 Auth 标签,然后选择:
    • 类型:OAuth 1.0
    • 将身份验证数据添加到请求标头(可能是默认选择)
    • 签名方法:HMAC-SHA256
    • 消费者密钥:输入here.access.key.id
    • 消费者的秘密:放置here.access.key.secret
  • 转到 Body 标签,然后选择:
    • x-www-form-urlencoded
    • 键:grant_type,值:client_credentials
  • 发送请求。您应该会收到一个访问令牌。那应该可以满足您的卷曲请求。

“身份验证”标签

enter image description here

“身体”标签

enter image description here

注意

为记录起见,以下内容(不使用OAuth而是在REST部分下找到“ API密钥”)也可以使用:

curl https://geocode.search.hereapi.com/v1/geocode?apiKey=<REST-API-KEY>&q=5%20Rue%20Daunou%2C%2075000%20Paris%2C%20France

不过,Geocode API Reference并未记录 apiKey 身份验证,这与其他HERE API(例如Routing,除了偶尔对curl请求进行实验之外,我不推荐使用它。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...