Перейти к содержимому
Документация
Конструктор модулей

Первый модуль

Пошаговый пример в Конструкторе модулей Multogram: модуль, который с каждого выбранного аккаунта отправляет сообщение в чат. Шаблон нового модуля (Main, ProcessAccount, AuthSession), поля настроек, тест и сборка .agm.

Соберём модуль «Сообщение в чат»: пользователь выбирает аккаунты, указывает чат и текст, а модуль с каждого аккаунта отправляет это сообщение. Большую часть работы уже делает шаблон нового модуля — останется добавить поля и одно действие.

Шаблон нового модуля

Нажмите Создать модуль на вкладке Конструктор модулей. Конструктор откроется не с пустого листа, а с готовым каркасом модуля, который работает с аккаунтами:

ЭлементЧто делает
Ресурс accountsПоле Аккаунты в форме модуля: выбор аккаунтов из базы Multogram. Его нельзя изменить или удалить
Функция MainРаздаёт аккаунты потокам: каждый поток забирает из списка следующий аккаунт и передаёт его в ProcessAccount, пока аккаунты не кончатся. Ошибка на одном аккаунте попадает в журнал, а поток переходит к следующему
Функция ProcessAccountРабота с одним аккаунтом: вход через AuthSession, затем ваши действия в ветке THEN, в конце — Destroy Session. Если войти не удалось — строка в журнале в ветке ELSE
Функция AuthSessionВходит в аккаунт по его файлам .session и .json, через прокси аккаунта, если он есть. Возвращает true или false

Каждый аккаунт приходит в сценарий как объект [[account]] с полями phone, session_path, data_path и proxy — см. Поле выбора аккаунтов.

1. Добавьте поля настроек

В панели Ресурсы нажмите Добавить ресурс и создайте два ресурса:

НазваниеЗаголовокТипЧто ввести
chatЧатСтрокаКуда писать: @username, ссылка t.me/… или ID
messageТекст сообщенияСтрока, многострочное полеЧто отправить

Название — имя для сценария, Заголовок — подпись поля в форме модуля. Отметьте оба поля обязательными: без них модуль не запустится. Подробнее — в разделе Ресурсы и форма модуля.

2. Добавьте действие

Откройте функцию ProcessAccount и перетащите в ветку THEN, перед Destroy Session, действие Send Message из модуля Telegram:

  • Target — {{chat}};
  • Message — {{message}}.

Готовая функция:

Вызвать функцию  AuthSession  ([[account]].session_path, [[account]].data_path, [[account]].proxy)  → [[authorized]]
IF  [[authorized]] == true
  THEN  Добавить лог     «[[account]].phone: вход выполнен»
        Send Message     Target: {{chat}} · Message: {{message}}
        Destroy Session
  ELSE  Добавить лог     «[[account]].phone: не удалось войти»

Раздачей аккаунтов, ошибками и завершением работы занимается Main — его менять не нужно.

Если действие серое

Действия Telegram относятся к режимам Multogram: Send Message — к режиму «Рассылка». Если у вашего аккаунта нет нужного режима, действие показано серым, а подсказка называет режим. Готовый модуль потребует эти режимы и у каждого, кто его запустит, — см. Требования.

3. Проверьте

Задайте тестовые значения. На панели Ресурсы нажмите Задать значения и заполните chat, message и тестовые строки для accounts — пути к файлам тестового аккаунта.

Запустите тест. Откройте Main и нажмите Полный тест внизу полотна (F6). Выполненные действия подсветятся, журнал — в Инспекторе на вкладке Логи.

Тест работает по-настоящему

Сообщения действительно отправляются. Проверяйте на тестовом аккаунте и своём тестовом чате.

4. Сохраните и соберите

  1. Сохраните проект — Ctrl+S. Проект .agmp появится в Недавних модулях на вкладке Конструктор модулей.
  2. Нажмите Собрать модуль (молоток в верхней панели), впишите Название, Версию и Описание и нажмите Собрать модуль.
  3. Выберите, куда сохранить файл .agm, и установите его на вкладке Модули.

При запуске пользователь увидит форму из трёх полей — Аккаунты, Чат, Текст сообщения — и выберет число потоков. Задача закончится сама, когда потоки обработают все выбранные аккаунты. Подробнее о сборке — в разделе Сохранение и сборка.

Обновлено

Файлы cookieПолитика конфиденциальности

Необходимые cookie обеспечивают работу сайта. С вашего согласия — также аналитические, чтобы улучшать сайт, и маркетинговые, чтобы учесть, кто вас пригласил. Выбор можно изменить в любой момент.