Как удалить сообщение в Телеграмме telebot

Для того чтобы удалить или отредактировать сообщение телеграм бота необходимо знать его id.

Для того чтобы отследить id которое телеграм присвоил сообшению необходимо при генерации из внешнего скрипта (СКРИПТ1.php) указать два дополнительных ключа:

  • $return_mas[‘msg_insert_id_url’] = ‘http://ХОСТ/ПУТЬ_К_СКРИПТУ2/СКРИПТ2.php’;
  • $return_mas[‘msg_insert_unic’] = УНИКАЛЬНОЕ_ЗНАЧЕНИЕ;//Например, time()

Где, СКРИПТ2.php — Ваш php скрипт на который редактор отправит данные после того как телеграм оповестит его какой id он присвоил вашему сообщению.

УНИКАЛЬНОЕ_ЗНАЧЕНИЕ — необходимо добавить чтобы понимать какой id присланный редактором какому из ваших сгенерированных сообщений соответствует.

СКРИПТ2.php получит от редакора массив data в формате json, в котором будут данные сообщения. Данные будут в массиве, потому что если вы отправили из внешнего сообщение с вложениями (например, картинками) — то ваше сообщение разобъется на несколько и каждому изображению телеграм присвоит отдельный id

Создание телеграм-ботов на python (telebot) #3 / Объект message, дата сообщения, данные пользователя

Пример данных, которые получит от редактора файл СКРИПТ2.php:

Msg edit 1.png

Демо файла ФАЙЛ.php, который принимает id сообщения, сгенерированного неким вашим скриптом СКРИПТ1.php — пример написан под библиотеку Ebot Server и кладется в папку, например, /all/ebot_server1/modules/url_resp/scripts, но может вполне отработать и независимо от библиотеки (в этом случае удалите подключенные файлы и укажите значения таких переменных как $bot_id и т.д. самостоятельно). Демо пример удалит сообщение, которое сгенерировал СКРИПТ1.php

Источник: ebot.one

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

В этой библиотеки сообщения об удаление нет согласно ( dir(telebot.TeleBot) ). Удалить можете с помощью API телеграмма:

import requests s = requests.Session() s.get(‘https://api.telegram.org/bot/deletemessage?message_id=»» Use this method to delete message. Returns True on success. :param chat_id: in which chat to delete :param message_id: which message to delete :return: API reply. «»» return apihelper.delete_message(self.token, chat_id, message_id)

Еще по теме:  Как узнать название канала в Телеграмме по ссылке

Самому нужно было, поэтому наткнулся на твой вопрос, уже попробовал использовать, работает.

loading_id = bot.send_document(message.chat.id, loading) bot.delete_message(message.chat.id, loading_id.message.id)

Источник: husl.ru

Ведение публикаций в Telegram-канале с python-telegram-bot.

Отправка/редактирование/удаление сообщений в Telegram-канале.

Если при помощи python-telegram-bot планируется только вести Telegram-канал (например, публиковать анонсы новых статей сайта или их обновления), то ставить полностью библиотеку со всеми зависимостями не обязательно. Достаточно установить чистый интерфейс Python для Telegram Bot API python-telegram-bot-raw .

Редактирование, удаление, перенаправление сообщений в Telegram ботах

Так как TelegramBot нужен для ведения Telegram-канала, следовательно он не будет принимать каких либо сообщений, а будет только отправлять, удалять или редактировать уже отправленные сообщения в Telegram-канал. Для таких задач высокоуровневый интерфейс расширения telegram.ext не нужен. Расширение telegram.ext в основном используется для удобной обработки входящих сообщений, создания вебхука или регулярных обновлений бота и т.д.

Для начала необходимо создать Telegram-канал:

  • Для создания канала со смартфона необходимо нажать на значок с карандашом. Он отображается в окне со списком переписок и каналов. После этого нажмите на кнопку Создать канал .
  • В десктопной версии Telegram необходимо зайти в меню, а затем нажать на кнопку Создать канал .

После этого Telegram предложит написать имя канала, заполнить описание и поставить аватарку. Заполнять описание и выбирать картинку на этом этапе не обязательно, а вот без названия дальше работать с каналом не получится. Обратите внимание, что имя канала, описание и аватарку можно изменить в любой момент.

Затем выбираем тип канала: публичный или частный:

  • Публичный канал можно найти через поиск, а подписаться на него может любой пользователь Telegram.
  • Частный канал доступен только по ссылке-приглашению, то есть его нельзя найти через поиск.

Выбираем публичный, придумываем и вводим ссылку, по которой можно будет попасть на канал. Эта ссылка, также служит в качестве chat_id , на нее отправляются новые сообщения.

Еще по теме:  Как сделать бесконечную ссылку в ТГ

Осталось только добавить этого бота в качестве администратора канала (для Desktop клиента):

  • Открываем канал, жмем три точки и выбираем «Информация канале»;
  • В открывшемся окне опять три точки и выбираем «Управление каналом»;
  • Здесь выбираем «Администраторы». В списке ботов не будет.
  • В поиске вводим имя созданного бота и жмем «Добавить администратора»;
  • Добавить бота может только создатель канала.
  • Другие администраторы не могут добавлять ботов в каналы.
  • Канал может быть публичным или частным (не имеет значения)

Содержание:

  • Отправляем сообщение в Telegram-канал;
  • Редактируем сообщение в Telegram-канале;
  • Удаляем сообщение в Telegram-канале;
  • Закрепляем/открепляем сообщение в Telegram-канале;
  • Изменение название и описание канала.

Отправляем сообщение в Telegram-канал.

Например, есть сайт. При публикации очередной статьи/материала можно выполнять представленный ниже код, для отправки сообщения в Telegram-канал. Полученный в результате отправки номер сообщения можно хранить в БД сайта, для случаев редактирования или удаления статьи/материала сайта (отправки сообщения в канал об обновлении статьи или ее удаления).

После отправки сообщения, объект send будет содержать номер сообщения send.message_id в контексте этого канала. Этот номер можно использовать для редактирования или удаления отправленного сообщения.

Редактируем сообщение в Telegram-канале.

Для того, чтобы отредактировать отправленное сообщение в Telegram-канале, необходим его порядковый номер message_id в контексте этого канала, полученный при его отправке.

Метод bot.edit_мessage_text() используется для редактирования текстовых и игровых сообщений. В случае успеха, если отредактированное сообщение не является встроенным сообщением, возвращается отредактированное сообщение, в противном случае возвращается True .

Удаляем сообщение в Telegram-канале.

Для того, чтобы удалить сообщение в Telegram-канале, необходим его порядковый номер message_id в контексте этого канала, полученный при его отправке.

Внимание! Сообщение может быть удалено ботом только в том случае, если оно было отправлено менее 48 часов назад. После 48 часов сообщение может удалить только реальный пользователь (администратор канала), вручную.

Метод bot.delete_message() используется для удаления сообщения, в том числе служебного, со следующими ограничениями:

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

Возвращает True в случае успеха.

Закрепляем/открепляем сообщение в Telegram-канале.

Для того, чтобы закрепить/открепить сообщение в Telegram-канале, необходим его порядковый номер message_id в контексте этого канала, полученный при его отправке.

  • Метод bot.pin_chat_message(chat_id, message_id) — закрепляет сообщение для пользователей канала;
  • Метод bot.unpin_chat_message(chat_id, message_id) — открепляет сообщение для пользователей канала.

Используйте эти методы, чтобы добавить сообщение в список закрепленных сообщений в чате или открепить его. Если чат не является приватным, бот должен быть администратором в чате и должен иметь права администратора ‘canpinmessages’.

Пример закрепления сообщения в канале Telegram:

Изменение название и описание канала.

Используйте метод bot.set_chat_title() , чтобы изменить название чата/канала. Названия не могут быть изменены для приватных чатов/групп. Чтобы это работало, бот должен быть администратором в чате и иметь соответствующие права администратора. Возвращает True в случае успеха.

Используйте метод bot.set_chat_description() , чтобы изменить описание группы, супергруппы или канала. Чтобы это работало, бот должен быть администратором в чате и иметь соответствующие права администратора. Возвращает True в случае успеха.

Пример изменения названия и описания канала Telegram:

Источник: docs-python.ru

Рейтинг
( Пока оценок нет )
Загрузка ...