WhatsApp 错误 200:未提供访问令牌
错误代码 200 表示请求到达 Meta 时没有携带访问令牌。Meta 的说明是“No access token was provided”,API 返回的消息为“Provide valid app ID”。它出现在某些 GET 端点上,例如 whatsapp_business_profile。200 至 299 的错误代码也涵盖未授予或已被移除的权限。
Meta 对“No access token was provided”使用的错误代码,返回的消息为“Provide valid app ID”。
Meta 为“未授予或已被移除的权限”列出的错误代码范围。
没有该权限时,对您的企业并不拥有的 WABA 调用 whatsapp_business_management,会返回 200。
在没有 whatsapp_business_management 权限的情况下注销号码,也会返回 200。
为什么错误 200 显示“Provide valid app ID”?
因为这是 API 返回的消息,而实际的问题是缺少令牌。
Meta 的错误参考文档说明,当请求未包含令牌时,错误代码 200 会出现在某些 GET 端点上,例如 whatsapp_business_profile,API 返回的消息为“Provide valid app ID”。同一份文档也指出,对于同样的遗漏,其他端点可能返回 190 或 104。
也就是说,措辞指向 app ID,而解决办法在令牌。请检查 Authorization 标头是否存在且拼写正确,并确认构建请求时,存放令牌的变量确实已被赋值。
错误 200 什么时候表示缺少权限?
当令牌存在,但应用缺少该调用所需的权限时。
Meta 将 200 至 299 的范围列为“Permission is either not granted or has been removed”,处理方法与错误代码 10 相同:在访问令牌调试工具中检查令牌。文档记录了两种具体情况。权限指南说明,应用在没有 Advanced access 的情况下,对其企业并不拥有的 WABA 使用 whatsapp_business_management,会收到错误 200。注册指南说明,在没有 whatsapp_business_management 的情况下注销号码,会返回错误 200。访问令牌指南还补充了第三种情况:System User 令牌所对应的用户无权访问被查询的资源时,请求会被以 200 拒绝。
请阅读消息文本来区分这些情况。缺少令牌时,消息为“Provide valid app ID”。
错误 200 与错误 190 有何不同?
错误 190 表示已发送令牌,但令牌已过期。错误 200 的第一种含义则是未发送令牌。
Meta 的参考文档直接说明了这一区别:200 的处理方法是确保请求包含有效的访问令牌,并称这种情况不同于 190,后者针对已过期或无效的令牌。
这会改变排查的方向。190 让您去查看令牌的有效期和续期。出现“Provide valid app ID”的 200 则让您去检查构建请求的代码,因为凭据根本没有离开您的系统。
常见错误
- 去排查 app ID 的问题。消息虽然写着 app ID,但 Meta 文档记载的原因是请求没有携带令牌。
- 在令牌从未发送的情况下去续期令牌。请求仍然遗漏新令牌,就会产生同样的错误。
- 把每个 200 都当作缺少令牌。在令牌存在时,200 至 299 的范围表示缺少权限。
EasyCoexistence 保管其接入的每个连接的凭据,并在控制台显示电话号码 ID 和连接状态,因此您可以用 Meta 实际签发的值来核对请求。
常见问题
错误 200 会出现在正常运行的号码上吗?
会。它描述的是请求,而不是号码。即使号码状态完全正常,仍然会拒绝没有携带令牌的调用。
为什么一个端点返回 200,另一个返回 190?
Meta 表示,对于缺少令牌的情况,某些 GET 端点返回 200,而其他端点可能返回 190 或 104。
注销号码需要特殊权限吗?
需要。Meta 的注册指南说明,在没有 whatsapp_business_management 的情况下注销号码,会返回错误 200。
错误 200 与错误 10 有关吗?
就权限这一含义而言,有关。两者的说明都是权限未被授予或已被移除。
继续阅读
准备开始了吗?
几分钟即可设置 WhatsApp Coexistence,而不是几个月。应用会继续在手机上运行。
开始免费试用验证时间