Добавлен MAX

This commit is contained in:
Taz
2026-06-01 19:04:04 +02:00
parent d300bc9824
commit c6091fb581
7 changed files with 388 additions and 6 deletions
+20 -3
View File
@@ -1,11 +1,11 @@
# Go Chat Bridge
Мультичат-бот для объединения чатов в **Telegram**, **Discord**, **VK** и на **вашем сайте**.
Мультичат-бот для объединения чатов в **Telegram**, **Discord**, **VK**, **MAX** и на **вашем сайте**.
## Возможности
- Пересылка сообщений между Telegram, Discord, VK и сайтом
- Отображение имени отправителя в пересылаемых сообщениях (`[TG]`, `[DS]`, `[VK]`, `[SITE]`)
- Пересылка сообщений между Telegram, Discord, VK, MAX и сайтом
- Отображение имени отправителя в пересылаемых сообщениях (`[TG]`, `[DS]`, `[VK]`, `[MAX]`, `[SITE]`)
- **Медиа**: фото, документы, видео, аудио, голосовые, GIF
- В **Discord** и **Telegram** медиа отправляются как вложения (файлы)
- В **VK** и на **сайт** — ссылками на прокси (без токена бота в URL)
@@ -29,6 +29,7 @@ go mod tidy
- **Telegram**: токен у [@BotFather](https://t.me/BotFather), ID чата/канала
- **Discord**: токен приложения, ID канала
- **VK**: токен группы с правами `messages`, `groups` (см. раздел ниже), `VK_PEER_ID` беседы, `VK_GROUP_ID`
- **MAX**: токен в [платформе MAX](https://dev.max.ru/docs-api) (Чат-боты → Интеграция), ID чата `MAX_CHAT_ID`
### 3. Переменные окружения
@@ -46,6 +47,12 @@ DISCORD_CHANNEL_ID=123456789012345678
VK_PEER_ID=2000000002
VK_GROUP_ID=15469861
# MAX (опционально)
MAX_TOKEN=...
MAX_CHAT_ID=123456789
# MAX_USE_WEBHOOK=true # для production: webhook вместо long polling
# MAX_WEBHOOK_SECRET=... # секрет для проверки заголовка X-Max-Bot-Api-Secret
# Сайт: отправка сообщений на сайт и приём с сайта
SITE_API_URL=https://your-site.com/telebot/chat_api.php
SITE_API_TOKEN=...
@@ -83,6 +90,7 @@ docker-compose up -d --build
| Путь | Описание |
|-----------|----------|
| `POST /webhook` | Приём сообщений с сайта. Параметр `key` (или поле `key` в JSON) = `WEBHOOK_API_KEY`; в теле — `text`, `sender`. |
| `POST /max/webhook` | Приём событий от MAX (режим webhook). Проверка заголовка `X-Max-Bot-Api-Secret` при заданном `MAX_WEBHOOK_SECRET`. |
| `GET /media/<токен>/<имя_файла>.<расширение>` | Прокси медиа из Telegram. Токен подписан, расширение в URL для корректного отображения и сохранения. |
## Формат сообщений в чатах
@@ -90,6 +98,7 @@ docker-compose up -d --build
- `[TG] Имя: текст` — из Telegram
- `[DS] Имя: текст` — из Discord
- `[VK] Имя: текст` — из VK
- `[MAX] Имя: текст` — из MAX
- `[SITE] Имя: текст`с сайта
При наличии медиа к сообщению добавляются ссылки (в VK и на сайте — на прокси с расширением в конце, например `.../media/xxx/file_332.jpg`).
@@ -103,6 +112,14 @@ docker-compose up -d --build
```
Скопируйте `access_token` из адресной строки после редиректа.
## Настройка MAX
1. Создайте бота на [платформе MAX](https://dev.max.ru/docs-api) и получите токен.
2. Добавьте бота в групповой чат (бот должен быть администратором для получения событий из групп).
3. Задайте `MAX_TOKEN` и `MAX_CHAT_ID` (ID чата, куда пересылать и откуда принимать сообщения).
4. **Long polling** (по умолчанию) — для разработки и тестирования; запускается автоматически при наличии `MAX_TOKEN`.
5. **Webhook** (production) — задайте `MAX_USE_WEBHOOK=true`, `PUBLIC_URL=https://...` (HTTPS на порту 443) и опционально `MAX_WEBHOOK_SECRET`. При старте бот зарегистрирует подписку `POST /subscriptions` на `PUBLIC_URL/max/webhook`.
## Логи
При старте выводятся: