Действие — Отправить изображение в сообщение Telegram

Действие позволяет отправить одно изображение в Telegram бота. Для работы действия должна быть обязательно настроена интеграция с Telegram.

Обзор действия

Рассмотрим действие подробнее:

Пример действия
Пример действия

1) От Telegram бота какого сообщество будет происходить отправка изображения (можно сменить нажав на соответствующую ссылку).

2) Переменная %chat_id%— здесь указывается ID чата в который будет отправлено изображение.

3) Форматирование текста — переключатель указывает Telegram в каком формате передавать текст:

  • без форматирования - текст будет передан «как есть»
  • с разметкой Markdown - текст будет передан в формате Markdown

Некоторые важные пояснения:

Внутри элементов pre и code все символы '`' и '\' должны быть экранированы с помощью символа '\' перед ними. Без кавычек!
Внутри части (...) ссылки в тексте и определения пользовательских эмодзи все символы ')' и '\' должны быть экранированы с помощью символа \ перед ними.
Во всех остальных местах символы '_', '*', '[', ']', '(', ')', '~', '`', '>', '#', '+', '-', '=', '|', '{', '}', '.', '!' должны быть экранированы символом '\' перед ними.
В случае неоднозначности между курсивом и подчеркиванием, символ '__' всегда интерпретируется слева направо как начало или конец подчеркивания. Поэтому вместо ___ курсивное подчеркивание___ используйте ___курсивное подчеркивание_\r__, где \r - символ с кодом 13, который будет проигнорирован.
В качестве альтернативного значения для пользовательского эмодзи должен быть указан допустимый эмодзи. Этот эмодзи будет отображаться вместо пользовательского эмодзи на местах, где пользовательский эмодзи не может быть показан (например, в системных уведомлениях) или если сообщение пересылается непремиумным пользователем. Рекомендуется использовать эмодзи из поля emoji пользовательского эмодзи-стикера.
Пользовательские эмодзи могут использоваться только ботами, которые приобрели дополнительные имена пользователей на Fragment.

Примеры:

*Жирный*
_Курсив_
[Ссылка](http://www.autopilot.pro/)
[Кликабельная ссылка Telegram](tg://user?id=%player.tg_id%)
`Код`
```
Код
```

Код удобно использовать если нужно выдать код вложения Telegram. Тогда он копируется в один клик.

  • с разметкой HTML- текст будет передан в формате HTML

Некоторые важные пояснения:

Поддерживаются только указанные выше теги.
Все символы <, > и &, которые не являются частью тега или HTML-сущности, должны быть заменены соответствующими HTML-сущностями (< на &lt;, > на &gt; и & на &amp;).
Поддерживаются все числовые HTML-сущности.
В настоящее время API поддерживает только следующие именованные HTML-сущности: &lt;, &gt;, &amp; и &quot;.
Используйте вложенные теги pre и code, чтобы указать язык программирования для сущности pre.
Нельзя указать язык программирования для отдельных тегов code.
В качестве содержимого тега tg-emoji должно использоваться допустимое эмодзи. Это эмодзи будет отображаться вместо пользовательского эмодзи на местах, где пользовательский эмодзи не может быть показан (например, в системных уведомлениях) или если сообщение пересылается непремиумным пользователем. Рекомендуется использовать эмодзи из поля emoji пользовательского эмодзи-стикера.
Пользовательские эмодзи могут использоваться только ботами, которые приобрели дополнительные имена пользователей на Fragment.

Примеры:

<b>Жирный</b>
<i>Курсив</i>
<code>код</code>
<s>перечеркнутый</s>
<u>подчеркнутый</u>
<a href="https://autopilot.pro">Сайт</a>
<span class="tg-spoiler">spoiler</span>, <tg-spoiler>spoiler</tg-spoiler>

4) Любые дополнительные параметры, поддерживаемые методом SendPhoto.
Например, protect_contentсо значением 1 будет запрещать сохранять и пересылать изображение.

Примерн выдачи картинки, которую нельзя скачать
Примерн выдачи картинки, которую нельзя скачать
Важно! При отправке текста либо изображения с форматированием рекомендуется проверять на себе, чтобы убедиться, что текст оформлен корректно, иначе будет Ахтунг и действие не отработает.
Пример ахтунга
Пример ахтунга

5) Кнопка Еще позволяет выбрать дополнительные опции к действию:

  • Не прятать кнопки после нажатия (постоянные кнопки) — кнопки в действии не будут спрятаны после нажатия.
  • Прикрепить кнопки к сообщению — инлайн-кнопки в сообщении Telegram.

    Важно! Если текст на инлайн-кнопке будет больше 49 байт (либо 24 кириллических символов), то будет ахтунг и сообщение не отправится из-за ограничений Telegram. Будьте внимательны!
  • Спрятать все «постоянные» кнопки в диалоге — переключатель скрывает кнопки от пользователя.
Важно! Поддерживаются прямые ссылки на вложения например, https://otkrit-ka.ru/uploads/posts/2021-11/samolety-krasivye-kartinki-34.jpg, поддерживаются код вложения Telegram AgACAgIAAxkBAAIB6mRt9ShuegIIceV57GxM6W-rO9EmAAJZ8DEbdmVwSzwJ6x3tnZqgAQADAgADcwADLwQ

Команда для создания сертификата

Важно! В примере показан продвинутый вариант настройки. Вы можете модернизировать его по своему желанию.

Событие:

1) Для создания сертификата добавляем событие «Написал сообщение в Telegram» с текстом равным Сертификат

Пример события
Пример события

2) Чтобы команда срабатывала только если клиент пишет в личные сообщения бота, добавляем условие: числовая переменная %chat_id% больше0

Пример условия
Пример условия

3) Опционально: для того, чтобы команда выполнялась один раз, и не генерировались повторные сертификаты (напоминаем, что они платные), добавляем условие: переменная %player.cert% содержит not found т.е. у пользователя не было поля игрока с названием cert и он не получал сертификат ранее, иначе пишем пользователю текст с сообщением:

%first_name%, вы уже получали сертификат!
Пример условия
Пример условия
Важно! Реакция на невыполнение тоже «съест» милю, но клиент увидит причину несработки, иначе будет думать, что автоматика не работает. Если не нужно уведомлять пользователя, то убирайте реакцию на уведомление.

Действия:

1) Чтобы клиент не волновался, ведь на генерацию сертификата нужно время отправляем сообщение действием «Отправить сообщение в Telegram» с текстом:

%first_name%, ожидайте пожалуйста сертификат
Пример действия
Пример действия

2) Временной переменной %doc_id% присваиваем значение ID сертификата (у вас будет свой номер). т.е.

6ba2bcf1-b089-4975-95fb-53c461277a52
Важно! ID сертификата у вас будет свой.
Важно! ID сертификата у вас будет свой.

3) Если вы делали привязку по этой инструкции, то вы можете формировать разный текст мужчинам женщинам добавляем функцию {gender} для разного текста. Для этого создаем временную переменную %kurs% с текстом:

{gender}прошел|прошла{/gender} курс по дизайну

В противном случае вы можете написать нейтральный текст. В примере считается, что вы привязали пользователей.

Формируем разный текст в зависимости от пола
Формируем разный текст в зависимости от пола

4) Для получения аватарки из Telegram воспользуемся этим действием «Создан аватар в Telegram». Для работы действия обязательно нужно настроить интеграцию с Yandex. Cloud

Пример действия
Пример действия

5) Для того, чтобы сервис Yandex. Cloud сохранить аватарку и вернуть на нее ссылку с облака действием «Запустить таймер» с названием Загрузка аватарки делаем задержку в 10 секунд.

Действие — Отправить изображение в сообщение Telegram, image #11

6) Чтобы сгенерировать сертификат добавляем действие «Создан сертификат для Грамотадел» с допполями описанными выше, т.е.

  • %фио%first_name% %last_name%, т.е. имя фамилия из Автопилота либо Telegram.
  • %прошел — переменная с названием курса %kurs%
  • %дата — переменная с датой курса. Достаточно в действии указать динамическую дату{date}%F{/date}, т.е. указывать дату в нужном формате. Например, 2023-04-27
  • %ava — переменная с аватаркой студента, можно скруглить. Можно в действии указать переменную %avatar_link%, т.е. отправлять аватарку пользователя Telegram загруженную на облаке. Если у пользователя был записан аватар ранее, то можно указать переменную %photo_max%
Пример действия
Пример действия

7) Так как генерация занимает время, то для корректности мы сначала отменяем таймер с названием Выдача сертификата этим действием.

Отменяем таймер
Отменяем таймер

6) Для того, чтобы сервис Грамотадел успел сгенерировать сертификат действием «Запустить таймер» с названием Выдача сертификата делаем задержку в 10 секунд.

Делаем задержку
Делаем задержку
Важно! Если у вас планируется массовая выдача сертификатов, то добавляйте дополнительные таймеры, потому что у сервиса Грамотадел свои лимиты и при большой нагрузке дополнительными таймерами не обойтись (но это дополнительные мили).

7) Чтобы запомнить факт выдачи сертификата можно в действии «Изменить поле профиля игрока» с названием certсделать равным 1

Важно! Поле должно быть уникальным, для примера название поля cert
Максимальная длина названия поля профиля 30 символов. Если название больше 30 символов, то будет ахтунг и поле не запишется. Если вы привязали VK к Telegram, то можно использовать условие «Выполнена команда» 0 равно 0 раз, но пример показанный в видео отлично работает.
Пример действия
Пример действия

8) Мы можем выдавать уникальный текст клиенту к сертификату, чтобы текст был уникальным во временной переменной %rand_certificate% используем функцию {rand} с вариантами ответного текста разделенными вертикальной чертой |
Например: {rand}держите ваш сертификат!|вот ваша награда!{/rand}

Выдаем случайный текст
Выдаем случайный текст

9) Чтобы выдать сертификат клиенту, воспользуемся действием «Отправить сообщение в Telegram» с вложением %result_link% и текстом

%first_name%, %rand_certificate%
Отправка сообщения
Отправка сообщения

Тестируем.

Все работает
Все работает

Творческих взлётов и успешного внедрения!

Вернуться на главную страницу инструкций
716 views·2376 shares
716 views