Разработка мобильного чат-бота для WhatsApp

TRUETECH занимается разработкой, поддержкой и обслуживанием мобильных приложений iOS, Android, PWA. Имеем большой опыт и экспертизу для публикации мобильных приложений в популярные маркеты Google Play, App Store, Amazon, AppGallery и другие.
Разработка и поддержка любых видов мобильных приложений:
Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

Это лишь некоторые из типы мобильных приложений, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента.

Предлагаемые услуги
Показано 1 из 1 услугВсе 1735 услуг
Разработка мобильного чат-бота для WhatsApp
Средняя
от 4 часов до 2 рабочих дней
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    756
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    624
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1054
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    947
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    862
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    445

Разработка мобильного чат-бота для WhatsApp

WhatsApp Business API — единственный официальный способ автоматизировать WhatsApp. Неофициальные библиотеки (whatsapp-web.js и подобные) нарушают ToS и приводят к бану номера. Официальный путь: регистрация в Meta Business Suite, получение доступа к Cloud API или On-Premises API, верификация номера телефона.

Два варианта WhatsApp Business API

Cloud API (Meta-hosted) — инфраструктура Meta, не нужно разворачивать свой сервер. Лимит: 1000 бесплатных бизнес-инициированных разговоров в месяц. Подходит для большинства.

On-Premises API — сервер на вашей инфраструктуре. Дороже в обслуживании, зато данные не покидают ваш контур — критично для здравоохранения и финансов в РФ.

Для обоих вариантов — регистрация через Meta for Developers, создание WhatsApp Business App, верификация бизнес-аккаунта.

Webhooks и обработка сообщений

Cloud API отправляет обновления на ваш HTTPS-эндпоинт:

from fastapi import FastAPI, Request
import httpx

app = FastAPI()
VERIFY_TOKEN = "your_verify_token"
WHATSAPP_TOKEN = "your_permanent_token"
PHONE_NUMBER_ID = "your_phone_number_id"

@app.get("/webhook")
async def verify_webhook(hub_mode: str, hub_challenge: str, hub_verify_token: str):
    if hub_verify_token == VERIFY_TOKEN:
        return int(hub_challenge)
    return {"error": "Invalid verify token"}, 403

@app.post("/webhook")
async def receive_message(request: Request):
    body = await request.json()
    for entry in body.get("entry", []):
        for change in entry.get("changes", []):
            value = change.get("value", {})
            for message in value.get("messages", []):
                await handle_message(message, value.get("contacts", [{}])[0])
    return {"status": "ok"}

Первый POST на /webhook при настройке — это верификация: Telegram GET-запрос с hub.challenge, который нужно вернуть verbatim. Без этого Meta не активирует webhook.

Типы сообщений и шаблоны

WhatsApp различает два типа разговоров:

  • Пользователь-инициированный — пользователь написал первым, бот может отвечать любым текстом 24 часа
  • Бизнес-инициированный — бот пишет первым, только через одобренные шаблоны

Шаблон (message_template) нужно создать и получить одобрение от Meta (обычно 1–2 дня). Шаблон с переменными:

{
  "messaging_product": "whatsapp",
  "to": "79001234567",
  "type": "template",
  "template": {
    "name": "order_confirmation",
    "language": { "code": "ru" },
    "components": [
      {
        "type": "body",
        "parameters": [
          { "type": "text", "text": "Иван" },
          { "type": "text", "text": "ORD-12345" }
        ]
      }
    ]
  }
}

Интерактивные сообщения (кнопки, списки) доступны в рамках 24-часового окна и не требуют шаблонов:

{
  "type": "interactive",
  "interactive": {
    "type": "button",
    "body": { "text": "Выберите действие" },
    "action": {
      "buttons": [
        { "type": "reply", "reply": { "id": "confirm", "title": "Подтвердить" } },
        { "type": "reply", "reply": { "id": "cancel", "title": "Отменить" } }
      ]
    }
  }
}

Медиа: изображения, документы, аудио

WhatsApp поддерживает отправку и приём изображений, документов, аудио, видео. Для входящих медиа — скачиваем по media_id:

async def download_media(media_id: str) -> bytes:
    # Шаг 1: получить URL
    async with httpx.AsyncClient() as client:
        r = await client.get(
            f"https://graph.facebook.com/v18.0/{media_id}",
            headers={"Authorization": f"Bearer {WHATSAPP_TOKEN}"}
        )
        media_url = r.json()["url"]

        # Шаг 2: скачать файл
        r2 = await client.get(media_url, headers={"Authorization": f"Bearer {WHATSAPP_TOKEN}"})
        return r2.content

Срок жизни медиа-ссылки — 5 минут после первого запроса. Скачивайте и кешируйте сразу.

Ограничения и особенности платформы

Нет возможности редактировать отправленное сообщение (в отличие от Telegram). Нельзя получить список контактов пользователя. Один номер телефона = один WABA (WhatsApp Business Account). Статусы доставки (sent, delivered, read) приходят через те же webhooks.

Rate limits: 80 сообщений в секунду на номер по умолчанию. При массовой рассылке через шаблоны — нужно постепенно увеличивать объём (warm-up).

Процесс работы

Регистрация Meta Business App и верификация бизнес-аккаунта. Настройка WABA и номера телефона. Разработка webhook-сервера. Создание и подача шаблонов на одобрение. Реализация диалоговых сценариев. Интеграция с CRM или внутренними системами. Тестирование через официальный тестовый номер Meta.

Ориентиры по срокам

Базовый бот с шаблонами и обработкой входящих сообщений — 2–3 недели. Полноценный conversational-бот с интеграцией CRM, медиа и мультиязычностью — 5–10 недель.