Функции для отправки и редактирования сообщений

Описание функций API Telegram для отправки и редактирования сообщений

Отправить сообщение в Telegram: tg_send_message()

! Работает с бизнес-аккаунтом в Телеграм

tg_send_message(platform_id, text,client_message_id, reply_markup, parse_mode, disable_web_page_preview, protect_content, disable_notification, message_thread_id, entities)

Параметры:

! platform_id — идентификатор клиента в Telegram, которому необходимо прислать сообщение *

! text - текст сообщения

client_message_id - идентификатор сообщения, которое необходимо процитировать

reply_markup — настройки кнопок **

parse_mode — выделение текста в описании жирным или курсивом ***. Может иметь значения html, markdown, markdownV2.

disable_web_page_preview - отобразить превью ссылки. Чтобы отключить передайте 1, иначе 0 или оставьте пустое значение “”

protect_content — признак защиты контента от копирования. Чтобы включить передайте любое значение, кроме 0, False и пустых кавычек ''

disable_notification — признак отправки сообщения со звуковым уведомлением (по умолчанию 0) 1 - отключить уведомление при получении, 0 - передать с уведомлением

message_thread_id — идентификатор темы (доступно для супергрупп при наличии функционала форума) entities — c ним вы можете просто копировать сверстанный текст со всеми особенностями и просто указать с какого символа по какой он будет отображаться с тем или иным шрифтом. Пример можете подсмотреть в tg_request в соответствующем поле. В параметре должен быть словарь. Пример можно посмотреть во вкладке с примером.

Подробный пример отправки сообщения с помощью функции API Telegram и как сохранить id сообщения

Ниже в этой статье для вас есть подробный разбор как отправить сообщение с помощью API функции Telegram и получить message_id сообщения.

Чтобы в переменную записать текст с переносами строк, укажите значение следующим образом:

text = "Текст первой строки" + "\n" + "Текст второй строки" + "\n" +"Третья строка"

Отправить сообщение с указанием конкретного бота в Telegram: tg_send_message_1()

tg_send_message_1(token, platform_id, text, client_message_id, reply_markup, parse_mode, disable_web_page_preview, protect_content, disable_notification, message_thread_id, entities, business_connection_id)

Параметры:

! token — токен Telegram-бота, полученный в BotFather

! platform_id — идентификатор клиента в Telegram, которому необходимо прислать сообщение *

! text - текст сообщения

client_message_id - идентификатор сообщения, которое необходимо процитировать

reply_markup — настройки кнопок **

parse_mode — выделение текста в описании жирным или курсивом ***. Может иметь значения html, markdown, markdownV2.

disable_web_page_preview - отобразить превью ссылки. Чтобы отключить передайте 1, иначе 0 или оставьте пустое значение “”

protect_content — признак защиты контента от копирования. Чтобы включить передайте любое значение, кроме 0, False и пустых кавычек ''

disable_notification — признак отправки сообщения со звуковым уведомлением (по умолчанию 0) 1 - отключить уведомление при получении, 0 - передать с уведомлением

message_thread_id — идентификатор темы (доступно для супергрупп при наличии функционала форума) entities — c ним вы можете просто копировать сверстанный текст со всеми особенностями и просто указать с какого символа по какой он будет отображаться с тем или иным шрифтом. Пример можете подсмотреть в tg_request в соответствующем поле. В параметре должен быть словарь.

business_connection_id - значение при подключении бота - Business ID - отображается в каналах. Следует передавать, если в параметрах передается токен бота и надо отправить через подключенный к боту пользовательский аккаунт Пример передачи параметра: entities = [{"offset":0,"length":5,"type":"bold"},{"offset":6,"length":4,"type":"text_link","url":"https://salebot.zmservice.ru"},{"offset":11,"length":9,"type":"strikethrough"},{"offset":21,"length":6,"type":"spoiler"},{"offset":29,"length":12,"type":"code"}] В примере показан только словарь, при этом сама переменная с текстом сообщения задана в переменной.

Редактировать текст в сообщении Telegram: tg_edit_message_text()

tg_edit_message_text(platform_id, message_id, text, reply_markup, parse_mode, disable_web_page_preview, entities) Параметры: ! platform_id — идентификатор клиента в Telegram, которому необходимо прислать сообщение *

! message_id - идентификатор сообщения, которое необходимо отредактировать. Предварительно id нужно сохранять при отправке

! text - текст сообщения reply_markup — настройки кнопок **

parse_mode — выделение текста в описании жирным или курсивом ***. Может иметь значения html, markdown, markdownV2.. Может иметь значения html, markdown, markdownV2.

disable_web_page_preview - отобразить превью ссылки. Чтобы отключить передайте 1, иначе 0 или оставьте пустое значение “”

entities — c ним вы можете просто копировать сверстанный текст со всеми особенностями и просто указать с какого символа по какой он будет отображаться с тем или иным шрифтом. Пример можете подсмотреть в tg_request в соответствующем поле. В параметре должен быть словарь.

Отправить реакцию на сообщение tg_set_reaction(platform_id, message_id, reaction)

! platform_id - идентификатор чата в телеграмм

! message_id - идентификатор сообщения

! reaction - передается необходимая реакция строкой

Пример:

Редактировать описание к вложению: tg_edit_message_caption()

tg_edit_message_caption(platform_id, message_id, caption, reply_markup, parse_mode, entities, show_caption_above_media) Параметры: ! platform_id — идентификатор клиента в Telegram, которому необходимо прислать сообщение *

! message_id - идентификатор сообщения, которое необходимо отредактировать

! caption- текст описания

reply_markup — настройки кнопок **

parse_mode — выделение текста в описании жирным или курсивом ***. Может иметь значения html, markdown, markdownV2.

entities — c ним вы можете просто копировать сверстанный текст со всеми особенностями и просто указать с какого символа по какой он будет отображаться с тем или иным шрифтом. Пример можете подсмотреть в tg_request в соответствующем поле. В параметре должен быть словарь.

show_caption_above_media - принимает значение True, если указать этот параметр, то текст сообщения будет расположен над вложением Пример передачи параметра: entities = [{"offset":0,"length":5,"type":"bold"},{"offset":6,"length":4,"type":"text_link","url":"https://salebot.zmservice.ru"},{"offset":11,"length":9,"type":"strikethrough"},{"offset":21,"length":6,"type":"spoiler"},{"offset":29,"length":12,"type":"code"}] В примере показан только словарь, при этом сама переменная с текстом сообщения задана в переменной.

Редактировать медиа вложения в сообщении: tg_edit_message_media()

tg_edit_message_media(platform_id, message_id, media, reply_markup) Параметры: ! platform_id — идентификатор клиента в Telegram, которому необходимо прислать сообщение * ! message_id - идентификатор сообщения, которое необходимо отредактировать ! media- словарь, описывающий медиа-файл:

Пример словаря в формате JSON для смены ранее отправленного фото: media = '{"type": "photo", "media": "<файл для отправки>"}'

где в качестве <файл для отправки> рекомендуется указать file_id, полученный с помощью полного вебхука от Telegram

Подробнее параметры для словаря описаны в официальной документации Telegram.

reply_markup — настройки кнопок **

Редактировать инлайн-клавиатуру в сообщении: tg_edit_message_reply_markup()

tg_edit_message_reply_markup(platform_id, message_id, reply_markup) Параметры: ! platform_id — идентификатор клиента в Telegram, которому необходимо прислать сообщение * ! message_id - идентификатор сообщения, которое необходимо отредактировать ! reply_markup — настройки кнопок *

Редактировать можно только инлайн-клавиатуру.

Пример редактирования сообщений с помощью API Telegram

Ниже в этой статье можно ознакомится с подробным примером работы с функциями API Telegram для редактирования сообщений

Копировать сообщение с помощью API Telegram: tg_copy_message()

tg_copy_message(platform_id, from_chat_id, message_id, reply_to_message_id, reply_markup, parse_mode, protect_content, disable_notification, caption, message_thread_id, entities, show_caption_above_media)

Параметры: ! platform_id — идентификатор группы в Telegram, В КОТОРЫЙ будем копировать сообщение * ! from_chat_id - идентификатор группы в Telegram, ИЗ КОТОРОЙ будем копировать сообщение * ! message_id - идентификатор сообщения, которое необходимо скопировать reply_to_message_id - идентификатор исходного сообщения, если копируемое сообщение является комментарием reply_markup — настройки кнопок ** parse_mode — выделение текста в описании жирным или курсивом ***. Может иметь значения html, markdown, markdownV2. protect_content — признак защиты контента от копирования. Чтобы включить передайте любое значение, кроме 0, False и пустых кавычек '' disable_notification — признак отправки сообщения со звуковым уведомлением (по умолчанию 0) 1 - отключить уведомление при получении, 0 - передать с уведомлением caption - описание до 1024 символов

message_thread_id — идентификатор темы (доступно для супергрупп при наличии функционала форума) entities — c ним вы можете просто копировать сверстанный текст со всеми особенностями и просто указать с какого символа по какой он будет отображаться с тем или иным шрифтом. Пример можете подсмотреть в tg_request в соответствующем поле. В параметре должен быть словарь.

show_caption_above_media - принимает значение True, если указать этот параметр, то текст сообщения будет расположен над вложением Пример передачи параметра: entities = [{"offset":0,"length":5,"type":"bold"},{"offset":6,"length":4,"type":"text_link","url":"https://salebot.zmservice.ru"},{"offset":11,"length":9,"type":"strikethrough"},{"offset":21,"length":6,"type":"spoiler"},{"offset":29,"length":12,"type":"code"}] В примере показан только словарь, при этом сама переменная с текстом сообщения задана в переменной.

Пример копирования сообщения с помощью API Telegram

Ниже в этой статье можно ознакомится с подробным примером работы с функцией API Telegram для копирования сообщения

Переслать сообщение с помощью API Telegram: tg_forward_message()

tg_forward_message(platform_id, from_chat_id, message_id, protect_content, disable_notification, message_thread_id)

Параметры:

! platform_id — идентификатор клиента в Telegram, КУДА необходимо переслать сообщение *

! from_chat_id — идентификатор клиента в Telegram, ОТКУДА необходимо переслать сообщение *

! message_id — идентификатор пересылаемого сообщения

protect_content — признак защиты контента от копирования. Чтобы включить передайте любое значение, кроме 0, False и пустых кавычек ''

disable_notification — признак отправки сообщения со звуковым уведомлением (по умолчанию 0) 1 - отключить уведомление при получении, 0 - передать с уведомлением

message_thread_id — идентификатор темы (доступно для супергрупп при наличии функционала форума)

Удалить сообщение с помощью API Telegram: tg_delete_message()

! Используйте этот метод для удаления сообщения, в том числе служебного, со следующими ограничениями:

  • Сообщение может быть удалено только в том случае, если оно было отправлено менее 48 часов назад.

  • Сообщение с кубиками в приватном чате можно удалить только в том случае, если оно было отправлено более 24 часов назад.

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

  • Боты могут удалять входящие сообщения в приватных чатах.

  • Боты с разрешениями can_post_messages могут удалять исходящие сообщения в каналах.

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

  • Если у бота есть разрешение can_delete_messages в супергруппе или канале, он может удалить там любое сообщение.

tg_delete_message(platform_id, message_id)

Параметры:

! platform_id — идентификатор клиента в Telegram * ! message_id - идентификатор сообщения, которое необходимо удалить

Удалить несколько сообщений с помощью функции tg_delete_messages()

tg_delete_messages(platform_id, message_ids)

! Используйте этот метод для удаления сообщения, в том числе служебного, со следующими ограничениями:

  • Сообщение может быть удалено только в том случае, если оно было отправлено менее 48 часов назад.

  • Сообщение с кубиками в приватном чате можно удалить только в том случае, если оно было отправлено более 24 часов назад.

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

  • Боты могут удалять входящие сообщения в приватных чатах.

  • Боты с разрешениями can_post_messages могут удалять исходящие сообщения в каналах.

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

  • Если у бота есть разрешение can_delete_messages в супергруппе или канале, он может удалить там любое сообщение.

Параметры:

platform_id — идентификатор клиента в Telegram

message_ids - массив с идентификаторами сообщений, которые необходимо удалить. Максимум 100 элементов

Функции для отправки сообщения

Пример отправки сообщения с помощью функции API Telegram

Рассмотрим простой пример с набором обязательных параметров:

В качестве platform_id указывается идентификатор конкретного клиента

Тот же пример, но с использованием переменных:

В данном примере в переменной soob будет содержаться ответ сервера после отправки сообщения.

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

Очень часто возникают сложности в использовании всех параметров. Давайте рассмотрим такой пример:

  • для начала объявите все параметры, используемые в функции. Не забывайте, что параметры можно передать не только значением, но и переменными, что чаще более удобно и наглядно. Такие переменные, как platform_id и client_message_id Вы можете получить в карточке клиента platform_id — идентификатор клиента в Telegram, которому необходимо прислать сообщение * >Будем отвечать в том же чате, где пишет клиент

    text - текст сообщения. >Используем форматирование текста - например, выделение жирным

    client_message_id - идентификатор сообщения, которое необходимо процитировать >В чатах эта переменная получает свое значение автоматически. reply_markup — настройки кнопок **. >Присвоим в переменную opts parse_mode — выделение текста в описании жирным или курсивом ***. Может иметь значения html, markdown, markdownV2. Используемые символы для форматирования текста сообщения описаны тут >Используем markdown. disable_web_page_preview - отобразить превью ссылки. Чтобы отключить передайте 1, иначе 0 или оставьте пустое значение “” >Мы можем передать любое значение, поскольку в тексте сообщения не указываем ссылку protect_content — признак защиты контента от копирования. Чтобы включить передайте любое значение, кроме 0, False и пустых кавычек '' >Нам не требуется защита контента передадим '' disable_notification — признак отправки сообщения с уведомлением (по умолчанию 0) 0 - отключить уведомление при получении, 1 - передать с уведомлением >Уведомление - это всплывающее окно с содержимым текста сообщения. Давайте включим

  • Далее собираем функцию. Не забывайте присваивать функцию переменной - это позволит отследить статус отправки сообщения

Смотрим, что у нас получилось: После того, как клиент написал нам ключевое слово test, мы отвечаем ему, цитируя его сообщение

При этом в переменной soob видим следующий ответ сервера:

В ok мы как раз видим статус отправки, далее содержится информация о данном сообщении - его id, данные отправителя, содержимое отправления. Пример с передачей параметра entities Исходную строку можно поместить в переменную, как показано ниже: text = "йцуав цйуа йуцайукап укцацу цйува31уцвац" Параметр записываете в формате словаря с данными и указываете необходимое вам форматирование с указанием шрифтов. entities = [{"offset":0,"length":5,"type":"bold"},{"offset":6,"length":4,"type":"text_link","url":"https://salebot.zmservice.ru"},{"offset":11,"length":9,"type":"strikethrough"},{"offset":21,"length":6,"type":"spoiler"},{"offset":29,"length":12,"type":"code"}] Передайте параметр последним в используемой функции. Параметр можно передавать как в функции tg_send_message так и в функции tg_send_message_1 x = tg_send_message(platform_id, text, None, None, None, False, False, False, None, entities)

Пример редактирования сообщений с помощью API Telegram

Итак, отправим себе сообщение с инлайн-клавиатурой:

далее отредактируем текст сообщения:

теперь отредактируем кнопки:

Попробуем отредактирвать сообщение с картинкой. Для этого отправим сообщение с картинкой и сохраним идентификатор отправленного сообщения. О том как получить ссылку на картинку подробно описано тут:

Редактируем картинку и описание:

Пример копирования сообщения с помощью API Telegram

Отправим сообщение и сохраним его идентификатор:

Скопируем ранее отправленное сообщение:

Last updated