Коротко — ID чата берётся из входящих апдейтов бота (поле message.chat.id). Алгоритм и команды:
1) Добавьте бота в чат и отправьте в чат любое сообщение (лучше /start или упоминание бота), чтобы бот «получил» обновление.
2) Вызовите метод getUpdates у API бота. Пример для Telegram (замените <TOKEN> на токен бота):
curl -s "https://api.telegram.org/bot<TOKEN>/getUpdates"
Для удобства можно распарсить jq:
curl -s "https://api.telegram.org/bot<TOKEN>/getUpdates" | jq '.'
В ответе ищите поле message → chat → id. Пример фрагмента:
"message": {
"chat": {
"id": -123456789,
"title": "Имя чата",
...
},
...
}
Значение id (в группах обычно отрицательное, в супергруппах часто начинается с -100...) и есть ваш chat_id.
3) Если getUpdates возвращает пустой массив []:
- Возможно, у бота установлен webhook — тогда getUpdates не показывает апдейты. Снимите webhook (например, deleteWebhook) или посмотрите webhookInfo.
- Бот может не получать обычные сообщения в группах из‑за privacy mode: отправьте в группе команду с упоминанием бота или временно отключите режим конфиденциальности в BotFather (если это Telegram).
- Проверьте, что бот действительно добавлен в чат и имеет нужные права.
4) Альтернативы:
- Если у вас есть username чата/канала, можно вызвать getChat?chat_id=@username (если API поддерживает).
- В web‑интерфейсе платформы MAX может быть раздел с апдейтами/логами — посмотрите там.
Поскольку вы используете MAX — в инструкции на GitHub должен быть указана точная базовая URL API (аналогично api.telegram.org). Подставьте ваш URL и токен в примеры выше.
Если хотите, пришлите (без токена) вывод curl getUpdates — посмотрю, где взять chat_id и почему ничего не возвращается.