Ошибка WhatsApp 10: разрешение не выдано или отозвано
Код ошибки 10 означает, что у токена приложения нет разрешения, которое нужно эндпоинту: его либо не выдавали, либо отозвали. Описание Meta: «Permission is either not granted or has been removed.» Meta также называет две причины, связанные с WhatsApp: номер вне списка разрешённых для Flows with Endpoint и несоответствие требованиям допуска к API.
Код Meta для «Permission is either not granted or has been removed.»
Название, которое руководство Graph API по обработке ошибок даёт коду 10.
Что нужно партнёрскому приложению для каждого разрешения, которое оно использует на аккаунтах клиентов.
Что означает код ошибки WhatsApp 10?
Это значит, что токен дошёл до Meta и был распознан, но разрешения, которое требует вызов, в нём нет.
В справочнике Cloud API для кода 10 указан текст details «Permission is either not granted or has been removed.» Руководство Graph API по обработке ошибок называет его API Permission Denied и советует обработать отсутствующее разрешение.
Слово «removed» важно. Разрешение могут выдать при настройке и забрать позже, например когда кто-то отзывает доступ приложения в Business Settings. Поэтому интеграция, которая работала месяцами, может начать возвращать 10 без каких-либо изменений в её собственном коде.
Какие ещё причины ошибки 10 называет Meta?
Две, и обе специфичны для WhatsApp. Их легко пропустить, потому что они вообще не про scopes.
Для WhatsApp Flows with Endpoint Meta советует убедиться, что номер телефона, с помощью которого задан публичный ключ бизнеса, входит в список разрешённых. Номер вне списка вызывает эту ошибку, даже если у токена есть все разрешения.
Также Meta сообщает: аккаунт, который не отвечает требованиям допуска к API, вызов которого он делает, получает этот код. В таком случае замена токена не поможет, потому что преградой служит допуск аккаунта, а не учётные данные.
Как исправить ошибку 10?
Начните с Access Token Debugger: Meta называет его первой проверкой.
Если в списке scopes нет разрешения, которое нужно эндпоинту, попросите бизнес выдать его снова. Для партнёрского приложения это также значит подтвердить Advanced access для этого разрешения, так как руководство Meta по разрешениям требует его для аккаунтов клиентов.
Если scopes выглядят полными, переходите к двум причинам, связанным с WhatsApp. При вызове Flows проверьте список разрешённых для номера, который задал публичный ключ. В остальных случаях прочитайте требования допуска к API, который вы вызываете, и убедитесь, что аккаунт им соответствует, прежде чем менять какие-либо учётные данные.
Распространённые ошибки
- Считать, что интеграцию сломал деплой. Разрешение, отозванное в Business Settings, даёт эту ошибку без единого изменения в коде.
- Пересоздавать токен, когда причина в допуске. Учётные данные не сделают неподходящий аккаунт подходящим.
- Игнорировать список разрешённых для Flows. В Flows with Endpoint номер вне списка возвращает 10 даже при полном наборе scopes.
EasyCoexistence продолжает следить за каждым подключённым номером после подключения, поэтому соединение, потерявшее доступ, видно в панели управления, а не проявляется сначала как неудачные отправки.
Часто задаваемые вопросы
Совпадают ли ошибки 10 и 131005?
У них одинаковое описание в справочнике Meta. Код 10 относится к Graph API, а 131005 входит в диапазон WhatsApp. Проверяются они одинаково.
Может ли ошибка 10 появиться на номере, который вчера работал?
Да. Описание Meta включает отозванные разрешения, поэтому ранее выданный доступ можно забрать позже.
Значит ли ошибка 10, что токен истёк?
Нет. Истёкшему токену соответствует код 190 или 0. Код 10 означает, что токен действителен, но в нём нет разрешения.
Как посмотреть, какие разрешения выданы?
Вызовите debug_token или откройте Access Token Debugger. Свойство scopes перечисляет все разрешения токена.
Читайте дальше
Готовы начать?
Настройте WhatsApp Coexistence за несколько минут, а не месяцев. Приложение продолжит работать на телефоне.
Начать бесплатный пробный периодПроверено по состоянию на