Files
MAX/docs/max-curl-http-request.md
root 7cd3ccf21c MAX bot + n8n: webhook, нормализация, меню, доки, схемы БД
- 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>
2026-02-16 09:23:51 +03:00

89 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# cURL и настройка HTTP Request ноды (ответ пользователю в MAX)
## cURL — отправить сообщение
Подставь свой `MAX_BOT_TOKEN` и `max_id` (или `max_chat_id`) получателя:
```bash
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`:
```bash
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"}` |
Динамический текст из предыдущей ноды:
```json
{
"text": "{{ $json.answer_text }}",
"format": "markdown"
}
```
Или свой ответ из другой ноды:
```json
{
"text": "{{ $('Твоя нода с ответом').item.json.reply_text }}",
"format": "markdown"
}
```
---
Подробнее про форматы текста (markdown/html) и про кнопки (callback, link, message и т.д.) — в **`docs/max-api/04-formats-and-buttons.md`**.
---
## cURL — ответ на нажатие кнопки (callback)
Подставь `callback_id` из нормализованного объекта и токен:
```bash
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 перерисует сообщение без кнопок.