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

TRUETECH занимается разработкой, поддержкой и обслуживанием мобильных приложений iOS, Android, PWA. Имеем большой опыт и экспертизу для публикации мобильных приложений в популярные маркеты Google Play, App Store, Amazon, AppGallery и другие.

Разработка и поддержка любых видов мобильных приложений:

Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

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

Услуги, которые мы предлагаем
Показано 1 из 1Все 1735 услуг
Разработка мобильного чат-бота для Facebook Messenger
Простой
от 4 часов до 2 дней
Часто задаваемые вопросы

Наши компетенции:

Этапы разработки

Последние работы

  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    792
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    671
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1097
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    969
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    914
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    495

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

Facebook Messenger Platform — зрелый API с богатым набором UI-компонентов: Quick Replies, Generic Templates, Buttons, Webview. Бот регистрируется как Facebook App и привязывается к Facebook Page. Для российского рынка использование Meta-продуктов ограничено, но для международных проектов — полноценный канал.

Настройка: App, Page, Webhook

Messenger-бот требует:

  1. Facebook Developer App (developers.facebook.com)
  2. Facebook Page (бизнес-страница)
  3. HTTPS-webhook на вашем сервере
  4. Разрешения: pages_messaging, pages_read_engagement

Верификация webhook — GET-запрос с hub.verify_token и hub.challenge:

from fastapi import FastAPI, Request, Query

app = FastAPI()
VERIFY_TOKEN = "my_secret_verify_token"
PAGE_ACCESS_TOKEN = "EAAxxxxxxx"  # Из настроек Page в Developer Console

@app.get("/webhook")
async def verify(
    hub_mode: str = Query(alias="hub.mode"),
    hub_verify_token: str = Query(alias="hub.verify_token"),
    hub_challenge: str = Query(alias="hub.challenge")
):
    if hub_mode == "subscribe" and hub_verify_token == VERIFY_TOKEN:
        return int(hub_challenge)
    return 403

После верификации — подписка App на нужные поля через Graph API: messages, messaging_postbacks, messaging_optins.

Отправка сообщений: Send API

Все сообщения — POST на https://graph.facebook.com/v18.0/me/messages?access_token=PAGE_ACCESS_TOKEN:

import httpx

async def send_message(recipient_id: str, message: dict):
    async with httpx.AsyncClient() as client:
        await client.post(
            f"https://graph.facebook.com/v18.0/me/messages",
            params={"access_token": PAGE_ACCESS_TOKEN},
            json={"recipient": {"id": recipient_id}, "message": message}
        )

# Простой текст
await send_message(user_id, {"text": "Привет! Чем могу помочь?"})

# Quick Replies — одноразовые кнопки под сообщением
await send_message(user_id, {
    "text": "Выберите категорию:",
    "quick_replies": [
        {"content_type": "text", "title": "Доставка", "payload": "DELIVERY"},
        {"content_type": "text", "title": "Возврат", "payload": "RETURN"},
        {"content_type": "location"}  # Кнопка отправки геолокации
    ]
})

Quick Replies исчезают после нажатия — это намеренное поведение. Для постоянного меню — messenger_profile с Persistent Menu.

Generic Template: карточки с кнопками

Generic Template — горизонтальная карусель карточек. Максимум 10 карточек, в каждой: изображение, заголовок, подзаголовок, до 3 кнопок:

await send_message(user_id, {
    "attachment": {
        "type": "template",
        "payload": {
            "template_type": "generic",
            "elements": [
                {
                    "title": "iPhone 15 Pro",
                    "subtitle": "Titanium. So strong. So light.",
                    "image_url": "https://cdn.example.com/iphone15.jpg",
                    "buttons": [
                        {"type": "web_url", "url": "https://example.com/iphone15",
                         "title": "Подробнее"},
                        {"type": "postback", "title": "В корзину",
                         "payload": "ADD_TO_CART:iphone15"}
                    ]
                }
            ]
        }
    }
})

postback — кнопка без URL, генерирует событие messaging_postbacks на webhook с указанным payload. Используется для команд бота.

Sender Actions: typing indicator

typing_on и typing_off — индикатор печати. Показывайте его перед длинными ответами (запрос к БД, LLM):

async def send_with_typing(recipient_id: str, message: dict, delay: float = 1.0):
    await send_action(recipient_id, "typing_on")
    await asyncio.sleep(delay)  # Имитация «думает»
    await send_action(recipient_id, "typing_off")
    await send_message(recipient_id, message)

Без typing indicator ответ «появляется из ниоткуда» — особенно критично при задержке LLM.

Webview и Extensions

Messenger Extensions позволяет открыть ваше веб-приложение прямо в Messenger через web_url кнопку с messenger_extensions: true. Это аналог Telegram Mini App, но с меньшим набором API. Применение: платёжные формы, каталоги, регистрации.

MessengerExtensions.getContext() возвращает psid пользователя для авторизации на вашем сервере.

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

24+1 окно: после последнего сообщения от пользователя бот может писать 24 часа. После — только через одобренные Message Tags (например, CONFIRMED_EVENT_UPDATE для уведомлений о мероприятии) или подписку пользователя на One-Time Notification.

Доступность в РФ: Meta заблокирована, но API доступен при наличии соответствующих инструментов. Для международных проектов ограничений нет.

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

Создание Facebook App и привязка к Page. Настройка webhook и подписок. Реализация обработчиков: text messages, postbacks, attachments. UI-компоненты: Quick Replies, Generic Template, Persistent Menu. Webview-интеграция для сложных форм. Аналитика через Facebook Insights.

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

Базовый бот с Quick Replies и Generic Template — 2–3 недели. Полноценный бот с Webview-интеграцией, платёжной формой и аналитикой — 6–10 недель.