August 31, 2023

Превращаем мечты в действия: Telegram-бот, который  генерирует API-запросы ваших сообщений

В онлайн-бизнесе чат-боты — ключ к эффективному общению. Они формируют воронки продаж, обучают и развлекают. Чат-боты Telegram’а сейчас имеют почти безграничные возможности, и каждый человек создающий бота наделяет его собственным смыслом.

Создавать чат-ботов — это настоящее творчество 🎨 А мы имеем все кисти и краски, чтобы воплотить в жизнь очередной шедевр автоматизации, который визуализировали неделями в своей голове. Ведь мы прекрасно знаем на что способны чат-боты, все мы ими пользовались, и много раз 🤔

Однако, когда дело доходит до практики, всё оказывается сложнее:

  • Если кодишь бота самостоятельно, то мало того, что нужно шарить в программировании, так ещё и API телеграма нужно изучить вдоль и поперёк. Требуется учитывать кучу типов сообщений, которые умеют отправлять боты. Текст, видео, аудио, голосовые. все они имеют определённые нюансы, в которых легко запутаться.
  • Ок, будем использовать какой-нибудь сервис для создания ботов без кода. Но и тут нам предлагают идти на копромисс и смириться с тем, что некоторые возможности ботов будут урезаны.
    Просто их недопилили, бывает 🥲

Но мы-то, творческие люди, и пришли не за тем, чтобы разбираться в этих дебрях! У нас есть идея, и её нужно реализовать быстро! Ещё вчера! 🤬

Новый способ отправки любых сообщений через телеграм-бота

Иногда мы сталкиваемся с ограничениями в отправке определенных типов сообщений. Например, на геткурсе нельзя отправлять голосовые и кругляши. Но что делать, если хочется? 😄 Вот бы существовал метод, позволяющий обойти эти ограничения и отправлять разнообразные сообщения через те платформы, которые казалось бы, не поддерживают их… Звучит удивительно, не так ли?)

Представляю вам своё мегаинновационное решение, о котором я, признаюсь, и сам давно мечтал: телеграм-бот, способный трансформировать сообщения в API-запросы.

@Msg_to_Req_bot

Этот бот обладает уникальной способностью преобразовывать ваши сообщения в специальные ссылки, позволяющие вам отправить абсолютно идентичное сообщение с помощью вашего собственного бота.

Принцип работы этого телеграм-бота крайне прост: он автоматически создает ссылки для API-запросов, соответствующие содержимому вашего сообщения. Это позволяет вам отправлять самые разнообразные типы контента, не углубляясь в технические детали.

Как получить ссылку для отправки сообщения

  1. ВАЖНО! Предварительная подготовка: Создайте новый чат в телеграме, и добавьте в него админами @Msg_to_Req_bot и своего собственного бота, через которого вы будете отправлять итоговые сообщения.
  2. Отправьте в созданный чат сообщение в таком виде, в каком его должны получить конечные пользователи вашего бота.
  3. Бот @Msg_to_Req_bot пришлёт в чат специальную ссылку для создания API-запроса, и проверочное сообщение, которое создано этим же запросом.
    В идеале проверочное сообщение должно полностью копировать ваше, но есть нюансы.
  4. В полученной ссылке замените {ApiToken} на токен вашего бота (узнать его можно через @BotFather), а вместо {ChatID} укажите Telegram ID человека, кому будет отправляться сообщение.
    Для теста можете взять свой собственный ID. Узнать его можно у бота.
  5. Скопируйте получившуюся ссылку и откройте её в браузере. Как только вы сделаете это, ваш собственный бот пришлёт вам сообщение (если вы ввели свой ID).

Как это применять на практике

Просто используйте готовую ссылку в коде своего собственного бота, чтобы отправлять такие сообщения.

Либо, если вы хотите отправить сообщение отпределённого типа через сервис, который ограничивает эту возможность, но при этом поддерживает создание запросов на внешние ресурсы («Вебхуки», «Вызовы URL»). То использйте эту возможность для того, чтобы прописать там ссылку, которую сгенерировал бот @Msg_to_Req_bot. Таким образом, вы можете обойти ограничения платформы и успешно доставить необходимое сообщение.

Пример использования в геткурсе

Вы можете отправлять любые телеграм-сообщения, включая голосовые и кругляши, прямо из геткурса, через операцию «Вызов URL» в Процессе.

Чтобы отправить сообщение конкретному пользователю в телеграм, в ссылке нужно заменить {ChatID} на переменную доп поля пользователя, в которой содержится ID пользователя в телеграме.

Есть возможность автоматически получать TelegramID всех пользователей, которые привязали свой телеграм к аккаунту геткурса. Без дополнительных действий со стороны пользователей. Если вашей онлайн-школе требуется такая настройка, пишите мне в телеграм — @DmitrySpace

Лайфхаки

Пересылайте боту сообщения

Пересланные сообщения бот понимает так же, как и обычные. Т.е. вы можете переслать любое сообщение боту и он его «скопирует».

Узнайте ID

Бот @Msg_to_Req_bot позволяет вам легко узнать Telegram ID канала, чата, другого бота, конкретного пользователя и ваш собственный. Для этого отправьте боту команду /id, бот откроет клавиатуру, на которой нужно выбрать ID чего или кого вы хотите получить (см. скриншот).

Если вы хотите узнать свой собственный ID, то нажмите кнопку «User» и выберите в открывшемся окне «Избранное» или «Saved Messages».

В ответ вы получите ID, который вы можете использовать вместо переменной {ChatID} в запросах к телеграму.

Отправляйте сообщения в чаты и каналы

Вы можете отправлять сообщения не только конкретным пользователям, но и в чат и даже в канал, если бот является там админом. Для этого замените {ChatID} в сгенерированной ссылке на имя канала (например, @my_channel_name) или на ID чата (например, -1001234567890). Да, минус в ID чата писать обязательно.

Так что ликуйте, гетурсоводы, вы можете отправлять сообщения пользователям в телеграм чат, прямо из того бота, который контролирует этот чат 😏

Добавьте в сообщение кнопки

В телеграме нет возможности добавить кнопки в сообщения обычного пользователя, такая возможность доступна только ботам. Поэтому, чтобы показать боту, что в сообщении должны быть кнопки, их нужно описать в формате JSON. (В параметрах кнопок используются стандартные опции reply_markup)

Чтобы показать боту, где начинается описание кнопок, нужно перед этим JSON-кодом поставить ключевое слово reply_markup. При этом и ключевое слово, и сам JSON должны быть отформатированы в вашем сообщении, как моноширинный текст (код). Заметьте, что это вхождение моноширинного текста будет вырезано из итогового сообщения.

Пример сообщения:

Тут может идти любой текст,
можно в несколько строк.

reply_markup{ "inline_keyboard": [ [ { "text": "🔵 Google", "url": "https://google.com" } ], [ { "text": "🟡 Яндекс", "url": "https://ya.ru" }, { "text": "🟣 Bing", "url": "https://www.bing.com" } ] ] }

Нюансы

Бот не может отправлять сообщения "незнакомцу"

Боты в телеграме не могут писать пользователям первыми. Если пользователь до этого не контактировал с ботом, то отправить ему сообщение через этого бота не получится.

Предпросмотр ссылок

Если в вашем сообщении есть ссылка, то её превьюшка будет автоматически добавлена к сообщению, т.к. когда вы отправляете сообщение боту, он не может видеть, есть ли в вашем сообщении эта превьюшка или нет.

Но! Если вам не нужен предпросмотр ссылок, то его можно отключить. Для этого просто допишите к тому коду, который скинет бот:
&disable_web_page_preview=True

Используйте стандартные Emoji

Telegram-боты пока что не умеют отправлять премиум Emoji. С этим ничего не поделать. Просто учитывайте это. Любые премиум Emoji будут автоматически конвертироваться в обычные.

Обязательно ли использовать чат для работы бота?

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

Конвертация типов сообщений

⚠️ Конвертация типов сообщений доступна только в расширенной версии.

АудиоГолосовое сообщение

Для конвертации аудиосообщения в голосовое прикрепите аудио-файл к сообщению, а в тексте этого сообщения напишите одну из ключевых фраз:
voice,голосовое, голос или войс

Рекомендуемая длина голосового сообщения — 1 минута

ВидеоВидеозаметка (Кругляш)

Для конвертации видеосообщения в видеозаметку прикрепите аудио-файл к сообщению, а в тексте этого сообщения напишите одну из ключевых фраз:
video_note, videonote, circle, circlevideo, видеозаметка, круг или кругляш

Рекомендуемая длина видеозаметки — 1 минута

В тексте сообщения не должно быть ничего кроме ключевого слова.

Лимиты

Бесплатная версия

  • Количество ссылок, которые можно сгенерировать — 5 ссылок в день.
  • Конвертация типов сообщений.

Расширеная версия

Стоимость: день — 70 руб | неделя — 300 руб | месяц — 700 руб

  • Количество ссылок, которые можно сгенерировать — 100 ссылок в день.
  • Возможность конвертации типов сообщений:
    АудиоГолосовое сообщение
    ВидеоВидеозаметка (Кругляш)

Если есть вопросы, пишите в телеграм @DmitrySраce