Отправка/редактирование/удаление сообщений в Telegram-канале
Если при помощи python-telegram-bot планируется только вести Telegram-канал (например, публиковать анонсы новых статей сайта или их обновления), то ставить полностью библиотеку со всеми зависимостями не обязательно. Достаточно установить чистый интерфейс Python для Telegram Bot API python-telegram-bot-raw .
Так как TelegramBot нужен для ведения Telegram-канала, следовательно он не будет принимать каких либо сообщений, а будет только отправлять, удалять или редактировать уже отправленные сообщения в Telegram-канал. Для таких задач высокоуровневый интерфейс расширения telegram.ext не нужен. Расширение telegram.ext в основном используется для удобной обработки входящих сообщений, создания вебхука или регулярных обновлений бота и т.д.
Для начала необходимо создать Telegram-канал:
- Для создания канала со смартфона необходимо нажать на значок с карандашом. Он отображается в окне со списком переписок и каналов. После этого нажмите на кнопку Создать канал .
- В десктопной версии Telegram необходимо зайти в меню, а затем нажать на кнопку Создать канал .
После этого Telegram предложит написать имя канала, заполнить описание и поставить аватарку. Заполнять описание и выбирать картинку на этом этапе не обязательно, а вот без названия дальше работать с каналом не получится. Обратите внимание, что имя канала, описание и аватарку можно изменить в любой момент.
How to Stop Bots on 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
Как поставить аватарку боту в Telegram, задать команды, сделать описание и стартовое сообщение? Полный гайд
В этой статье мы доступно объясним, как украсить бота Telegram. Если вы создали бота, то самое время разобраться, как добавить аватарку, описание, команды и стартовое сообщение.
Если еще не создали бота, то самое время это сделать и подключить к нашему сервису по инструкции.
Выбрать добавленного бота и кликнуть по никнейму в кнопке
Далее кликнуть по кнопке Edit bot
После этого вы увидите список настроек
Name : Название бота
Description : ?
Botpic : ? no botpic
Commands : no commands yet
Что обозначают настройки бота?
Name — имя бота. Можно изменять. Чтобы это сделать, нужно нажать на кнопку Edit Name, ввести новое имя бота и отправить актуальное название. Название возможно изменять неограниченное количество раз.
Description — описание бота. Это описание появляется до старта бота. Чтобы установить его, нужно нажать на кнопку Edit Description ввести новое описание бота и отправить актуальный текст. Этот текст ограничен 512 символами.
About — описание бота №2. Это описание появляется в описании бота, если кликнкуть по названию бота. Чтобы установить его, нужно нажать на кнопку Edit About, вводим новое описание бота и отправляем актуальный текст. Текст ограничен 120 символами.
Botpic — это фотография бота. Чтобы установить ее, нужно нажать на кнопку Edit Botpic, отправляем новую фотографию боту и она автоматически изменяется. Вес картинки не должен превышать 5 Мб.
Commands — команды бота (меню). Команды добавляются списком. Обязательно указание описание на нужном языке и английский аналог. Пример: меню — menu, о нас — about us и т.д. Сколько необходимо команд, столько и добавляем.
Чтобы установить команды нужно нажать на кнопку Edit Commands, ввести новые команды бота и отправляем актуальные команды.
Надеюсь мы поделились с вами полезной информацией. Если остались вопросы, то записывайтесь на консультацию. Ответим на все интересующие вопросы
Источник: botkits.ru
Grep Robot
Бот для удаления сообщений, содержащих слова, из черного списка.
Установка
Следуй этим шагам:
Команды
- /grep config — посмотреть конфигурацию бота для текущего чата, например. список заблокированных слов
- /grep check — проверить, правильно ли установлен бот.
- /grep set notify_actions = yes — указать боту писать объяснение в чат об удаленных сообщениях (рекомендуется).
- /grep set notify_actions = no — указать боту удалять сообщения без уведомления
- /grep set lang = — установить язык уведомлений. Допустимые значения для этих настроек: en и ru.
- /grep add word — добавить слово в черный список. Пример: /grep add word porn
- /grep remove word — перестать блокировать слово. Пример удаления слова из черного списка. Пример: /grep remove word porn
- /grep reload_admins — попросить бота перезагрузить админ ID текущего чата. Список администраторов собирается один раз и кешируется. Используйте эту команду для обновления кэшированных данных.
Все эти команды нужно отправлять в чат, который вы хотите настроить. Не отправляйте эту команду боту в личном сообщении, он игнорирует такие личные сообщения.
Вопросы и ответы
Как проверить правильность установки бота?
Сначала выполните инструкции по установке. Затем введите в чат эту команду: /grep check . Устраните все проблемы, о которых говорит бот.
Как сопоставляются слова?
Слова совпадают от начала до конца. Например, если вы добавили слово «монета» в черный список, то бот заблокирует слово «монета», но не будет блокировать слово «биткойн» или даже «монеты».
Источник: tgdev.io