Как отправлять сообщения с помощью Telegram Business аккаунта

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 указывает идентификатор конкретного клиента.

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

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

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

Часто возникают сложности при использовании всех параметров. Рассмотрим следующий пример:

  • Сначала объявите все параметры, используемые в функции. Помните, параметры можно передавать не только как значения, но и как переменные, что часто удобнее и понятнее. Такие переменные, как platform_id и client_message_id, можно получить из карточки профиля клиента.
    platform_id — ID клиента Telegram, которому должно быть отправлено сообщение *\ >Мы ответим в том же чате, где пишет клиент

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

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

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

Вот что у нас получилось:

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

В ok мы видим статус отправки; далее идет информация о самом сообщении — его ID, данные отправителя и содержимое.

Пример с параметром entities

Вы можете хранить исходную строку в переменной, как показано ниже:

text = "qwert asdfg zxcvb poiuy lkjhg 12345"

Параметр следует записывать как словарь с данными и указать желаемое форматирование, задав шрифты:

entities = [{"offset":0,"length":5,"type":"bold"},{"offset":6,"length":4,"type":"text_link","url":"`` https://mavibot.ai"},{"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)

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

text = "Первая строка текста" + "\n" + "Вторая строка текста" + "\n" + "Третья строка"

Как отправить сообщение, указав конкретного Telegram бота

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)

Пример передачи параметра:
entities = [{"offset":0,"length":5,"type":"bold"},{"offset":6,"length":4,"type":"text_link","url":"https://mavibot.ai"},{"offset":11,"length":9,"type":"strikethrough"},{"offset":21,"length":6,"type":"spoiler"},{"offset":29,"length":12,"type":"code"}]

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

Как редактировать текст в сообщении Telegram

Обратите внимание!

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

Временной интервал, в течение которого разрешено редактирование сообщения, определяется самим мессенджером и зависит от нагрузки/активности вашего бота; для редактирования он может быть сокращен.

По данным технической поддержки мессенджера, оптимальное время для редактирования сообщения составляет 48 часов.

tg_edit_message_text(platform_id, message_id, text, reply_markup, parse_mode, disable_web_page_preview, entities)

Как отправить реакцию на сообщение

tg_set_reaction(platform_id, message_id, reaction)

Пример кода для копирования:

react = tg_set_reaction(platform_id, 1556, '👌')

Пример в калькуляторе:

Как редактировать описание вложения

tg_edit_message_caption(platform_id, message_id, caption, reply_markup, parse_mode, entities, show_caption_above_media)

Как редактировать медиавложения в сообщении

Как редактировать инлайн-клавиатуру в сообщении

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

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

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

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)

Как переслать сообщение

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

Как удалить сообщение

tg_delete_message(platform_id, message_id)

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

  • Сообщение можно удалить только в том случае, если оно было отправлено менее 48 часов назад.
  • Сообщения с игральными костями в личном чате можно удалить только в том случае, если они были отправлены более 24 часов назад.
  • Боты могут удалять исходящие сообщения в личных чатах, группах и супергруппах.
  • Боты могут удалять входящие сообщения в личных чатах.
  • Боты с разрешением can_post_messages могут удалять исходящие сообщения в каналах.
  • Если бот является администратором группы, он может удалить в ней любое сообщение.
  • Если бот имеет разрешение can_delete_messages в супергруппе или канале, он может удалить там любое сообщение.

Как удалить несколько сообщений

tg_delete_messages(platform_id, message_ids)

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

  • Сообщение можно удалить только в том случае, если оно было отправлено менее 48 часов назад.
  • Сообщения с игральными костями в личном чате можно удалить только в том случае, если они были отправлены более 24 часов назад.
  • Боты могут удалять исходящие сообщения в личных чатах, группах и супергруппах.
  • Боты могут удалять входящие сообщения в личных чатах.
  • Боты с разрешением can_post_messages могут удалять исходящие сообщения в каналах.
  • Если бот является администратором группы, он может удалить в ней любое сообщение.
  • Если бот имеет разрешение can_delete_messages в супергруппе или канале, он может удалить там любое сообщение.

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

Пример 1

/*Удобно заранее определить текст в переменной*/
text='Пишу-пишу-пишу текст'
/*Функция отправки сообщения*/
soob=tg_send_message(platform_id, text)
/*Сохраняем ID отправленного сообщения*/
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) 


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

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

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

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

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

Теперь отредактируем изображение и его описание:

/*Удобно заранее определить параметры в переменной.*/
text='Какой пакет вы хотели бы выбрать?'
opts = {"inline_keyboard": [[{"text": "Пакет 1","callback_data":1}, {"text": "Пакет 2","callback_data":2}]]}
/*Функция отправки сообщения*/
soob=tg_send_message(platform_id, text, None, opts)
/*Сохраняем ID отправленного сообщения*/
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", "Это изображение")
/*Сохраняем ID отправленного сообщения*/
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, 'Это Я!')

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

Отправим сообщение и сохраним его ID.

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

/*Удобно заранее определить параметры в переменной.*/
text='Какой пакет вы хотели бы выбрать?'
opts = {"inline_keyboard": [[{"text": "Пакет 1","callback_data":1}, {"text": "Пакет 2","callback_data":2}]]}
/*Функция отправки сообщения*/
soob=tg_send_message(platform_id, text, None, opts)
/*Сохраняем ID отправленного сообщения*/
soob_id=soob['result']['message_id']


/*Копируем отправленное сообщение*/
tg_copy_message('5081438490', '1840834360', soob_id, None, opts, None, None, 1)