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

调用Zendesk API传入正确Token仍报invalid_token错误如何解决

问题根因

这个invalid_token报错和你代码里的Bearer拼接逻辑没有关系,核心是你混淆了Zendesk两条完全独立的API体系:你参考的文档属于**Zendesk Sell(原Sales CRM/Base CRM)**的v3接口,和常用的Zendesk Support工单系统API不共享域名、不共享鉴权凭证,你踩了三个明确的坑:

  • 域名配置错误:Zendesk Sell的API专属域名是https://api.getbase.com,你写的https://mydomain.zendesk.com是Zendesk Support的接口域名,请求打到Support的鉴权服务上,自然识别不了对应凭证,反过来传Support的凭证调用Sell接口也会报无效。
  • 凭证类型不匹配:接口要求的Bearer $TOKEN是Sell体系下的OAuth访问令牌/个人访问令牌(PAT),不是Zendesk Support后台生成的全局API Token,后者仅能用于Support的v2接口,完全不兼容Sell接口。
  • 路径冗余:Sell的v3接口不需要在路径末尾加.json后缀,多余后缀可能触发路由层的异常鉴权校验。
修复方案

按以下步骤调整即可:

  1. 替换请求地址:将域名改为Sell官方API域名,去掉路径末尾的.json,正确接口地址为https://api.getbase.com/v3/deals/custom_fields
  2. 准备合法凭证:登录你的Zendesk Sell账号,进入「设置 > OAuth > 个人访问令牌」页面,生成拥有Deals读权限的个人访问令牌,这个值才是Authorization头里需要传的token。
  3. 简化请求逻辑:GET请求不需要传空payload,多余的Content-Type头也可以移除,避免不必要的请求校验。

修复后的可运行代码:

import requests

# 替换为你自己在Sell后台生成的个人访问令牌
API_TOKEN = "替换为你的合法访问令牌"
url = "https://api.getbase.com/v3/deals/custom_fields"

headers = {
    "Accept": "application/json",
    "Authorization": f"Bearer {API_TOKEN}"
}

resp = requests.get(url, headers=headers)
print(resp.status_code)
print(resp.json())
额外排查点

如果调整后仍报错,优先检查:

  • 生成个人访问令牌时,是否勾选了Deals模块的读取权限
  • 令牌是否设置了过期时间,且当前已超出有效期
  • 不要把Zendesk Support的API Token、账号登录密码误当成Sell的访问令牌传入

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 12:36:20