Класс types.Message является основным классом в библиотеке aiogram для представления сообщений в Telegram. Он содержит различные методы и атрибуты для работы с сообщениями.
Некоторые из наиболее часто используемых атрибутов и методов класса `types.Message`:
- message_id : Уникальный идентификатор сообщения.
- from_user : Объект types.User , представляющий отправителя сообщения.
- date : Дата и время отправки сообщения.
- chat : Объект `types.Chat`, представляющий чат, в котором было отправлено сообщение.
- forward_from : Объект types.User , представляющий отправителя оригинального сообщения, если оно было переслано.
- forward_from_chat : Объект types.Chat , представляющий чат, из которого было переслано оригинальное сообщение, если оно было переслано из группы или канала.
- forward_from_message_id : Идентификатор оригинального сообщения, если оно было переслано.
- text : Текст сообщения.
- entities : Список объектов types.MessageEntity , представляющих различные сущности в тексте сообщения, такие как упоминания пользователей, хэштеги и т.д.
- reply_to_message : Объект types.Message , представляющий сообщение, на которое данное сообщение является ответом.
- reply_markup : Объект `types.InlineKeyboardMarkup` или `types.ReplyKeyboardMarkup`, представляющий клавиатуру, привязанную к сообщению.
- delete() : Метод для удаления сообщения.
- edit_text() : Метод для редактирования текста сообщения.
- reply() : Метод для отправки ответного сообщения.
Методы, которые позволяют отправлять сообщения
Для отправки текстового сообщения в библиотеке aiogram можно использовать несколько методов. Некоторые из них:
Отправка уведомлений в телеграм с помощью Github Actions
- bot.send_message(chat_id, text) : Этот метод позволяет отправить текстовое сообщение в указанный чат. Необходимо указать идентификатор чата ( chat_id ) и текст сообщения ( text ).
await bot.send_message(chat_id, «Привет, мир!»)
- message.answer(text) , который позволяет отправить ответное сообщение на текущее сообщение. Этот метод является альтернативой методу message.reply(text) .
await message.answer(«Спасибо за ваше сообщение!»)
Метод message.answer() автоматически определяет идентификатор чата и идентификатор сообщения, на которое нужно ответить, поэтому вам не нужно указывать их явно.
- message.reply(text) : Этот метод позволяет отправить ответное сообщение на текущее сообщение. Необходимо указать текст ответного сообщения ( text ).
await message.reply(«Спасибо за ваше сообщение!»)
- message.edit_text(text) : Этот метод позволяет отредактировать текст текущего сообщения. Необходимо указать новый текст сообщения ( text ).
await message.edit_text(«Новый текст сообщения»)
- bot.send_message(chat_id, text, reply_to_message_id) : Этот метод позволяет отправить текстовое сообщение в указанный чат в качестве ответа на другое сообщение. Необходимо указать идентификатор чата ( chat_id ), текст сообщения ( text ) и идентификатор сообщения, на которое данное сообщение будет ответом ( reply_to_message_id ).
await bot.send_message(chat_id, «Ответ на ваше сообщение», reply_to_message_id=message_id)
Различия между send_message, answer и reply
Метод bot.send_message отправляет сообщение в произвольный чат, который указывается в параметре chat_id . Метод answer() , позволяет отправить сообщение в ответ на предыдущее сообщение в текущем чате. При этом, сообщение, на которое дается ответ не пересылается. Метод reply() , позволяет отправить сообщение в ответ на предыдущее сообщение в текущем чате. Cообщение, на которое дается ответ также отправляется.
Пример готового бота, который умеет отправлять сообщения
В этом примере бот будет отвечать на команды /start и /help , а также на любые другие текстовые сообщения, отправленные пользователем. При получении команды /start он отправит приветственное сообщение, а при получении команды /help отправит справку о командах бота. Для всех остальных сообщений бот отправит эхо-ответ с содержимым полученного сообщения.
Просто замените ‘YOUR_BOT_TOKEN’ на фактический токен вашего бота, запустите скрипт, и ваш бот будет готов к работе. Вы можете добавить дополнительные команды и функциональность, чтобы адаптировать его под свои потребности.
Отправка других типов контента с помощью бота
В библиотеке aiogram вы можете отправлять различные типы контента помимо простого текста. Вот некоторые из наиболее распространенных типов контента, которые вы можете отправлять с помощью aiogram:
1. Фотографии: Метод send_photo используется для отправки фотографий. Вы можете указать путь к файлу фотографии на вашем сервере или использовать URL-адрес изображения в Интернете. Пример использования:
await bot.send_photo(chat_id, photo=open(‘photo.jpg’, ‘rb’), caption=’Красивая фотография’)
2. Аудио: Метод send_audio используется для отправки аудиофайлов. Вы можете указать путь к файлу аудио или использовать URL-адрес аудиофайла в Интернете. Пример использования:
await bot.send_audio(chat_id, audio=open(‘audio.mp3’, ‘rb’), caption=’Музыкальный трек’)
3. Документы: Метод `send_document` используется для отправки документов. Вы можете указать путь к файлу документа на вашем сервере или использовать URL-адрес документа в Интернете. Пример использования:
4. Видео: Метод send_video используется для отправки видеофайлов. Вы можете указать путь к файлу видео или использовать URL-адрес видеофайла в Интернете. Пример использования:
await bot.send_video(chat_id, video=open(‘video.mp4’, ‘rb’), caption=’Видео-ролик’)
5. Голосовые сообщения: Метод send_voice используется для отправки голосовых сообщений. Вы можете указать путь к файлу голосового сообщения на вашем сервере или использовать URL-адрес голосового сообщения в Интернете. Пример использования:
await bot.send_voice(chat_id, voice=open(‘voice.ogg’, ‘rb’), caption=’Голосовое сообщение’)
Пример реализации бота с возможностью отправки разного типа контента
В этом примере бот реагирует на различные команды ( /start , /text , /video , /audio , /document , /photo , /voice ). Когда пользователь отправляет одну из этих команд, бот отправляет соответствующий контент в ответ.
Просто замените ‘YOUR_BOT_TOKEN’ на фактический токен вашего бота, а также укажите пути к файлам видео, аудио, документа, фотографии и голосового сообщения. После этого запустите скрипт, и ваш бот будет готов к работе. Вы можете добавить дополнительные команды и функциональность, чтобы адаптировать его под свои потребности.
Примеры ботов, работающих с сообщениями
Бот, удаляющий два последних сообщения в чате
В этом примере бот реагирует на команду /delete_last . Когда пользователь отправляет эту команду, бот получает информацию о чате, а затем получает список последних двух сообщений в этом чате с помощью метода bot.get_chat_history() . Затем бот использует метод bot.delete_message() для удаления каждого из этих двух сообщений.
Просто замените ‘YOUR_BOT_TOKEN’ на фактический токен вашего бота. Запустите скрипт, и ваш бот будет готов к работе. Когда пользователь отправляет команду /delete_last , бот удалит два последних сообщения из чата.
Обратите внимание, что для удаления сообщений боту требуется разрешение на удаление сообщений в чате. Убедитесь, что ваш бот имеет соответствующие права и находится в чате, где он может выполнять операции удаления сообщений.
Бот, который в ответ на пересланное из другого чата сообщения, отправляет url ссылку на исходное сообщение
В этом примере бот проверяет, является ли полученное сообщение пересланным. Если это так, бот извлекает информацию об исходном чате и сообщении из свойства forward_from_chat и forward_from_message_id . Затем он создает URL-ссылку на исходное сообщение с помощью полученной информации. В ответ на пересланное сообщение, бот отправляет URL-ссылку, которая ведет к исходному чату и сообщению.
Просто замените ‘YOUR_BOT_TOKEN’ на фактический токен вашего бота. Запустите скрипт, и ваш бот будет готов к работе. Когда пользователь пересылает сообщение из другого чата, бот отправляет URL-ссылку на исходный чат и исходное сообщение в ответ.
Бот — фильтр ненормативной лексики
В этом примере бот реагирует на все сообщения в чате и проверяет наличие запрещенных слов из списка forbidden_words в тексте сообщения. Если хотя бы одно из запрещенных слов обнаружено, бот отправляет предупреждение о недопустимости ругательства.
Просто замените ‘YOUR_BOT_TOKEN’ на фактический токен вашего бота и расширьте список forbidden_words в соответствии с вашими требованиями. Запустите скрипт, и ваш бот будет готов к мониторингу сообщений и отправке предупреждений о ненормативной лексике.
Источник: victor-komlev.ru
Как эффективно удалить спамные ссылки в Телеграмме — вручную и автоматически
В Телеграме пользователи могут не только публиковать текстовые сообщения, фотографии и другие медиа, но и размещать ссылки на сторонние ресурсы. Если URL больше не нужен, то его допускается удалить. Рассмотрим пошаговую инструкцию, как удалить ненужные ссылки в Телеграмме.
Инструкция для Web Telegram
Через веб-клиент также можно удалить URL:
- Авторизоваться на официальном сайте Web Telegram.
- Дождаться загрузки главной страницы Телеграмм.
- В перечне чатов зайти в сообщество.
- В диалоговом окне щелкнуть по наименованию или аватарке паблика.
- Откроется боковое меню «Profile».
- Прокрутить перечень вниз до хранилища медиа.
- Выбрать пункт «Ссылки».
- Кликнуть по адресу, который нужно убрать.
Появится всплывающее окно, где требуется указать действие – «Удалить».
Особенности ссылок Telegram
Телеграмм отличается тем, что допускает два вида ссылок.
Добавление бота очистки в сообщество и его настройка
Нужно зайти на официальный сайт разработчика программного обеспечения WatchDog Robot и на главной странице нажать на кнопку «Добавить бота». После добавления выполняются следующие шаги:
Теперь URL, которые опубликовывают пользователи будут автоматически удаляться.
Альтернативный способ удаления ссылок
Способ позволяет удалить скопированную ссылку в Телеграмме через сам чат.
Важно! Вместе с адресом навсегда удаляется пост для всех пользователей и восстановить его будет нельзя.
Сделать это можно на Android, iPhone и персональном компьютере.
Пошаговая инструкция для Андроид:
- В ленте Телеграмм зайти в сообщество.
- Отыскать пост, где присутствует URL.
- Используя жест удержание выделить публикацию.
- Вверху окна программы коснуться пиктограммы корзины.
Остается подтвердить действие, тапнув по красной кнопке.
Чтобы ссылку в Телеграмме удалить на Айфоне:
- Войти в Телеграмм чат.
- Используя поиск, отыскать публикацию с внешней ссылкой.
- Сделать длинный тап по сообщению.
- На панели действий нажать по пиктограмме корзины.
Во всплывающем окне необходимо коснуться кнопки «Удалить».
Функция доступна в десктопной и портативной версии мессенджера Телеграмм:
- Запустить программное обеспечение.
- Дождаться загрузки ленты.
- Зайти в переписку и найти публикацию, содержащую URL.
- Нажать по посту правой кнопкой мыши.
- Отобразится диалоговое окно, где нужно нажать «Удалить».
Появится всплывающее меню, где требуется подтвердить действие, кликнув по вкладке «ОК».
Вопросы и ответы
Как удалить ссылку на свой аккаунт при пересылке сообщения?
При пересылке к сообщению автоматически добавляется ссылка на аккаунт. Очень часто это нежелательное дополнение. Чтобы этого избежать, рекомендуется:
- Войти в настройки Телеграмм.
- Открыть опцию Конфиденциальность.
- В новом перечне в разделе «Конфиденциальность» найти «Пересылка сообщений — Мои Контакты.
- Установить чекбокс напротив «Никто».
Ниже можно дополнительно настроить исключения из правил, дав разрешение на добавление ссылки отдельным людям из адресной книги.
Источник: telega-blog.ru
В Telegram появилось автоматическое удаление сообщений
Уже несколько лет пользователи Telegram могут бесследно удалять сообщения для всех участников беседы. В секретных чатах с 2013 года также есть таймер самоуничтожения, который позволяет не удалять сообщения вручную.
С сегодняшнего дня автоматическое удаление сообщений в Telegram для всех участников доступно в любом чате. В этом режиме сообщения исчезают через 24 часа или 7 дней после отправки.
Реклама: 2VtzqxKaw2R
Автоматическое удаление затронет только те сообщения, которые были отправлены после установки таймера — более ранняя переписка останется в истории чата. В отличие от секретных чатов, обратный отсчёт начнётся сразу после отправки сообщения, а не в момент прочтения получателем.
Как включить автоматическое удаление сообщений в Telegram
Чтобы включить автоматическое удаление на Android:
- Нажмите «Очистить историю» и выберите нужный временной интервал.
На iOS:
- Зажмите любое сообщение;
- Нажмите «Выбрать — Удалить чат»;
- Далее в верхнем левом углу экрана «Настроить автоудаление».
Когда таймер включён, вы можете увидеть, сколько времени осталось до удаления того или иного сообщения в меню действий:
В группах и каналах включать автоматическое удаление сообщений могут только администраторы.
Источник: postium.ru