Public Access
Добавлен MAX
This commit is contained in:
@@ -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`.
|
||||
|
||||
## Логи
|
||||
|
||||
При старте выводятся:
|
||||
|
||||
Reference in New Issue
Block a user