Настройка Telegram
Обычные уведомления workflow Moira отправляет через user-notification; если Telegram включён,
встроенный адаптер использует bot и chat ID текущего пользователя. Устаревшая
telegram-notification сохраняет Telegram-only совместимость, а lock использует отдельный
доверенный Telegram-путь для доставки PIN.
Настройка
1. Создание бота через @BotFather
- Откройте Telegram и найдите
@BotFather - Отправьте
/newbot - Выберите отображаемое имя (например, “My Moira Notifications”)
- Выберите username, оканчивающийся на
bot(например,my_moira_bot) - BotFather ответит токеном бота — скопируйте его (формат:
123456789:ABCdefGHIjklMNOpqrsTUVwxyz)
2. Получение Chat ID
Способ A — @userinfobot:
- Найдите
@userinfobotв Telegram - Отправьте любое сообщение
- Бот ответит вашим user ID — это и есть ваш chat ID
Не помещайте токен бота в URL браузера. URL может остаться в истории, скриншотах, proxy и логах. Используйте @userinfobot или guided workflow.
3. Сохранение настроек
- Откройте Moira и перейдите в Settings
- Найдите карточку Telegram в разделе Notifications
- Введите Bot Token в соответствующее поле
- Введите Chat ID в соответствующее поле
- Убедитесь что Enabled включён
- Нажмите Save для каждой настройки
4. Отправка тестового уведомления
Когда карточка Telegram показывает состояние Готов, нажмите Отправить тест. Moira использует сохранённые настройки для фиксированного тестового сообщения; браузер не отправляет bot token или chat ID повторно. Вы должны получить сообщение от бота в Telegram.
Важно
Перед тестированием необходимо отправить хотя бы одно сообщение боту в Telegram. Telegram API требует этого прежде чем бот сможет отправлять вам сообщения.
Настройка через агента
При использовании Moira через MCP-клиент (Claude Code, Claude Desktop) можно запустить пошаговый workflow настройки:
start({ action: "prepare", workflowId: "moira/telegram-setup", parentExecutionId: "none", skipNotificationCheck: true})start({ action: "execute", startAttemptId: "<ID попытки запуска из prepare>" })Укажите skipNotificationCheck: true при подготовке этого bootstrap workflow, когда Telegram ещё не настроен; иначе execute вернёт стабильный ответ START_PRECONDITION_CHANGED из-за его legacy test node telegram-notification. Флаг обходит только preflight опциональных обычных уведомлений. skipTelegramCheck остаётся устаревшим alias с тем же поведением. Ни один флаг не обходит доверенную доставку PIN для ноды lock.
Workflow проверяет masked существующие настройки, позволяет протестировать или явно заменить их, не возвращает credentials, проверяет сохранённое состояние, отправляет secret-free тест и подтверждает фактическое получение.
Блокировки workflow
Workflow с нодой lock запускается только при корректных bot token и chat ID текущего пользователя. Execute проверяет эту конфигурацию до создания execution и при её отсутствии сохраняет ответ START_PRECONDITION_CHANGED. Когда выполнение достигает ноды, Moira отправляет сгенерированный PIN только в этот настроенный chat и активирует блокировку после успешной отправки. Если последующая отправка завершается ошибкой, эта попытка не оставляет доступной блокировки; повторите ту же ноду после восстановления доставки.
MCP-ответы и ответы workflow не раскрывают сгенерированный PIN. Для разблокировки введите PIN, отдельно переданный пользователем, или нажмите Approve в Telegram.
Решение проблем
Ошибка “Chat not found”
Бот не может отправлять сообщения пока вы не напишете ему первым. Откройте Telegram, найдите бота, отправьте любой текст (например, “hello”), затем повторите попытку.
Ошибка “Invalid token”
Токен бота неверный или истёк. Перейдите к @BotFather, отправьте /mybots, выберите бота и проверьте токен. При необходимости сгенерируйте новый.
“Network error” или “Timeout”
Временная проблема с подключением. Подождите и повторите. Если проблема сохраняется, проверьте что сервер Moira может обращаться к api.telegram.org.
Бот не отвечает
Боты, созданные через @BotFather, по умолчанию не отвечают на сообщения. Moira отправляет через них,
когда workflow выполняет user-notification при включённом Telegram, запускает устаревшую
telegram-notification или выполняет доверенную доставку PIN для lock.
Уведомление не получено
- Убедитесь что вы отправили сообщение боту (требование Telegram API)
- Проверьте правильность chat ID (используйте @userinfobot для подтверждения)
- Проверьте, что карточка Telegram включена и показывает Готов в Settings > Notifications
- Проверьте что токен бота не был отозван