153
Подключение бота к 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.