Функции для отправки и редактирования сообщений
Описание функций 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 в соответствующем поле. В параметре должен быть словарь. Пример можно посмотреть во вкладке с примером.
Видеоинструкция
Отправить сообщение с указанием конкретного бота в 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 - отображается в каналах. Следует передавать, если в параметрах передается токен бота и надо отправить через подключенный к боту пользовательский аккаунт
Редактировать текст в сообщении Telegram
Обращаем внимание!
Функция для редактирования сообщений доступна только для новых и вновь отправленных сообщений.
Время, в течение которого доступно редактирование сообщения, определяется самим мессенджером, причем зависит от нагруженности/активности вашего бота и может быть сокращено для редактирования.
Оптимальное время для редактирования сообщения, как указывает техническая поддержка мессенджера, 48 часов.
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()
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 в соответствующем поле. В параметре должен быть словарь.
Пример передачи параметра:
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"}]
В примере показан только словарь, при этом сама переменная с текстом сообщения задана в переменной.
show_caption_above_media
принимает значение True, если указать этот параметр, то текст сообщения будет расположен над вложением
Редактировать медиа вложения в сообщении
tg_edit_message_media()
! platform_id
идентификатор клиента в Telegram, которому необходимо прислать сообщение *
! message_id
идентификатор сообщения, которое необходимо отредактировать. Предварительно id нужно сохранять при отправке
! media
словарь, описывающий медиа-файл:
Пример словаря в формате JSON для смены ранее отправленного фото:
media =
'{"type": "photo", "media": "<файл для отправки>"}'
где в качестве <файл для отправки> рекомендуется указать file_id, полученный с помощью полного вебхука от Telegram
Подробнее параметры для словаря описаны в официальной документации Telegram.
reply_markup
настройки кнопок **
Редактировать инлайн-клавиатуру в сообщении
tg_edit_message_reply_markup()
Редактировать можно только инлайн-клавиатуру.
Копировать сообщение
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 в соответствующем поле. В параметре должен быть словарь.
Пример передачи параметра:
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"}]
В примере показан только словарь, при этом сама переменная с текстом сообщения задана в переменной.
show_caption_above_media
принимает значение True, если указать этот параметр, то текст сообщения будет расположен над вложением
Переслать сообщение
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
идентификатор темы (доступно для супергрупп при наличии функционала форума)
Удалить сообщение
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
Пример 1
/*Текст удобно предварительно прописывать в переменной*/
text='Пишем-пишем-пишем текст'
/*Функция Отправить сообщение*/
soob=tg_send_message(platform_id, text)
/*Сохраняем ид отправленного сообщения*/
soob_id=soob['result']['message_id']
Пример 2
id_group=-1001847103100
text='Тестируем отправку сообщения API-методом. Например, *жирный текст*'
opts = {"inline_keyboard": [[{"text": "👍","callback_data":1}, {"text": "👎","callback_data":2}]]}
disable_web_page_preview=1
protect_content=''
disable_notification=1
parse_mode='markdown'
soob=tg_send_message(id_group, text,client_message_id, opts, parse_mode, disable_web_page_preview, protect_content, disable_notification)
Пример редактирования сообщений с помощью API Telegram
Итак, отправим себе сообщение с инлайн-клавиатурой:

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

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

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

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

Пример копирования сообщения с помощью API Telegram
Отправим сообщение и сохраним его идентификатор:

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

Last updated
Was this helpful?