You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用API获取Xero Access Token遇错及解决过程

Xero OAuth2 获取Access Token 问题排查与解决

问题背景

我创建了未通过手机认证应用验证的账户,因为这样无法实现自动化操作。完成授权流程步骤1后,从回调URL中解析得到code和state:

state=123456
code=vcciFJW_bFTjodGQnNUk7BIr-EoSBQSktn-cNUGdDjY

第一次请求及错误

使用RestAssured调用POST https://identity.xero.com/connect/token接口获取Access Token,请求详情:

Request method: POST
Request URI:    https://identity.xero.com/connect/token
Proxy:          <none>
Request params: <none>
Query params:   <none>
Form params:    <none>
Path params:    <none>
Headers:        Authorization=Basic <此处为生成的base64编码数据>
                Accept=*/*
                Content-Type=application/x-www-form-urlencoded; charset=ISO-8859-1
Cookies:        <none>
Multiparts:     <none>
Body:
{
  "grant_type" : "authorization_code",
  "redirect_uri" : "https://developer.xero.com/",
  "code" : "vcciFJW_bFTjodGQnNUk7BIr-EoSBQSktn-cNUGdDjY"
}

返回结果:

400
{"error":"unsupported_grant_type"}

调整请求后仍报错

针对请求格式调整后,请求详情如下:

Request method: POST
Request URI:    https://identity.xero.com/connect/token
Proxy:          <none>
Request params: <none>
Query params:   <none>
Form params:    grant_type=authorization_code
                code=3_Lli3YQYPyFlf_RoZJGRVE5iPGCeo-H9ta9htdr8ec
                redirect_uri=https://developer.xero.com/
Path params:    <none>
Headers:        Authorization=Basic <base64编码字符串>
                Accept=*/*
                Content-Type=application/x-www-form-urlencoded; charset=ISO-8859-1
Cookies:        <none>
Multiparts:     <none>
Body:           <none>

返回结果:

400
{"error":"unauthorized_client"}

问题解决

最终定位原因:登录授权时使用的redirect_uri末尾无斜杠,而调用token接口时使用的redirect_uri末尾带斜杠。根据Xero故障排查说明,两个URL必须完全一致,修正后问题解决。

内容的提问来源于stack exchange,提问作者alek88

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 16:55:11