@telecopilotco/n8n-nodes-telepilot
v1.9.4
Published
Ваш персональный Telegram Помощник
Readme
n8n-nodes-telepilot
Описание
n8n-nodes-telepilot — это пакет расширения для n8n, обеспечивающий глубокую интеграцию с Telegram API на уровне MTProto. В отличие от стандартных ботов, TelePilot работает как пользовательский клиент, что дает доступ к расширенным функциям Telegram, включая:
- Автоматизацию личного аккаунта Telegram
- Мониторинг и реагирование на сообщения в режиме реального времени
- Доступ к событиям API, недоступным для обычных ботов
- Работу со "звездами" и подарками Telegram
- Управление группами и каналами с расширенными возможностями
TelePilot работает параллельно с вашим основным клиентом, позволяя создать персонального Telegram-ассистента.
Совместимость окружений
| ОС | Архитектура | Поддержка | |--------|--------------|------| | docker | x64 | ✅ | | docker | arm64 | ✅ | | linux | x64 | ✅ | | linux | arm64 | ✅ | | macos | x64 | ✅ | | macos | arm64 | ✅ | | windows | x64 | ❌ | | windows | arm64 | ❌ |
Установка
Установка как модуль сообщества
- Перейдите в Settings -> Community modules вашего n8n
- Выберите "Install Community node"
- Укажите имя пакета
@telepilotco/n8n-nodes-telepilot - Подтвердите установку
Ручная установка
npm install @telepilotco/n8n-nodes-telepilotДля Docker-инсталляций
Добавьте в Dockerfile:
RUN cd ~/.n8n/ && mkdir nodes && cd nodes && npm install @telepilotco/n8n-nodes-telepilotНастройка и авторизация
Получение API ключей
- Зайдите на my.telegram.org
- Заполните форму для получения
api_idиapi_hash:- App title:
telepilot - Short name:
telepilot
- App title:
Настройка учетных данных
- В n8n откройте раздел Credentials
- Создайте новый ключ "Personal Telegram CoPilot API"
- Заполните поля:
- App api_id: ваш API ID
- App api_hash: ваш API Hash
- Phone Number: телефон в международном формате
Авторизация
- Создайте рабочий процесс с узлами "Chat Trigger" и "Telegram CoPilot"
- В "Telegram CoPilot" выберите:
- Ресурс: "Вход"
- Операция: "Вход по номеру телефона через ChatTrigger"
- Соедините узлы и активируйте рабочий процесс
- Используйте команду
/startв чате - Введите код подтверждения из Telegram
- При необходимости введите пароль двухфакторной аутентификации
Работа с несколькими аккаунтами
TelePilot поддерживает работу с несколькими аккаунтами Telegram одновременно. Это позволяет создавать сложные автоматизации, использующие разные аккаунты для разных задач.
Настройка нескольких аккаунтов
Создание учетных данных
- Перейдите в раздел Credentials в n8n
- Создайте отдельные учетные данные "Personal Telegram CoPilot API" для каждого аккаунта
- Для каждого набора учетных данных укажите:
- Уникальный App api_id
- Уникальный App api_hash
- Номер телефона в международном формате
Авторизация аккаунтов
- Создайте рабочий процесс с узлами "Chat Trigger" и "Telegram CoPilot"
- В "Telegram CoPilot" выберите:
- Ресурс: "Вход"
- Операция: "Вход по номеру телефона через ChatTrigger"
- Выберите соответствующие учетные данные для каждого аккаунта
- Повторите процесс авторизации для каждого аккаунта
- Используйте команду
/startв чате для каждого аккаунта - Введите коды подтверждения из Telegram
- При необходимости введите пароли двухфакторной аутентификации
Использование в рабочих процессах
- В каждом узле "Telegram CoPilot" выберите нужные учетные данные
- Система автоматически переключится на соответствующий аккаунт
- Можно использовать разные аккаунты в разных узлах одного рабочего процесса
Управление аккаунтами
TelePilot предоставляет команды для управления аккаунтами через ChatTrigger:
| Команда | Описание |
|---------|----------|
| /stat | Показывает статус всех аккаунтов, включая их состояние авторизации |
| /stop | Завершает текущую сессию аккаунта |
| /clear | Удаляет локальную базу данных сессии и требует повторной авторизации |
| /help | Показывает список доступных команд |
Примеры использования нескольких аккаунтов
- Мониторинг и пересылка сообщений
ChatTrigger (Аккаунт 1) -> Telegram CoPilot Trigger (updateNewMessage) ->
IF (условие) -> Telegram CoPilot (sendMessage, Аккаунт 2)- Автоматическое взаимодействие между аккаунтами
Telegram CoPilot Trigger (Аккаунт 1) ->
Function (обработка) ->
Telegram CoPilot (sendMessage, Аккаунт 2) ->
Telegram CoPilot (sendMessage, Аккаунт 1)- Параллельная работа с разными группами
Telegram CoPilot (getChats, Аккаунт 1) ->
Function (фильтрация) ->
Telegram CoPilot (sendMessage, Аккаунт 2)Особенности работы с несколькими аккаунтами
Изоляция сессий
- Каждый аккаунт имеет свою отдельную сессию
- Файлы сессий хранятся в отдельных директориях
- Переключение между аккаунтами происходит автоматически
Безопасность
- Каждый аккаунт использует свои уникальные API ключи
- Сессии хранятся локально и изолированы друг от друга
- При удалении аккаунта все его данные удаляются
Мониторинг
- Команда
/statпоказывает статус всех аккаунтов - Можно отслеживать активные сессии
- Ведется лог последнего использования каждого аккаунта
- Команда
Ограничения
- Каждый аккаунт должен быть авторизован отдельно
- Необходимо использовать разные API ключи для разных аккаунтов
- Рекомендуется не превышать разумное количество аккаунтов (до 5-10)
Полный список ресурсов и методов
1. Ресурс: Вход (login)
| Операция | Описание | Параметры | Особенности | |----------|----------|-----------|-------------| | Вход по номеру телефона через ChatTrigger | Авторизация в Telegram | - | Требует ввода кода подтверждения из Telegram | | Закрыть сессию | Завершает текущую сессию Telegram | - | Безопасное завершение работы | | Удалить Td_database | Удаляет локальную базу данных сессии | - | Полная очистка данных сессии |
2. Ресурс: Пользователь (user)
| Операция | Описание | Параметры | Возвращает | |----------|----------|-----------|------------| | Получить информацию о себе | Данные текущего пользователя | - | ID, имя, username и другие данные профиля | | Получить информацию о пользователе | Базовая информация | User ID | Основные данные пользователя | | Получить полную информацию о пользователе | Расширенный профиль | User ID | Детальную информацию включая статус, био и т.д. | | Создать личный чат | Создает/открывает чат | User ID, Force | ID созданного чата | | Создать новый секретный чат | Шифрованный чат | User ID | ID секретного чата | | Получить активные подписки за звезды | Список подписок | Only Expiring, Offset | Список подписок и их статус |
3. Ресурс: Контакт (contact)
| Операция | Описание | Параметры | Возвращает | |----------|----------|-----------|------------| | Получить контакты | Список контактов | - | Массив контактов с их данными |
4. Ресурс: Группа (group)
| Операция | Описание | Параметры | Возвращает | |----------|----------|-----------|------------| | Получить участников супергруппы | Список участников | Supergroup ID | Массив участников с их ролями | | Получить информацию о супергруппе | Основные данные | Supergroup ID | Название, описание, количество участников | | Получить полную информацию о супергруппе | Детальная информация | Supergroup ID | Детальную информацию включая настройки |
5. Ресурс: Чат (chat)
| Операция | Описание | Параметры | Особенности | |----------|----------|-----------|-------------| | Добавить участников в чат | Добавление новых участников | Chat ID, User IDs | Массовое добавление | | Закрыть чат | Закрывает активный чат | Chat ID | Скрывает чат из списка | | Открыть чат | Открывает чат | Chat ID | Делает чат активным | | Отметить чат как непрочитанный | Изменяет статус прочтения | Chat ID, Is Marked As Unread | Управление статусом уведомлений | | Отправить действие чата | Отправляет статус действия | Chat ID, Chat Action | Показывает "печатает", "записывает голос" и т.д. | | Поиск публичного чата | Поиск по username | Username | Информацию о найденном чате | | Получить информацию о чате | Основные данные чата | Chat ID | Информацию о чате | | Получить чаты | Список всех чатов | Limit | Массив чатов | | Получить историю чата | История сообщений | Chat ID, From Message ID, Limit | Массив сообщений | | Присоединиться к чату | Вступление в чат | Chat ID | Работает с публичными чатами | | Создать супергруппу или канал | Создание новой группы | Title, Description, Is Channel | ID созданной группы | | Получить платные посты | Список платных постов | Chat ID | Массив платных постов | | Получить участников чата по ссылке | Список пользователей по ссылке | Chat ID, Invite Link | Массив участников | | Получить информацию о ссылке | Данные о приглашении | Chat ID, Invite Link | Информацию о ссылке | | Поиск публичных чатов | Поиск по ключевым словам | Query | Массив найденных чатов | | Удалить чат | Удаление чата | Chat ID | Безвозвратное удаление |
6. Ресурс: Сообщение (message)
| Операция | Описание | Параметры | Особенности | |----------|----------|-----------|-------------| | Отправить текстовое сообщение | Отправка текста | Chat ID, Message Text, Reply To Message ID | Поддержка форматирования | | Отправить сообщение с фото | Отправка изображения | Chat ID, Local Photo Path, Caption | Поддержка подписей | | Отправить сообщение с видео | Отправка видео | Chat ID, Video Path, Caption | Поддержка подписей | | Отправить сообщение с аудио | Отправка аудио/голоса | Chat ID, Audio Path, Caption, Send As Voice | Поддержка голосовых сообщений | | Отправить сообщение с файлом | Отправка документа | Chat ID, File Path, Caption | Поддержка любых файлов | | Изменить текст сообщения | Редактирование сообщения | Chat ID, Message ID, Message Text | Сохранение форматирования | | Удалить сообщения | Удаление сообщений | Chat ID, Message IDs, Revoke | Массовое удаление | | Переслать сообщения | Пересылка сообщений | From Chat ID, To Chat ID, Message IDs | Массовая пересылка | | Получить сообщения | Получение по ID | Chat ID, Message ID | Данные сообщения | | Получить ссылку на сообщение | Создание ссылки | Chat ID, Message ID | Публичную ссылку | | Сохранить сообщения в избранное | Добавление в закладки | Chat ID, Message IDs | Массовое сохранение |
7. Ресурс: Файл (file)
| Операция | Описание | Параметры | Возвращает | |----------|----------|-----------|------------| | Скачать файл | Загрузка файла | File ID | Локальный путь к файлу | | Получить удаленный файл | Информация о файле | Remote File ID | Метаданные файла |
8. Ресурс: Пользовательский запрос (request)
| Операция | Описание | Параметры | Особенности | |----------|----------|-----------|-------------| | Пользовательский запрос | Произвольный запрос к API | JSON | Прямой доступ к API |
9. Ресурс: Подарок (gift)
| Операция | Описание | Параметры | Возвращает | |----------|----------|-----------|------------| | Получить полученные подарки | Список подарков | Limit, Offset | Массив подарков |
10. Ресурс: Звезды (star)
| Операция | Описание | Параметры | Возвращает | |----------|----------|-----------|------------| | Получить транзакции звезд | История транзакций | Chat ID, Limit, Offset | Массив транзакций | | Получить статус доходов от звезд | Статистика доходов | - | Информацию о доходах |
Работа с триггерами
Доступные события для Telegram CoPilot Trigger
1. updateNewMessage
- Описание: Срабатывает при получении нового сообщения
- Данные:
- ID сообщения
- ID чата
- Текст сообщения
- Тип контента
- Информация об отправителе
2. updateMessageContent
- Описание: Срабатывает при изменении содержимого сообщения
- Данные:
- ID сообщения
- ID чата
- Новое содержимое
- Тип изменений
3. updateNewMessage:messageActionStarGift
- Описание: Срабатывает при получении подарка звезд
- Данные:
- ID подарка
- Количество звезд
- ID отправителя
- ID полученного подарка
- Количество звезд для продажи
- Приватность подарка
- Статус конвертации
- Статус улучшения
- Статус возврата
- Эмодзи подарка
- Стандартное количество звезд
- Возможность улучшения
4. getStarTransactions
- Описание: Получение истории транзакций звезд
- Требует: Channel ID
- Данные:
- Список транзакций
- Временные метки
- Количество звезд
- Тип транзакции
5. updateStarTransactions
- Описание: Обновления в транзакциях звезд
- Требует: Channel ID
- Данные:
- Новые транзакции
- Изменения в существующих транзакциях
6. * (Все события)
- Описание: Срабатывает на все возможные события
- Особенности: Не рекомендуется для производительности
- Использование: Только для отладки
Дополнительные настройки триггеров
Ignore Groups Events
- Описание: Игнорировать события из групп
- Тип: boolean
- По умолчанию: false
- Особенности: Полезно для фильтрации личных сообщений
Примеры использования триггеров
1. Мониторинг личных сообщений
{
"events": ["updateNewMessage"],
"options": {
"ignoreGroups": true
}
}2. Отслеживание подарков
{
"events": ["updateNewMessage:messageActionStarGift"]
}3. Мониторинг транзакций
{
"events": ["getStarTransactions", "updateStarTransactions"],
"channelId": "your_channel_id"
}4. Комплексный мониторинг
{
"events": [
"updateNewMessage",
"updateMessageContent",
"updateNewMessage:messageActionStarGift"
]
}Особенности работы с триггерами
Авторизация
- Требуется предварительная авторизация через ChatTrigger
- Необходимо использовать метод "Вход по номеру телефона через ChatTrigger"
Обработка данных
- Все события содержат полную информацию о контексте
- Поддерживается форматированный текст
- Доступна информация о медиа-контенте
Работа с подарками
- Детальная информация о подарках звезд
- Статусы конвертации и улучшения
- История транзакций
Мониторинг транзакций
- Требуется указание Channel ID
- Поддержка пагинации
- Отслеживание изменений в реальном времени
Примеры рабочих процессов
Автоответчик в личных сообщениях
ChatTrigger -> Telegram CoPilot Trigger (updateNewMessage) -> IF (private chat) -> Telegram CoPilot (sendMessage)Мониторинг ключевых слов в группе
Telegram CoPilot Trigger (updateNewMessage) -> Function (проверка ключевых слов) -> IF (найдено) -> Telegram CoPilot (sendMessage to self)Автоматическая загрузка медиа из канала
Telegram CoPilot Trigger (updateNewMessage) -> IF (contains media) -> Telegram CoPilot (downloadFile)Мониторинг транзакций звезд
Telegram CoPilot Trigger (updateStarTransactions) -> IF (amount > 50) -> Telegram CoPilot (sendMessage notification)Отладка и устранение неисправностей
Включение расширенного логирования
DEBUG=tdl,tdl:client,telepilot-cred,telepilot-node,telepilot-trigger,telepilot-cm N8N_LOG_LEVEL=debug npx n8nЧастые проблемы и решения
Проблема с авторизацией
Проблема: Не удается авторизоваться с кодом из SMS Решение:
- Убедитесь, что номер телефона указан в международном формате
- Проверьте правильность API ID и API Hash
- Выполните
/clearв ChatTrigger и начните заново
Не работают некоторые методы
Проблема: Ошибка при использовании методов Решение:
- Проверьте авторизацию (выполните метод getMe)
- Проверьте правильность параметров (ID чатов)
- Убедитесь, что у вас есть права на действие
Проблемы с Docker
Проблема: TelePilot не работает в Docker Решение:
- Добавьте переменные окружения в Docker
- Проверьте правильность установки
Особенности реализации
- Использование MTProto API вместо Bot API для расширенных возможностей
- Локальное хранение сессии пользователя в Td_database
- Поддержка различных операционных систем и архитектур (кроме Windows)
- Интеграция с существующим аккаунтом без создания бота
- Доступ к расширенным событиям API недоступным для стандартных ботов
Узнать больше
- Telegram канал: https://t.me/telepilotco
- Telegram группа: https://t.me/telepilotco_group
- Сайт: https://telepilot.co
- Документация: https://telepilot.co/login-howto
- Готовые процессы: https://telepilot.co/workflows
Лицензия
MIT
