You need to enable JavaScript to run this app. 如何解决Discord用户token客户端调用fetch_message报403 20002错误
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Discord用户token客户端调用fetch_message报403 20002错误

故障根因

你当前遇到的403拦截(错误码20002),是Discord服务端对接口访问身份做的硬性限制:fetch_message对应的服务端点,从网关层就做了身份校验,仅持有合法机器人token的请求可以正常访问,所有普通用户账号的令牌(哪怕通过bot=False模式接入客户端)都会被直接拦截,不存在配置层面的调整空间让用户身份通过这个校验。

可落地的解决路径
  • 不要尝试伪造请求头、修改discord.py源码绕开这个校验:这类绕过行为不仅容易触发平台风控导致用户账号被永久封禁,也完全无法从根本上通过网关层的身份识别逻辑。
  • 采用双客户端混合架构:保留你现有基于用户token运行的bot=False客户端逻辑,额外注册一个普通的Discord机器人实例,把所有“根据消息ID拉取对应消息”的操作全部交由这个机器人实例执行——机器人身份是被目标接口认可的,可直接正常调用fetch_message不存在权限问题。
  • 用本地缓存替代服务端接口调用:在你通过用户客户端正常接收频道消息的过程中,维护一个以消息ID为键、消息对象为值的本地映射缓存(可以存在内存字典、本地sqlite文件中),后续需要查询指定ID的消息时,直接从本地缓存读取即可,完全不需要调用受权限限制的服务端端点。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.28 08:54:08