登录开始免费试用
Meta Tech Provider

WhatsApp 错误 10:权限未授予或已被移除

错误代码 10 表示应用的访问令牌缺少该端点所需的权限,原因可能是从未授予,也可能是已被移除。Meta 的描述为“Permission is either not granted or has been removed.”。Meta 还列出两个与 WhatsApp 相关的原因:Flows with Endpoint 中的号码未加入许可名单,以及未满足某个 API 的资格要求。

10

Meta 对“Permission is either not granted or has been removed.”所用的错误代码。

API Permission Denied

Graph API 错误处理指南为错误代码 10 给出的名称。

Advanced access

合作伙伴应用在客户账户上使用的每项权限所需满足的条件。

WhatsApp 错误代码 10 是什么意思?

它表示访问令牌已到达 Meta 并被识别,但该调用所需的权限不在令牌上。

Meta 的 Cloud API 参考为错误代码 10 给出的详情文本是“Permission is either not granted or has been removed.”。Graph API 错误处理指南称之为 API Permission Denied,并建议处理缺失的权限。

“已被移除”这一点很重要。权限可能在设置时授予,之后又被收回,例如有人在 Business Settings 中撤销了应用的访问权限。因此,一个运行了数月的集成,即使自身代码没有任何改动,也可能开始返回 10。

Meta 还列出了哪些导致错误 10 的原因?

有两个原因专属于 WhatsApp,而且都很容易被忽略,因为它们与权限范围完全无关。

对于带 Endpoint 的 WhatsApp Flows,Meta 要求确认用于设置商家公钥的号码已加入许可名单。即使令牌具备所有权限,不在许可名单内的号码也会产生该错误代码。

Meta 还指出,如果账户不满足所调用 API 的资格要求,也会收到该错误代码。这种情况下,更换令牌无济于事,因为卡住的是账户的资格,而不是凭据。

如何修复错误 10?

先使用访问令牌调试工具,这是 Meta 指明的第一项检查。

如果 scopes 列表缺少该端点所需的权限,请让商家重新授予。对于合作伙伴应用,还需要确认该权限已获得 Advanced access,因为 Meta 的权限指南要求客户账户必须具备此级别。

如果 scopes 看起来完整,再排查这两个 WhatsApp 相关原因。对于 Flows 调用,请检查设置公钥的号码是否在许可名单中。对于其他调用,请先阅读所调用 API 的资格要求,确认账户已满足,再考虑更改任何凭据。

常见错误

  • 误以为是某次部署导致集成出错。在 Business Settings 中移除权限,即使代码完全没有改动,也会产生该错误代码。
  • 在原因是资格问题时重建令牌。凭据无法让不符合资格的账户变得符合资格。
  • 忽视 Flows 的许可名单。在 Flows with Endpoint 中,不在名单内的号码即使权限齐全也会返回 10。
使用 EasyCoexistence 完成这些操作

EasyCoexistence 在完成接入后会持续监控每个已连接号码,因此失去访问权限的连接会显示在控制台上,而不是先以发送失败的形式暴露出来。

常见问题

错误 10 与错误 131005 是一回事吗?

两者在 Meta 参考文档中的描述相同。错误代码 10 是 Graph API 的代码,131005 属于 WhatsApp 的代码范围。两者的检查方法相同。

昨天还正常的号码,今天会出现错误 10 吗?

会。Meta 的描述包含已被移除的权限,因此先前授予的访问权限之后可能被收回。

错误 10 是否表示我的访问令牌已过期?

不是。令牌过期对应的是错误代码 190 或 0。错误代码 10 表示令牌有效,但缺少某项权限。

如何查看已授予了哪些权限?

调用 debug_token 或打开访问令牌调试工具。scopes 属性会列出令牌上的每一项权限。

继续阅读

准备开始了吗?

几分钟即可设置 WhatsApp Coexistence,而不是几个月。应用会继续在手机上运行。

开始免费试用

验证时间

WhatsApp 错误 10:权限未授予或已被移除