Интеграция Сервисных Уведомлений через MAX Messenger
📨 Интеграция Сервисных Уведомлений через MAX Messenger
Интеграция сервисных сообщений с мессенджером **MAX** позволяет автоматизировать коммуникацию с клиентами, обеспечивая быструю и надежную доставку информации о статусах заказов, бронированиях или других критически важных событиях. Этот процесс требует синхронизации **Фронтенда** (сбора согласия) и **Бэкенда** (вызова API).
1. Фронтенд: Сбор Согласия Клиента
На стороне сайта (обычно в форме оформления заказа или в личном кабинете) необходимо собрать две ключевые детали: номер телефона клиента и его явное согласие на получение уведомлений через MAX.
HTML-форма для сбора предпочтений
2. Бэкенд: Логика Отправки и API-Вызов
Основная работа по интеграции происходит на стороне сервера (CMS, CRM или ERP). При изменении статуса заказа, сервер совершает защищенный **HTTP POST-запрос** к API MAX.
Процесс на Стороне Сервера (На примере Python)
Функция send_max_notification отправляет запрос, используя авторизационный токен и JSON-тело с данными получателя и содержимым сообщения.
import requests
import json
import os
# КОНФИГУРАЦИЯ API
MAX_API_URL = "https://platform-api.max.ru/messages/send"
MAX_BOT_ID = os.environ.get("MAX_BOT_ID", "BOT-ID-123")
MAX_API_TOKEN = os.environ.get("MAX_API_TOKEN")
def send_max_notification(phone_number: str, message_text: str) -> bool:
"""Отправляет сервисное уведомление через API MAX."""
headers = {
"Authorization": f"Bearer {MAX_API_TOKEN}",
"Content-Type": "application/json"
}
payload = {
"recipient_phone": phone_number,
"bot_id": MAX_BOT_ID,
"message_type": "text",
"text": message_text
}
try:
response = requests.post(MAX_API_URL, headers=headers, json=payload, timeout=5)
if response.status_code == 200:
print("Успешно отправлено в MAX.")
return True
else:
# Логирование ошибки API MAX
print(f"Ошибка API ({response.status_code}): {response.text}")
return False
except requests.exceptions.RequestException as e:
# Логирование сетевой ошибки
print(f"Сетевая ошибка: {e}")
return False
# --- Триггер в CRM ---
def handle_order_shipped(order_data: dict):
phone = order_data.get('phone')
use_max = order_data.get('use_max', False)
use_sms = order_data.get('use_sms', False)
message = f"📦 Заказ №{order_data['id']} отгружен и в пути! Статус: {order_data['status']}"
if use_max:
if send_max_notification(phone, message):
return "Уведомление отправлено через MAX."
# Резервный канал
if use_sms:
# Здесь вызывается функция отправки SMS
# send_sms(phone, message)
return "MAX не удался. Отправлено SMS."
return "Не отправлено. Канал MAX не выбран."
# Пример вызова при изменении статуса заказа в CRM
# order = {'id': 9876, 'phone': '+79xxxxxxxx', 'status': 'SHIPPED', 'use_max': True, 'use_sms': True}
# print(handle_order_shipped(order))
3. Резервирование и Лучшие Практики
🛡️ Резервный Канал (Fallback)
Ваша система должна всегда предусматривать механизм **Fallback**. Если API MAX сообщает, что пользователь не найден, недоступен или заблокировал бота, ваше приложение должно автоматически переключиться на **SMS** или **Email**.
🔑 Безопасность API-токена
API-токен для авторизации должен храниться в безопасности. Никогда не встраивайте токен напрямую в код. Используйте:
- Переменные окружения (как показано в примере:
os.environ.get("MAX_API_TOKEN")). - Секретные менеджеры (Vault, AWS Secrets Manager).
Использование MAX для сервисных уведомлений повышает скорость доставки информации и снижает затраты по сравнению с традиционными SMS.
Комментарии (0)
Оставить комментарий