- register_max_webhook.py, fetch_schema.py - n8n-code-node-max-normalize.js (max_id, callback из callback.user, contact из vcf_info) - n8n-code-add-menu-buttons.js (меню с callback, request_contact, Главное меню) - docs: max-webhook, max-curl-http-request, max-api (форматы, кнопки, контакт), clpr vs sprf - README, SITUATION, схемы sprf_ и clpr_, .gitignore Co-authored-by: Cursor <cursoragent@cursor.com>
3.3 KiB
3.3 KiB
cURL и настройка HTTP Request ноды (ответ пользователю в MAX)
cURL — отправить сообщение
Подставь свой MAX_BOT_TOKEN и max_id (или max_chat_id) получателя:
curl -X POST "https://platform-api.max.ru/messages?user_id=6200846" \
-H "Authorization: ВАШ_MAX_BOT_TOKEN" \
-H "Content-Type: application/json" \
-d '{"text": "Привет! Сообщение получено.", "format": "markdown"}'
С chat_id вместо user_id:
curl -X POST "https://platform-api.max.ru/messages?chat_id=188573833" \
-H "Authorization: ВАШ_MAX_BOT_TOKEN" \
-H "Content-Type: application/json" \
-d '{"text": "Привет!", "format": "markdown"}'
Как ввести в HTTP Request ноду n8n
| Поле | Значение |
|---|---|
| Method | POST |
| URL | https://platform-api.max.ru/messages?user_id={{ $json.max_id }} |
| Authentication | Header Auth → Name: Authorization, Value: ВАШ_MAX_BOT_TOKEN (или credential) |
| Send Headers | включить, добавить: Name Content-Type, Value application/json (если нет из Auth) |
| Send Body | Yes |
| Body Content Type | JSON |
| Specify Body | Using JSON |
| JSON Body | {"text": "Привет! Сообщение получено.", "format": "markdown"} |
Динамический текст из предыдущей ноды:
{
"text": "{{ $json.answer_text }}",
"format": "markdown"
}
Или свой ответ из другой ноды:
{
"text": "{{ $('Твоя нода с ответом').item.json.reply_text }}",
"format": "markdown"
}
Подробнее про форматы текста (markdown/html) и про кнопки (callback, link, message и т.д.) — в docs/max-api/04-formats-and-buttons.md.
cURL — ответ на нажатие кнопки (callback)
Подставь callback_id из нормализованного объекта и токен:
curl -X POST "https://platform-api.max.ru/answers?callback_id=ВАШ_CALLBACK_ID" \
-H "Authorization: ВАШ_MAX_BOT_TOKEN" \
-H "Content-Type: application/json" \
-d '{"notification": "Нажато!"}'
В n8n (только когда есть callback_id):
- URL:
https://platform-api.max.ru/answers?callback_id={{ $json.callback_id }} - Method: POST
- Headers: те же
- Body:
{"notification": "Нажато!"}или{"message": {"text": "Новый текст сообщения", "format": "markdown"}}
Удалить кнопки после нажатия
Обнови сообщение тем же текстом, но без attachments — клавиатура исчезнет:
- URL:
https://platform-api.max.ru/answers?callback_id={{ $json.callback_id }} - Method: POST
- Body:
{"message": {"text": "{{ $json.callback_message_text }}", "format": "markdown"}}
Текст бери из нормализатора: после callback там есть callback_message_text (и при желании callback_message_mid). В body передаётся только text и format, без attachments — MAX перерисует сообщение без кнопок.