WhatsApp

Ограничения

Лимиты запросов WhatsApp, защита отправки и паузы перед автоматизацией задач.

Используйте эту страницу, когда команда ожидает, останавливается из-за ошибки ограничения скорости или получает отказ, поскольку аккаунт удерживается другой командой wa. В нем объясняется, как быстро wa общается с WhatsApp, почему он иногда ждет и что делать, когда он останавливается. К концу вы узнаете, какие ожидания являются нормальными, как изменить темп и когда попробовать еще раз.

Слова, которые используются на этой странице:

  • Скорость: сколько запросов профиль может отправлять в WhatsApp в минуту. wa соблюдает этот предел для каждого профиля.
  • Лимит отправки: сколько сообщений профиль может отправить в час.
  • Одно подключение устройства: WhatsApp допускает одно подключение для каждого связанного устройства; wa позволяет удерживать его по одной команде за раз.

WhatsApp блокирует аккаунты, которые массово отправляют сообщения или пишут незнакомцам. Эти ограничения предназначены для того, чтобы сценарий или агент были подальше от этого.

Одно соединение на устройство

Одновременно к профилю может подключаться только одна команда wa. serve, watch, сервер MCP, пока он удерживает соединение, и каждая однократная запись сначала блокирует устройство. Другая команда для того же профиля сразу отклоняется, и в ошибке указывается имя держателя:

this WhatsApp login is in use by serve (pid 4242)

Это не ожидание: wa не ставит вторую команду в очередь. Остановите держатель или дождитесь его завершения и повторите команду. serve является исключением: во время его работы отправка, редактирование или реакция на один и тот же профиль выполняются внутри serve, при его подключении, и не отклоняются. В Windows такая команда отклоняется. Команды чтения используют локальное хранилище и не подключаются, поэтому работают одновременно (одно соединение на устройство).

Темп

Каждый запрос wa к профилю — из команды wa personal mcp или wa personal serve — получает место в общей очереди запросов этого профиля. Состояние очереди сохраняется в папке данных, поэтому два терминала выстраиваются в линию друг за другом, а не каждый движется на полной скорости. Разные профили имеют свой темп.

Команда, которой приходится ждать своей очереди более 5 секунд, сообщает об этом в stderr. Если ждать очереди дольше 5 минут, команда сразу отклоняется с кодом выхода 8 (rate_limited).

Измените темп в файле конфигурации или для одной оболочки с помощью переменной среды:

{ "defaults": { "requests_per_minute": 30 } }
WA_REQUESTS_PER_MINUTE=30 wa personal messages send 100000000000001@lid "on my way"

0 отключает ограничение частоты. Делайте это только для профиля, который вы можете себе позволить ограничить.

Изменения

  • 30 отправок в час для каждого профиля по умолчанию (sends_per_hour), учитываются по всем процессам. Еще одному отказано с кодом выхода 8; wa personal sends list показывает, что было отправлено.
  • Список получателей, если он включен, отказывает в отправке в любой другой чат с кодом выхода 7 (permissions).
  • Заблокированный или ограниченный аккаунт блокирует каждое изменение с кодом выхода 5, а также реакции и уведомления о прочтении: до тех пор, пока бан не закончится, когда WhatsApp скажет, когда (ошибка указывает время), в противном случае, пока он не будет снят, wa personal doctor --online подключение повторно или с помощью wa personal flood clear; увидеть телефон. Чтение из локального хранилища по-прежнему работает.
  • Когда WhatsApp просит замедлить работу аккаунта, каждая запись удерживается в течение 15 минут (код выхода 8, затем 5, пока длится удержание). Чтение продолжается без отправки уведомлений о прочтении. wa personal flood clear снимает блокировку, как только вы понимаете, что все закончилось.
  • Опрос имеет от 2 до 12 ответов, каждый со своим текстом; это считается отправкой.
  • Закрепление сообщения считается отправкой: WhatsApp сообщает участникам чата о каждом из них. Открепление не засчитывается, но удержание тоже останавливает его.
  • Отправка, которая могла прийти или не прийти (код выхода 14), никогда не повторяется wa. Проверьте wa personal sends list и чат перед повторной отправкой (как wa ведет себя в скриптах).

Никакого массового чтения

WhatsApp не хранит историю на своих серверах, поэтому wa не имеет возможности загрузки истории. Телефон отправляет вашу недавнюю историю один раз, сразу после установления связи, и после этого serve продолжает получать сообщения (локальное хранилище). Каждая команда чтения и поиска отвечает в локальном хранилище и ничего не отправляет в WhatsApp. Более старые сообщения можно запрашивать на телефоне только по 50 за раз с интервалом не менее 2 секунд между запросами с помощью messages sync <chat> (how).