89 lines
3.3 KiB
Markdown
89 lines
3.3 KiB
Markdown
|
|
# 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 перерисует сообщение без кнопок.
|