Функции для отправки и редактирования сообщений
Описание
Пример
Пример кода для копирования
Видеоразбор
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)
Параметры:
! text - текст сообщения
client_message_id - идентификатор сообщения, которое необходимо процитировать
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 в соответствующем поле. В параметре должен быть словарь. Пример можно посмотреть во вкладке с примером.
Рассмотрим простой пример с набором обязательных параметров:

В качестве 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 видим следующий ответ сервера:

Ответ сервера после отправки сообщения функцией API
В 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
)
Пример 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)
Чтобы в переменную записать текст с переносами строк, укажите значение следующим образом:
text = "Текст первой строки" + "\n" + "Текст второй строки" + "\n" +"Третья строка"
Описание
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)
Параметры:
! token — токен Telegram-бота, полученный в BotFather
! text - текст сообщения
client_message_id - идентификатор сообщения, которое необходимо процитировать
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 в соответствующем поле. В параметре должен быть словарь.
Пример передачи параметра:
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_text(platform_id, message_id, text, reply_markup, parse_mode, disable_web_page_preview)
Параметры:
! platform_id — идентификатор клиента в Telegram, которому необходимо прислать сообщение *
! message_id - идентификатор сообщения, которое необходимо отредактировать. Предварительно id нужно сохранять при отправке
! text - текст сообщения
reply_markup — настройки кнопок **
parse_mode — выделение текста в описании жирным или курсивом ***. Может иметь значения html, markdown, markdownV2.. Может иметь значения html, markdown, markdownV2.
disable_web_page_preview - отобразить превью ссылки. Чтобы отключить передайте 1, иначе 0 или оставьте пустое значение “”
Редактирование описания:
tg_edit_message_caption(platform_id, message_id, caption, reply_markup, parse_mode, entities)
Параметры:
! platform_id — идентификатор клиента в Telegram, которому необходимо прислать сообщение *
! message_id - идентификатор сообщения, которое необходимо отредактировать
! caption- текст описания
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"}]
В примере показан только словарь, при этом сама переменная с текстом сообщения задана в переменной.
Редактирование медиавложения в сообщении:
tg_edit_message_media(platform_id, message_id, media, reply_markup)
Параметры:
! platform_id — идентификатор клиента в Telegram, которому необходимо прислать сообщение *
! message_id - идентификатор сообщения, которое необходимо отредактировать
! media- словарь, описывающий медиа-файл:
'{"type": "photo", "media": "<файл для отправки>"}',
где в качестве <файл для отправки> рекомендуется указать file_id, полученный через @RawDataBot
reply_markup — настройки кнопок **
Редактировать можно только инлайн-клавиатуру в сообщении:
Итак, отправим себе сообщение с инлайн-клавиатурой:

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

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

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

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

/*Параметры удобно предварительно прописывать в переменной*/
text='Какой тариф желаете выбрать?'
opts = {"inline_keyboard": [[{"text": "Пакет 1","callback_data":1}, {"text": "Пакет 2","callback_data":2}]]}
/*Функция Отправить сообщение*/
soob=tg_send_message(platform_id, text, None, opts)
/*Сохраняем ид отправленного сообщения*/
soob_id=soob['result']['message_id']
/*Редактируем сообщение*/
text='Какой тариф Вас заинтересовал?'
tg_edit_message_text(platform_id, soob_id, text, opts)
/*Редактируем инлайн-клавиатуру*/
opts = {"inline_keyboard": [[{"text": "Стандарт","callback_data":1}, {"text": "Премиум","callback_data":2}]]}
tg_edit_message_reply_markup(platform_id, soob_id, opts)
/*Отправляем картинку с описанием*/
soob=tg_send_photo(platform_id, "AgACAgIAAxkBAAIPpWO4T7jhOgYHq6uR8rjnq9rIvBs-AAJlwDEb5fHASaGdhzgWjyn7AQADAgADeAADLQQ", "Это картинка")
/*Сохраняем ид отправленного сообщения*/
soob_id=soob['result']['message_id']
/*Редактируем картинку*/
media='{"type": "photo", "media": "AgACAgIAAxkBAAIPrmO4UiH7Tazqn-3IbFVzPKNsVEZmAAJ1wDEb5fHASWcNXKah-egvAQADAgADeQADLQQ"}'
tg_edit_message_media(platform_id, soob_id, media)
/*Редактируем описание к картинке*/
tg_edit_message_caption(platform_id, soob_id, 'Вот оня Я!')
Описание
Пример
Пример кода для копирования
Видеоразбор
tg_copy_message(platform_id, from_chat_id, message_id, reply_to_message_id, reply_markup, parse_mode, protect_content, disable_notification, message_thread_id, entities)
Параметры:
! 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 - передать с уведомлением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"}]
В примере показан только словарь, при этом сама переменная с текстом сообщения задана в переменной.Отправим сообщение и сохраним его идентификатор:

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

/*Параметры удобно предварительно прописывать в переменной*/
text='Какой тариф желаете выбрать?'
opts = {"inline_keyboard": [[{"text": "Пакет 1","callback_data":1}, {"text": "Пакет 2","callback_data":2}]]}
/*Функция Отправить сообщение*/
soob=tg_send_message(platform_id, text, None, opts)
/*Сохраняем ид отправленного сообщения*/
soob_id=soob['result']['message_id']
/*Копирование отправленного сообщения*/
tg_copy_message('5081438490', '1840834360', soob_id, None, opts, None, None, 1)
Описание
tg_forward_message(platform_id, from_chat_id, message_id, protect_content, disable_notification, message_thread_id)
Параметры:
! message_id — идентификатор пересылаемого сообщения
protect_content — признак защиты контента от копирования. Чтобы включить передайте любое значение, кроме 0, False и пустых кавычек ''
disable_notification — признак отправки сообщения со звуковым уведомлением (по умолчанию 0)
1 - отключить уведомление при получении, 0 - передать с уведомлением
message_thread_id — идентификатор темы (доступно для супергрупп при наличии функционала форума)
Описание
Используйте этот метод для удаления сообщения, в том числе служебного, со следующими ограничениями:

- Сообщение может быть удалено только в том случае, если оно было отправлено менее 48 часов назад.
- Сообщение с кубиками в приватном чате можно удалить только в том случае, если оно было отправлено более 24 часов назад.
- Боты могут удалять исходящие сообщения в приватных чатах, группах и супергруппах.
- Боты могут удалять входящие сообщения в приватных чатах.
- Боты с разрешениями can_post_messages могут удалять исходящие сообщения в каналах.
- Если бот является администратором группы, он может удалить там любое сообщение.
- Если у бота есть разрешение can_delete_messages в супергруппе или канале, он может удалить там любое сообщение.
tg_delete_message(platform_id, message_id)
Параметры:
! platform_id — идентификатор клиента в Telegram *
! message_id - идентификатор сообщения, которое необходимо удалить