首页 > 解决方案 > 获取租户列表时 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();
}

标签: google-apps-scripthttp-status-code-401xero-api

解决方案


在配置另一个应用程序并从头开始重新启动后,我认为 {id_token} 与访问令牌相同,但它不同,但我最初在长令牌序列中错过了它,这似乎是我自己的错误。

感谢您的时间!


推荐阅读