google-apps-script - 获取租户列表时 Xero API 错误 [TokenInvalidAudience]
问题描述
我最近开始使用谷歌应用程序脚本(类似javascript)研究Xero API。
从https://developer.xero.com/documentation/oauth2/auth-flow中提到的 ouath2 流程,我已经能够通过身份验证机制获取访问令牌以及刷新访问令牌。
至于API的进一步使用,需要获取tenant-id。现在,当我尝试通过端点获取数据时: https ://api.xero.com/connections
它返回带有以下详细信息的错误代码 401:
{"Type":null,"Title":"Unauthorized","Status":401,"Detail":"TokenInvalidAudience: 6CBC9B1478974A5CBF7229AB1D32....","Instance":"a2e2c373-0c73-4ecb-85cf-1b21f828. ..","扩展":{}}
谁能指导一下可能是什么问题?以及如何解决?
谢谢。
为了便于参考,我使用以下代码:
function myFunction()
{
var url = "https://api.xero.com/connections";
var accToken = fetchKey(ACCESS_TOKEN_KEY);
var hdr = {
"Authorization" : "Bearer " + accToken
};
var params = {
headers : hdr,
method : "get",
muteHttpExceptions : true
};
var resp = UrlFetchApp.fetch(url, params);
return resp.getContentText();
}
解决方案
在配置另一个应用程序并从头开始重新启动后,我认为 {id_token} 与访问令牌相同,但它不同,但我最初在长令牌序列中错过了它,这似乎是我自己的错误。
感谢您的时间!
推荐阅读
- reactjs - 具有电子邮件功能的待办事项列表
- reactjs - 如何在 React 中使用 React Router 检测路由变化?
- bison - 在 Bison 中解析函数调用(例如 `exp '('exp ')'`):导致移位/减少错误(优先级问题)
- python - 在 Digitalocean 中标记快照
- android - Dagger2 插入图
- jenkins-pipeline - 如何在多个分支中保持多个 Jenkins 管道文件 (Jenkinsfile) 一致?
- c# - 如何将数据从文本框保存到 UWP 中的数据网格
- batch-file - 是否可以在 cmd 中使用操纵杆/游戏控制器输入?
- git - 如何修复 GitHub 中的“Fetch to Code Inspector failed”?
- r - 运行一个函数 x 次,然后在再次运行之前休眠一段时间