В Телеграм есть много разных служебных уведомлений, которые он направляет при наступлении событий при взаимодействии пользователя с ботом, в рамках данной статьи нам будет интересно поработать с теми, которые приходят при начале или при удалении диалога с блокировкой бота.
В любом из указанных событиях приходит объект my_chat_member в котором есть нужные нам данные пользователя в случае если он подписался или отписался от бота.
Исключение: В случае первого старта бота этот объект не приходит, если пользователь перезапускает ранее удаленного бота, то объект приходит с пометкой old_chat_member->status == «kicked»
< «chat»:< «id»:123456789, «first_name»:»User», «type»:»private» >, «from»:< «id»:123456789, «is_bot»:false, «first_name»:»User», «language_code»:»ru» >, «date»:1685526728, «old_chat_member»:< «user»:< «id»:987654321, «is_bot»:true, «first_name»:»Bot», «username»:»Bot_bot» >, «status»:»kicked», «until_date»:0 >, «new_chat_member»:< «user»:< «id»:987654321, «is_bot»:true, «first_name»:»Bot», «username»:»Bot_bot» >, «status»:»member» > >
При получении этих уведомлений достаточно проверить свойство объекта my_chat_member->new_chat_member->status в случае если оно равно «member» , то это активный пользователь, если же оно равно «kicked» , то это удаление бота с блокировкой.
Як зупинити та видалити чат-бот в Телеграм | позбутися надокучливого боту Telegram
Что делать при том или ином варианте, зависит от логики вашего приложения. Например если пользователь удаляет и блокирует бот, то можно в базе данных такому пользователю ставить флаг «неактивен», чтобы не тратить на него ресурсы при рассылке сообщений.
Пример получения таких служебных уведомлений:
Альтернативный способ проверки
При взаимодействии с пользователем, бот направляет запросы на выполнение каких-либо действий, и в ответ всегда получает объект с информацией об успешности выполнения запроса с дополнительными вспомогательными данными.
// пример ответа на запрос < «ok»:true, «result»:true >// пример ответа на запрос при блокировке бота
Можно направить безобидный (незаметно для пользователя) запрос на передачу действия бота через метод sendChatAction например typing , если пользователь не заблокировал бота, даже если он при этом удалил чат с ботом, в ответ придет положительный ответ.
echo file_get_contents(«https://api.telegram.org/bot/sendChatAction?chat_id=);
В зависимости от ответа можно сделать пометку в базе данных пользователю: «активный» или «неактивный».
Если у вас есть еще примеры, просьба написать в комментариях — думаю дополнительный опыт будет только плюсом.
Источник: imakebots.ru
Как убрать Телеграмм бота
Если вам необходимо удалить бота из своего Телеграма, то вы по адресу. Рассказываем как это сделать с ПК и с телефона. Процессы похожи, но рассмотрим каждый по отдельности, так как различия все-таки есть.
Как удалить бота с ПК
Для начала следует найти нужный бот на удаление и зайти в него.
Далее жмем 3 точки в верхнем углу меню плюс кнопку “Остановить и блокировать”.
Теперь бот приостановлен. Его можно удалять, нажав правой кнопкой мыши на бот в списке чатов.
Или же оставляем бот, чтобы его не потерять, и в случае необходимости в любое время его можно восстановить, нажав кнопку “Перезапустить”. Бот снова будет готов к работе.
Как удалить бота с телефона
Принцип удаления бота с телефона тот же, что и с компьютера. Но есть небольшие различия в названии кнопок.
Итак. Выбираем бота и жмем на чат с ним.
Нажимаем на иконку бота в правом верхнем углу.
Жмем кнопку “Остановить бота”.
Бот остановлен. Теперь его можно удалить, свайпнув влево на чате бота и нажав кнопку корзины.
Или не удалять, а возобновить работу, когда бот снова понадобится.
Теперь вы знаете, как удалять ботов со своего Телеграма. Поэтому смело переходите в каталог ботов, ищите и добавляйте новые. А в любой момент вы сможете от них избавиться.
Источник: botsila.ru
WatchDog Robot
Робот Watchdog удаляет сообщения из черного списка: ссылки, стикеры, гифки, голосовые вложения, файловые вложения и другие. Также он может банить других ботов.
Установка
Следуйте этим шагам:
Фильтры
Список фильтров, с которыми может работать Watchdog Robot. Первое слово (цветное) в каждой строке — это название фильтра. Используйте это имя в командах /watchdog block и /watchdog allow.
Например, вы хотите заблокировать стикеры и ссылки в Интернете. Используйте две команды: «/watchdog block sticker» и «/watchdog block link». Также вы можете указать несколько фильтров в одной команде, например, /стикер блока сторожевого таймера, ссылка .
Команды
- /watchdog block FILTER — указать сторожевому роботу удалить сообщения, соответствующие этому фильтру. Вы можете указать несколько фильтров, разделенных запятыми.
- /watchdog allow FILTER — разрешить сообщения, соответствующие этому фильтру.
- /watchdog config — см. конфигурацию Watchdog Robot для текущего чата
- /watchdog set notify_actions = yes — попросить бота отображать сообщение о том, что какое-то сообщение было удалено
- /watchdog set notify_actions = no — указать боту удалять сообщения без уведомления
- /watchdog check — проверить, правильно ли установлен бот.
- /watchdog reload_admins — попросить бота перезагрузить список администраторов для текущего чата. Список администраторов собирается один раз и кешируется. Используйте эту команду для обновления кэшированных данных.
- /watchdog analyze — напишите эту команду в ответ на существующее сообщение, чтобы увидеть, какие фильтры вы можете использовать для блокировки этого типа сообщений.
- /watchdog add domain-whitelist FOO — добавить домен FOO в список разрешённых доменов
- /watchdog remove domain-whitelist FOO — удалить домен FOO из списка разрешённых доменов
- /watchdog add user-whitelist ID — добавить пользователя в белый список, т.е. разрешить любое сообщение от этого пользователя. Здесь ID — это числовой идентификатор Telegram пользователя.
- /watchdog wluser — добавить пользователя в белый список, т.е. разрешить любое сообщение от этого пользователя. Используйте эту команду в ответ на сообщение пользователя, которого вы хотите добавить в белый список.
- /watchdog remove user-whitelist ID — удалить ID из списка пользователей из белого списка
- /watchdog delwluser — удалить пользователя из белого списка. Используйте эту команду в ответ на сообщение пользователя, которого вы хотите удалить из белого списка.
Все эти команды нужно вводить в чате, где установлен сторожевой таймер. Не отправляйте эти команды в личных сообщениях сторожевому псу.
Вопросы и ответы
Как проверить правильность установки бота?
Сначала выполните инструкции по установке. Затем введите в чат эту команду: /watchdog check . Устраните все проблемы, о которых говорит бот.
Почему Watchdog не пинает других ботов?
Во-первых, убедитесь, что вы указали сторожевому таймеру сделать это с помощью команды /watchdog block bot . Во-вторых, убедитесь, что вы дали сторожевому таймеру разрешение блокировать других пользователей.
Как сделать, чтобы бот не удалял некоторые ссылки?
Вы можете запретить все ссылки с помощью фильтра «link» и добавить нужные домены в список «domain-whitelist», чтобы бот не удалял ссылки на эти домен. Например, чтобы разрешить ссылки на twitter.com выполните эту команду /watchdog add domain-whitelist twitter.com
Источник: tgdev.io