Skip to content
Эта страница создана и переведена с помощью ИИ. Если вы заметили неточности, помогите нам улучшить её. Редактировать на GitHub

WhatsApp Web

Подключение PRX к WhatsApp с использованием нативного Rust Web-клиента (wa-rs) со сквозным шифрованием, привязкой через QR-код или код пары и полной поддержкой медиа.

Предварительные требования

  • Аккаунт WhatsApp с активным номером телефона
  • PRX, собранный с флагом функции whatsapp-web
  • Аккаунт Meta Business API не требуется

Быстрая настройка

1. Включение флага функции

Соберите PRX с поддержкой WhatsApp Web:

bash
cargo build --release --features whatsapp-web

2. Конфигурация

toml
[channels_config.whatsapp]
session_path = "~/.config/openprx/whatsapp-session.db"
allowed_numbers = ["+1234567890", "*"]

Для привязки через код пары (вместо QR-кода):

toml
[channels_config.whatsapp]
session_path = "~/.config/openprx/whatsapp-session.db"
pair_phone = "15551234567"
allowed_numbers = ["*"]

3. Привязка аккаунта

Запустите PRX. При первом запуске будет отображён:

  • QR-код в терминале для сканирования мобильным приложением WhatsApp, или
  • Код пары, если задан pair_phone (введите код в WhatsApp > Привязанные устройства)

4. Проверка

bash
prx channel doctor whatsapp

Справочник конфигурации

ПолеТипПо умолчаниюОписание
session_pathStringобязательныйПуть к SQLite-базе данных сессии. Наличие этого поля выбирает режим Web
pair_phoneStringnullНомер телефона для привязки через код пары (формат: код страны + номер, например, "15551234567"). Если не задан, используется привязка через QR-код
pair_codeStringnullПользовательский код пары для привязки. Оставьте пустым, чтобы WhatsApp сгенерировал его автоматически
allowed_numbers[String][]Разрешённые номера телефонов в формате E.164 (например, "+1234567890"). "*" = разрешить всем

Возможности

  • Meta Business API не требуется — прямое подключение в качестве привязанного устройства через протокол WhatsApp Web
  • Сквозное шифрование — сообщения шифруются через Signal Protocol, как и в официальных клиентах WhatsApp
  • Привязка через QR-код и код пары — два способа привязки аккаунта WhatsApp
  • Постоянные сессии — состояние сессии хранится в локальной SQLite-базе данных и сохраняется между перезапусками
  • Группы и ЛС — поддержка личных чатов и групповых разговоров
  • Медиасообщения — обработка изображений, документов и других типов медиа
  • Поддержка голосовых сообщений — транскрипция входящих голосовых сообщений (при настроенном STT) и опциональный ответ голосовыми сообщениями (при настроенном TTS)
  • Присутствие и реакции — поддержка индикаторов набора текста и реакций на сообщения

Ограничения

  • Требуется флаг функции whatsapp-web при компиляции
  • Поддерживается только одна сессия привязанного устройства на номер телефона (ограничение WhatsApp)
  • Сессия может истечь при длительном неиспользовании; потребуется повторная привязка
  • Только macOS, Linux и Windows WSL2 (как и сам PRX)
  • WhatsApp может периодически требовать повторной аутентификации

Устранение неполадок

QR-код не появляется

  • Убедитесь, что session_path задан и директория доступна для записи
  • Проверьте, что PRX собран с --features whatsapp-web
  • Удалите базу данных сессии и перезапустите для принудительной новой привязки

Сессия истекла или отключилась

  • Удалите базу данных сессии по настроенному пути session_path
  • Перезапустите PRX для запуска нового процесса привязки через QR-код или код пары

Голосовые сообщения не транскрибируются

  • Настройте секцию [transcription] в конфигурации PRX для включения STT
  • Поддерживаемые STT-бэкенды: OpenAI Whisper, Deepgram, AssemblyAI, Google STT

Режим Cloud API

Если у вас есть аккаунт Meta Business и вы предпочитаете обмен сообщениями через вебхуки, см. WhatsApp (Cloud API).

Released under the Apache-2.0 License.