Автопилот в Telegram. Работа с комментариями и темами
В данной инструкции мы покажем как реагировать на комментарии в постах Telegram, работать с темами. Сложно? Все просто: повторяйте шаги в инструкции и все получится.
Лирическое отступление… Интеграция с Telegram, создание канала и привязка обсуждения должны быть сделаны по соответствующим инструкциям.
План инструкции:
Важно! Если какой-то пункт у вас сделан, то пропускаете и идете дальше.
Команда для загрузки файлов
Событие:
1) Событие: «Написал сообщение в Telegram» с текстом: #file
Важно! Не создавайте одинаковых событий / действий, в этом нет смысла. В другие команды обязательно вставляйте события / действия по номеру. НЕ забывайте про привязку аккаунта TG иначе будут списываться мили.

Обязательно добавляйте условия:
2) Переменная %attach_type%
содержит none
и нажимаем кнопку «Если не», т.е. сообщение содержит вложение.

3) Числовая переменная %chat_id%
больше0
, т.е. пользователь пишет в личку боту

4) Чтобы команда реагировала на сотрудника добавьте этo условие: переменная %player.tg_id%
совпадает и вставьте ID сотрудника из следующего действия (первый запуск делаете без этого условия)

Действия:
1) В действии «Отправить сообщение в Telegram» отправляем текстом с разметкой HTML и текстом:
Идентификатор файла:
<code>%tg_file_id%</code>
Тип вложения:
<code>%attach_type%</code>
TG_ID пользователя:
<code>%player.tg_id%</code>
Здесь все просто:
%tg_file_id%
— идентификатор файла в Telegram.%attach_type%
— тип вложения для формирования JSON-объекта.%player.tg_id%
— идентификатор пользователя Telegram (для условия с сотрудниками). Получаете значение, вставляете его в условие и не забываете его включить.

Реакция на комментарий под постом
Важно! В этом простом примере показан принцип, а все остальное вы можете докрутить по желанию
Событие:
1) Событие: «Написал сообщение в Telegram» с текстом: подарок
Важно! Не создавайте одинаковых событий / действий, в этом нет смысла. В другие команды обязательно вставляйте события / действия по номеру. НЕ забывайте про привязку аккаунта TG иначе будут списываться мили.

Обязательно добавляйте условия:
1) Переменная %chat_id%
совпадает с ID обсуждения, т.е. пользователь пишет в нужном обсуждении. Как его узнать показано в видео.

2) Чтобы команда реагировала только на конкретный пост добавьте этo условие: переменная %post_id%
совпадает и вставьте ID поста из следующего действия. (первый запуск делаете без этого условия)

Опциональное условие:
Важно! Если у вас есть привязка к ВК игроков, то тогда могут работать стардартные условия, уровни списка, выполнения команд и т.д. Как привязать смотрите в этой инструкции
3) Чтобы команда запускалась один раз вы можете добавить проверку запуска через поле игрока. Для этого добавляете условие: переменная %player.номеркоманды%
содержит not found
Естественно название поля может быть любым, но Андрей для уникальности использует номер команды. Также в реакции на невыполнение (через выполнение действия), вы можете писать пользователю в личку, если он разрешил боту с ним общаться.

Действия:
1) В действии «Отправить сообщение в Telegram» (оно стоит на паузе) отправляем пользователю %player.tg_id%
и текстом:
%first_name%, подарок вам уже был выдан.
Номер этого действия нужно указать в реакции на невыполнение, но будут списываться мили.

2) Для того чтобы сформировать текст ответного комментария, во временной переменной %caption%
пишете желаемый текст. Пример ниже:
%first_name%, спасибо за комментарий. Вот ваш подарок.

3) Для того чтобы выдать, допустим, документ, во временной переменной %document%
указываете идентификатор вложения (получаете из команды выше). Пример ниже:
BQACAgIAAxkBAAO-ZvbuO3ZCGncFmPVydt69qpzxYWIAAotXAAI8S7hLydIMjr_XByk2BA

4) В действии «Отправить запрос в Telegram» отправляем запрос на метод sendDocument
с параметрами:
chat_id
—%chat_id%
. Идентификатор бота. Если выдаете файл в комментарии, то указываете%chat_id%
, а если хотите выдать пользователю в личку, то указываете%player.tg_id%
document
—%document%
. Здесь указываем переменную с вашим файлом.caption
—%caption%
. Здесь указываем переменную с описанием вашего файла. Помним по ограничения Telegram.reply_to_message_id
—%object_id%
. Этот параметр делает ответный комментарий на комментарий пользователя.protect_content
—1
. Данный параметр не дает скачать контент в Telegram. Если он не нужен можете удалять.
На самом деле все просто, если почитать документацию по методу

5) Для того, чтобы не давать бонус еще раз в поле игрока с номером команды записываем действием: «Изменить поле профиля игрока» с номером команды и значением 1

Реакция на комментарий в темах
Важно! А тут все настраивается аналогично, только пару блоков изменить. Можете как Андрей показывает скопировать команду и внести изменения, заменив нужные блоки копиями.
Событие:
1) Событие: «Написал сообщение в Telegram» с текстом: подарок
Важно! Не создавайте одинаковых событий / действий, в этом нет смысла. В другие команды обязательно вставляйте события / действия по номеру. НЕ забывайте про привязку аккаунта TG иначе будут списываться мили.

Обязательно добавляйте условия:
1) Переменная %chat_id%
совпадает с ID обсуждения, т.е. пользователь пишет в нужном обсуждении. Как его узнать показано в видео.

2) Чтобы команда реагировала только на конкретный пост добавьте этo условие: переменная %post_id%
совпадает и вставьте ID поста из следующего действия. (первый запуск делаете без этого условия)

Опциональное условие:
Важно! Если у вас есть привязка к ВК игроков, то тогда могут работать стардартные условия, уровни списка, выполнения команд и т.д. Как привязать смотрите в этой инструкции
3) Чтобы команда запускалась один раз вы можете добавить проверку запуска через поле игрока. Для этого добавляете условие: переменная %player.номеркоманды%
содержит not found
Название поля может быть любым, но Андрей для уникальности использует номер команды. Также в реакции на невыполнение (через выполнение действия), вы можете писать пользователю в личку, если он разрешил боту с ним общаться.

4) Чтобы команда запускалась только если пользователь пишет в теме, то можете добавить условие: числовая переменная %is_topic_message%
равна1
То есть, темы включены в группе.

4) Чтобы команда запускалась, только если пользователь пишет в теме с определенным названием, необходимо добавить условие: переменная %forum_topic_title%
совпадает с названием темы.
Важно! В инструкции показаны все необходимые условия, а какие из них использовать решаете Вы. Больше переменных Telegram указано в этой инструкции.

Действия:
1) В действии «Отправить сообщение в Telegram» (оно стоит на паузе) отправляем пользователю %player.tg_id%
и текстом:
%first_name%, подарок вам уже был выдан.
Номер этого действия нужно указать в реакции на невыполнение, но будут списываться мили.

2) Для того чтобы сформировать текст ответного комментария, во временной переменной %caption%
пишете желаемый текст. Пример ниже:
%first_name%, спасибо за комментарий. Вот ваш подарок.

3) Для того чтобы выдать, допустим, документ, во временной переменной %document%
указываете идентификатор вложения (получаете из команды выше). Пример ниже:
BQACAgIAAxkBAAO-ZvbuO3ZCGncFmPVydt69qpzxYWIAAotXAAI8S7hLydIMjr_XByk2BA

4) Единственное отличие. В действии «Отправить запрос в Telegram» отправляем запрос на метод sendDocument
с параметрами:
chat_id
—%chat_id%
. Идентификатор бота. Если выдаете файл в комментарии, то указываете%chat_id%
, а если хотите выдать пользователю в личку, то указываете%player.tg_id%
document
—%document%
. Здесь указываем переменную с вашим файлом.caption
—%caption%
. Здесь указываем переменную с описанием вашего файла. Помним по ограничения Telegram.-
message_thread_id
—%message_thread_id%
. Этот параметр указывает в какой именно топик (тему) писать ответ. reply_to_message_id
—%object_id%
. Этот параметр делает ответный комментарий на комментарий пользователя.protect_content
—1
. Данный параметр не дает скачать контент в Telegram. Если он не нужен можете удалять.
На самом деле все просто, если почитать документацию по методу

5) Для того, чтобы не давать бонус еще раз в поле игрока с номером команды записываем действием: «Изменить поле профиля игрока» с номером команды и значением 1

Все легко и просто. Пробуйте и все получится.
Творческих взлётов и успешного внедрения.
Вернуться к списку инструкций