Xero API 403-身份验证失败错误

时间:2020-05-21 14:32:46

标签: node.js xero-api

我正在将Xero Api与Node.js和xero-node库一起使用。

我已经完成了oAuth流程并将令牌保存到数据库中。我现在遇到的问题是,尝试从Xero获取任何联系人,客户或用户信息时,不断收到403禁止错误。示例代码如下

我可以让租户没有问题,但是其他任何方法都行不通。我检查了范围,以确保在设置客户端时它们是正确的。

var getStuff = async(tokenSet) => {
  await xero.setTokenSet(tokenSet);
  const tenants = await xero.updateTenants();

  const xeroTenantId = tenants[0].id  // {String} Xero identifier for Tenant
  const ifModifiedSince = new Date("2020-02-06T12:17:43.202-08:00");
  const where =  'IsSubscriber==true';  // {String} Filter by an any element
  const order =  'LastName ASC';  // {String} Order by an any element

  console.log(tenants);
  try {
    const response  = await xero.accountingApi.getUsers(xeroTenantId, ifModifiedSince, where, order);
    console.log(response.body || response.response.statusCode)

  }
  catch (err) {

   /// console.log(err);

    console.log(`There was an ERROR! \n Status Code: ${err.response.statusCode}.`);
    console.log(`ERROR: \n ${JSON.stringify(err.response.body, null, 2)}`);

  }

}

1 个答案:

答案 0 :(得分:1)

哪些范围已添加到您要通过的访问令牌中?您可以在这里https://jwt.io/

解码令牌

也-您需要将“ tenant.tenantId”传递给该函数。我相信tenant.id实际上与从/ connections端点返回的连接ID有关。

我的直觉是这个问题。也想知道它是如何工作的,因为updateTenants()最后应该有空函数调用。对你有用吗?