
188
Подключение бота к WhatsApp – мощный инструмент для автоматизации поддержки клиентов, продаж и уведомлений. Однако процесс требует взаимодействия с WhatsApp Business API, который официально доступен только через партнёрские решения или облачные платформы. В этой статье – пошаговый разбор интеграции, примеры кода и советы по обходу подводных камней.
1. Требования для подключения
Перед стартом убедитесь, что у вас есть:
В этом руководстве мы используем Twilio — популярный сервис с бесплатным пробным периодом.
2. Регистрация в Twilio и настройка WhatsApp Sandbox
+14155238886.join my-code).3. Настройка сервера для обработки вебхуков
WhatsApp отправляет данные на ваш сервер через вебхуки (webhooks). Для примера создадим простое приложение на Python (Flask) или JavaScript (Node.js).
Пример на Python (Flask)
|
1 |
pip install flask twilio |
2. Создайте файл app.py:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
from flask import Flask, request from twilio.twiml.messaging_response import MessagingResponse app = Flask(__name__) @app.route('/webhook', methods=['POST']) def webhook(): # Получаем сообщение от пользователя incoming_msg = request.values.get('Body', '').lower() response = MessagingResponse() msg = response.message() # Логика бота if 'привет' in incoming_msg: msg.body("Привет! Чем могу помочь?") elif 'заказ' in incoming_msg: msg.body("Ваш заказ №123 готов к выдаче.") else: msg.body("Извините, я вас не понял.") return str(response) if __name__ == '__main__': app.run(port=5000) |
3. Запустите сервер:
|
1 |
python app.py |
Пример на Node.js (Express)
|
1 |
npm install express twilio |
2. Создайте файл server.js:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
const express = require('express'); const { MessagingResponse } = require('twilio').twiml; const app = express(); app.use(express.urlencoded({ extended: true })); app.post('/webhook', (req, res) => { const incomingMsg = req.body.Body.toLowerCase(); const twiml = new MessagingResponse(); const msg = twiml.message(); if (incomingMsg.includes('привет')) { msg.body('Привет! Чем могу помочь?'); } else if (incomingMsg.includes('заказ')) { msg.body('Ваш заказ №123 готов к выдаче.'); } else { msg.body('Извините, я вас не понял.'); } res.type('text/xml').send(twiml.toString()); }); app.listen(5000, () => { console.log('Сервер запущен на порту 5000'); }); |
3. Запустите сервер:
|
1 |
node server.js |
4. Настройка вебхука в Twilio
https://ваш-домен.ngrok.io/webhook).
|
1 |
ngrok http 5000 |
3. Скопируйте сгенерированный HTTPS-адрес (например, https://abc123.ngrok.io).
4. Сохраните изменения.
5. Тестирование бота
+14155238886).Пример диалога:
|
1 2 3 4 5 |
Вы: Привет Бот: Привет! Чем могу помочь? Вы: Где мой заказ? Бот: Ваш заказ №123 готов к выдаче. |
6. Переход на Production
X-Twilio-Signature), чтобы избежать поддельных запросов.7. Частые ошибки
/webhook доступен.8. Альтернативы Twilio
Если Twilio не подходит, рассмотрите:
Интеграция бота с WhatsApp через Business API — задача, которую можно решить за несколько часов, используя облачные платформы вроде Twilio. Начните с Sandbox, протестируйте логику, а затем переходите на платный тариф для масштабирования.
Совет: Используйте библиотеки вроде twilio или whatsapp-web.js для расширения функционала (отправка медиа, кнопки, списки).
Удачи в разработке! 🤖 Если возникнут сложности, обращайтесь к официальной документации Twilio.