Как в ТГ запретить писать сообщения ботам

В чём уникальность проблемы спам-ботов, добавляемых в группу? Телеграм боты не видят сообщения от других телеграм ботов. Даже если у вас в группе уже установлены боты, удаляющие ссылки, арабские символы и прочие штуки, даже если они запрещают новым участникам группы писать собщения до тех пор, пока новые участники не нажмут на кнопку или пройдут какой-то тест, это не помогает предотвратить спам.

Спам появляется по следующему сценарию:

  • участник группы добавляет спам-бота в группу
  • анти-спам бот видит факт добавления бота
  • анти-спам бот, вызывает метод telegram API, ограничивающий спам-бота в правах записи сообщений в группу. Например, он делает это для всех новых пользователей или только для тех, логин которых содержит в конце слово «bot». Это не суть важно.
  • Проходит некоторое время между моментами захода спам-бота в группу и обработкой телеграм сервера запроса об ограничении этого бота в правах записи в чат. В этот момент спам-бот может отправит сообщение в чат.
  • Анти-спам бот не видит это сообщение, потому что боты не видят сообщения других ботов. Так устроен телеграм.

Рассмотренный сценарий показывает, что не всегда возможно бороться с последствиями добавляемых ботов. Эффективнее бороться с причиной — возможностью добавления ботов в группу участниками группы.

Запрещаем отправлять ссылки / рекламу в группу телеграм Настройка чата

Существует два типа телеграмм групп: публичная и частная. От типа группы зависит, что и как могут делать внутри группы администраторы, простые пользователи и боты. Обязательное условие для публичной группы — существование ссылки вида «https://t.me/XXX«, по которой можно зайти в группу. Для частной группы наличие ссылки для входа не обязательно.

Рассмотрим процесс создания группы с нуля. Создадим группу с настройками по-умолчанию. У нас получится частная группа без ссылки-приглашения. Попробуем добавить любого бота простым участником группы. Добавился! Как решить проблему?

Единственный способ запретить добавлять ботов в частную группу — это запретить добавлять вручную вообще каких-либо новых участников, это делается с помощью галочки «Управление группой -> Разрешения -> Добавление участников». Это ограничит только простых пользователей, администраторы группы по прежнему смогут добавлять новых участников (и ботов) руками.

С самым простым случаем разобрались. Теперь создадим ссылку-приглашение для входа в группу: «Управление группой-> Информация о группе -> Ссылка-приглашение -> Создать ссылку-приглашение». Получим ссылку вида «https://t.me/joinchat/…». Для каждого администратора создаётся своя ссылка-приглашение, изначально её знает только администратор, её создавший.

Еще по теме:  Рабочее пространство в ТГ

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

Важное замечание: спам-боты не могут зайти в группу по ссылке-приглашению. Спам-бот (и вообще любой бот) может попасть в чат только, если кто-то добавит туда бота вручную. Самая частая причина появления спам-ботов в частных чатах — это когда администраторы создают ссылки-приглашения, но не отключают (через Управление группой -> Разрешения) возможность добавлять новых пользователей вручную.

КАК ЗАПРЕТИТЬ ПОДПИСЧИКАМ ТЕЛЕГРАММ КАНАЛА ПУБЛИКОВАТЬ ФОТО, СТИКЕРЫ И ГОЛОСОВЫЕ.

Теперь посмотрим, что будет, если мы переведём группу из частного режима в публичный с помощью «Управление группой -> Информация о группе -> Публичная группа». Нам также придётся придумать публичный адрес вида «https://t.me/XXX«, без этого не получится сделать группу публичной. Пусть это будет «https://t.me/habr_test«. В чём отличие публичной группы от частной группы, имеющей ссылку-приглашение? Публичную группу можно найти через внутренний поиск телеграма, а тажке можно посмотреть любое сообщение группы через веб по адресу «https://t.me/habr_test/X«, где X — это порядковый номер сообщения в группе.

Итак, наша группа стала публичной, у неё изменились свойства видимости, и не только. Самое интересное, что в неё больше нельзя приглашать ботов. Если в «Управление группой -> Разрешения» разрешено приглашать новых пользователей, то пользователи могу приглашать новых пользователей, но только обычных людей, не ботов.

При попытке добавить бота будет возникать ошибка «Не удалось добавить пользователя. Попробуйте позже». То что надо!

Вывод. Иммунитет от заражения группы ботами даёт одно из двух действий:

  • запрет обычным участникам добавлять ботов (Управление группой -> Разрешения)
  • перевод группы в публичный режим т.е. назначение группе адреса вида «https://t.me/habr_test«

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

Боты для модерации чата в Телеграм

Есть у меня несколько тематичных чатов в Телеграм (там где общаются, не путать с каналами). В самом крупном скоро 1000 участников будет. И вот это дело надо как-то контролировать.

Ниже несколько бесплатных ботов, которые справляются с модерацией и не дают чату превращаться в рассадник спама, продажи каких-то товаров и «срача».

Сейчас в каналах есть функционал комментирования. Основан он на подключении обычного чата. Так что перечисленные боты и в каналах пригодятся.

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

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

Известный бот Group Butler, только это его новая версия [beta]. Все что удалось найти из отличий — это отсутствие кнопки / рядом с полем ввода текста. Как же она раздражала. Каждый наровил на нее нажать.

Для чего он мне: банит ботов, удаляет служебные сообщения, включает режим жалоб, выбираю какой тип контента/медиа разрешен в чате, запрет репостов с других каналов ТГ, система предупреждения и банов.

Систему «антифлуд» не использую. Нет необходимости.

Есть еще журнал событий (лог). По желанию.

Подключить бота легко: добавили админом в чат, отправили прямо в чате ему /config и он вам в личке откроет настройки как на скриншотах выше. Там же будет список доступных команд админам и обычным пользователям. Все на русском.

Тоже бот-модератор, но мне от него нужна только фильтрация мата.

Боты для модерации чата в Телеграм

Тоже добавили его админом в чат и написали там же команду /setup , после чего он в личку пришлет настройки.

Боты для модерации чата в Телеграм

Минус: разработчики будут спамить вас рекламой в личке.

Наверное, самый известный, т.к. все натыкаются сразу на него при поиске ботов-модераторов.

Суть: в первые 24 часа после вступления человека в чат он не может отправлять фото и ссылки.

Это очень круто! Потому что «нехорошие» люди будут сразу распространять ссылки или фотки с призывами на других подписываться или продают что-нить. А тут им облом.

Бота просто добавили в админы. Он даст ссылку на инструкцию https://tgdev.io/bot/daysandbox_bot и здесь ничего сложного.

Там будет список команд, но сразу в чате пропишите /daysandbox set remove_media=yes

Остальное на ваше усмотрение.

Поделитесь своими наработками в области администрирования чатов в ТГ.

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

Как ограничить доступ к боту Telegram

Когда я отправляю сообщение моему Telegram Bot, оно отвечает без проблем.

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

Как я могу это сделать?

user5449580 12 фев ’16 в 17:18 2016-02-12 17:18
2016-02-12 17:18

7 ответов

Поскольку этот вопрос относится к python-telegram-bot, информация, относящаяся к нему ниже:

Когда вы добавляете обработчики в диспетчер вашего бота, вы можете указать различные предварительно собранные фильтры (подробнее на docs, github) или создать собственные для фильтрации входящих обновлений.

Еще по теме:  Telegram вызываемую абонента не звучит звонок

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

user1051887 22 мар ’18 в 14:06 2018-03-22 14:06
2018-03-22 14:06

Фильтровать сообщения по полю update.message.from.id

user1140438 13 фев ’16 в 01:54 2016-02-13 01:54
2016-02-13 01:54

На основе python-telegram-bot фрагменты кода, можно создать простую оболочку вокруг обработчика:

где conf[‘restricted_ids’] может быть список идентификаторов, например [11111111, 22222222] ,

Таким образом, использование будет выглядеть так:

user3188654 24 фев ’19 в 17:40 2019-02-24 17:40
2019-02-24 17:40

Начните разговор с вашим ботом и отправьте ему сообщение. Это поставит в очередь обновления для бота, содержащие сообщение и идентификатор чата для вашего разговора.

Для просмотра последних обновлений вы вызываете метод getUpdates. Это делается с помощью запроса HTTP GET на URL https://api.telegram.org/bot$TOKEN / getUpdates, где $TOKEN — токен, предоставленный BotFather. Что-то вроде:

«chat»:< «id»:12345, «first_name»:»Bob», «last_name»:»Jones», «username»:»bjones», «type»:»private»>, «date»:1452933785, «text»:»Hi there, bot!»>>]>

Как только вы определили свой идентификатор чата, вы можете написать кусок кода в своем боте, например:

id_a = [111111,2222222,3333333,4444444,5555555] def handle(msg): chat_id = msg[‘chat’][‘id’] command = msg[‘text’] sender = msg[‘from’][‘id’] if sender in id_a: [. ] else: bot.sendMessage(chat_id, ‘Forbidden access!’) bot.sendMessage(chat_id, sender)
user607113 16 дек ’16 в 13:20 2016-12-16 13:20
2016-12-16 13:20

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

Denis Aronson 25 мар ’22 в 09:45 2022-03-25 09:45
2022-03-25 09:45

Я сам столкнулся с этим вопросом, поэтому подумал, что могу рассказать, как я это сделал с Python -telegram-bot. Итак, в новом выпуске (версия 20) [некоторые классы/функции изменились] вы можете сделать что-то вроде:

async def restrict(update: Update, context: ContextTypes.DEFAULT_TYPE): await context.bot.send_message( chat_id=update.effective_chat.id, text=»There is no bot in Ba Sing Se.» ) # Creating the Application application = ApplicationBuilder().token(TOKEN).build() # Restrict bot to the specified user_id restrict_handler = MessageHandler(~ filters.User(USER_ID), restrict) application.add_handler(restrict_handler)

См. учебник github для остальной части скаффолдинга, но это помещает ограниченный обработчик первым, используя фильтр, чтобы эффективно отключить доступ для любого пользователя, который не соответствует USER_ID, который вы ему передаете, и поскольку он первый, все другие обработчики не не попал.

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

Источник: stackru.com

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