Создаем антиспам-бота для Telegram
Traffic Cardinal Traffic Cardinal  написал 12.03.2024

Создаем антиспам-бота для Telegram

Traffic Cardinal Traffic Cardinal  написал 12.03.2024
6 мин
0
5141
Содержание

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

banner banner

Платная функция от Telegram Premium в какой-то степени решает этот вопрос. Но во-первых, она платная. А платить за защиту от спама — это уже что-то напоминающее рэкет. Во-вторых, если у спамер есть Telegram Premium — он все равно сможет вам писать. Именно поэтому мы решили поделиться с вами антиспам-ботом для Telegram, создать который вы сможете самостоятельно за пару минут.

Какие задачи решает бот для защиты от спама в Telegram

Как очевидно из названия, основная задача бота — защитить вас от спама в личные сообщения. При этом опционально он может делать это тремя способами:

  • Удаляя спам и блокируя отправителя — для полной защиты от навязчивых пользователей.

  • Удаляя спам, но не блокируя отправителя — если вы хотите поугарать над спамерами, которые будут видеть, что они не в ЧС, и продолжать спамить.

  • Блокируя отправителя, но не удаляя спам — если вы боитесь пропустить что-то важное от незнакомцев.

В целом идейно бот был создан в первую очередь для защиты от постконфового спама в стиле «виделись с тобой на конфе», но никто не запрещает использовать его и для защиты от обычного спама, не связанного с арбитражем трафика. Ну и да, в отличие от Telegram Premium — это бесплатно и не дает привилегий другим Premium-пользователям. Отлетят все.

Принцип работы антиспам-бота для Telegram

Принципиально бот относительно простой — он просто проверяет список ваших контактов (тех, что добавлены в самом Telegram, адресную книгу он не трогает) и далее, в зависимости от включенных опций, применяет в отношении спамеров ранее упомянутые комбинации санкций.

Итого, с точки зрения алгоритма, бот делает следующее:

  1. Авторизуется в вашем профиле через user_api.
  2. Считывает заданные вами опции работы (блок + удаление / удаление / блок).
  3. Прослушивает «эфир» и ждет новые сообщения.
  4. Если сообщение ваше — игнорирует.
  5. Если сообщение в чате или канале — игнорирует.
  6. Если сообщение пришло в ЛС — проверяет, не от обычного ли бота (профили nickname_bot) оно. Такие боты не имеют возможности начать диалог первыми, поэтому априори не смогут спамить в классическом смысле этого слова.
  7. Обновляет список контактов (нужно для того, чтобы вам не пришлось перезапускать бота вручную после добавления в контакты важных вам «незнакомцев» или удаления уже ненужных «знакомцев»)
  8. Проверяет, есть ли отправитель сообщения в списке ваших контактов.
  9. Если его нет в контактах — реагирует в соответствии с заданными опциями (блок + удаление / удаление / блок). Если есть — игнорирует.
  10. Выводит информацию, с которой взаимодействует, в консоль (не несет практической пользы для рядовых пользователей — оставлено для отладки и ваших экспериментов).

Пошаговая инструкция, как создать бота для защиты от спама в ЛС в Telegram

Данный бот, как и все ранее создаваемые нами юзер-боты, использует официальный user_api Telegram, поэтому авторизация происходит с помощью api_id и api_hash. Чтобы их получить, вам необходимо::

  1. Авторизоваться через кабинет веб-версии.
  2. Найти и нажать «API development tools», заполнить форму.
  3. Сохранить присвоенные вам api_id и api_hash в текстовый редактор.

После этого вам нужно настроить свой Python-сервер для взаимодействия с Telegram.

  1. Далее в его консоли набираем следующие команды:

pip install asyncio

pip install telethon

  1. После этого открываем корневую директорию сервера. В ней нужно создать .py файл. Например antispam.py
  2. Открываем этот файл и добавляем в него код бота:

from telethon.sync import TelegramClient

from telethon.tl.functions.contacts import GetContactsRequest

from telethon.tl.functions.contacts import BlockRequest

from telethon.events import NewMessage

api_id = 'ваш API ID' # Замените на ваш API ID

api_hash = 'ваш API Hash' # Замените на ваш API Hash

delete_message_flag = 1 # Флаг для удаления сообщений: 1 - удалять, 0 - не удалять

block_sender_flag = 1 # Флаг для блокировки отправителя: 1 - блокировать, 0 - не блокировать

client = TelegramClient('session_name', api_id, api_hash)

async def get_contacts():

await client.start()

result = await client(GetContactsRequest(0))

contacts = result.users

return contacts

async def update_contacts():

global contacts_list

contacts_list = await get_contacts()

contacts_list = client.loop.run_until_complete(get_contacts())

@client.on(NewMessage)

async def message_handler(event):

message = event.message

if message.is_private:

me = await client.get_me() # Получаем информацию о собственном аккаунте

if message.sender_id != me.id: # Сравниваем sender_id с идентификатором собственного аккаунта

print("Received message:", message.text)

await update_contacts() # Обновляем список контактов

sender_in_contacts = False

for user in contacts_list:

if user.id == message.sender_id:

sender_in_contacts = True

break

if not sender_in_contacts:

if delete_message_flag == 1:

await client.delete_dialog(message.sender_id) # Удаляем переписку с пользователем

print("Deleted dialog with:", message.sender_id)

if block_sender_flag == 0:

await client(BlockRequest(message.sender_id)) # Блокируем отправителя

client.start()

client.run_until_disconnected()

  1. Подставляем свои значения для api_id и api_hash, которые мы сохраняли в шаге 3. Во флаги delete_message_flag и block_sender_flag ставим нужные вам значения. По умолчанию обе опции активны.
  2. Сохраняем файл antispam.py
  3. Запускаем бот, введя в консоль python antispam.py
  4. Проходим авторизацию бота в Telegram — ждем, пока появится «Please enter your phone (or bot token)», вводим номер телефона, к которому привязан используемый аккаунт, и ждем код от Telegram в ЛС. Когда в консоли появится «Please enter the code you received» — вводим код авторизации.

Бот авторизован и запущен.

Подводя итоги

Как видите, защититься от спама в Telegram гораздо проще, чем кажется, — для этого даже не нужно покупать пресловутый Telegram Premium. А на этом у нас все, в скором времени вас ждет еще несколько интересных программных решений для повседневных арбитражных задач — следите за нашим Telegram-каналом, чтобы ничего не пропустить. Тем более что спам больше не будет отвлекать вас от контента.

ТОП партнерских программ
Год основания: 2014
Leadbit Nutra - опытная партнерская программа с 900+ офферов на ТОПовые ГЕО. Для вебмастеров представлены COD и Trials&SS офферы на любой вкус.

Ключевые особенности:
- эксклюзивные рекламодатели
- огромный выбор офферов по всему миру
- индивидуальные условия для партнеров
- дружелюбные персональные менеджеры
- программа лояльности с ценными призами
  • Вертикали: 1
  • Офферы: 76
  • Минимум: 50 $
Год основания: 2016
Официальная партнерская программа букмекерской конторы MostBet. Программа запущена в 2016 году. За это время несколько тысяч партнеров привели в Mostbet более 15 000 000 игроков со всего мира. Партнерка специализируется на онлайн-казино и беттинге, а выплаты происходят по моделям CPA и RevShare. У продукта Mostbet есть ряд важных преимуществ, которые неизменно привлекают азартных игроков и позволяют достигать высоких Retention Rate и LTV. Например, на сайте можно найти около 1300 слотов и прочих продуктов казино.

Преимущества:
- Досрочные выплаты по запросу;
- Экспертная поддержка менеджеров,
- Высокая конверсия и LTV;
- Уникальные промо-материалы и прелендинги;
- собственный трекер приложения;
- Демо-счет для игроков на любую сумму;
- Персональный промокод для привлечения игроков.
- Минимальная выплата: 50 $
- Периодичность выплат: по запросу
- Реферальная система: 0%
  • Вертикали: 1
  • Офферы: 8
  • Минимум: 50 $
Год основания: 2013
Shakes.pro — крупная партнерская сеть с 2013 года, отбирает самые выгодные nutra-офферы по всему миру (включая in-house). Является частью крупного холдинга. Забудь о бесконечном поиске офферов! Здесь тебе предлагают только то, что уже приносит реальные деньги на все страны.

Основные преимущества

Гарантированный и высокий апрув. Команда сама решит все вопросы с рекламодателями и поделится качественными промо с локализацией.
3 программы лояльности, с которыми ты будешь получать ценные призы за каждый лид.
Ежеквартальные подборки офферов с подробной аналитикой, которые успешнее других по доходам.
  • Вертикали: 1
  • Офферы: 23
  • Минимум: 3000 ₽
Год основания: 2014
Не нашли подходящий оффер? Не беда, подключим под вас

Работать можно со многими источниками трафика. Поможем со всем необходимым для работы. Наша главная цель - обеспечение комфортных и качественных условий работы как для вебмастеров, так и для рекламодателей.

Ключевые особенности:
• Family партнерка. Решим любые боли наших вебмастеров
• Индивидуальные условия работы по любым офферам. Наличие капов
• Выплаты по запросу, без выходных и праздников
• Собственный store с шикарными призами
• Выдаем прилы под iOS/android, готовые крео под залив, аудитории таргетинга
• Максимально подробная статистика, обновляемая в режиме Real-Time
• Саппорт, личный менеджер 24/7
  • Вертикали: 2
  • Офферы: 649
  • Минимум: 50 $
LGaming — это партнерская сеть в вертикали беттинг и гемблинг с более чем 1000 активными офферами от 200 рекламодателей. В партнерке доступен инхаус-продукт BetAndreas. Сеть LGaming создана командой, за плечами которой несколько лет опыта в гемблинг-вертикали CPA-сети Leadbit. Партнерская сеть предлагает проверенные креативы с высоким конвертом и рекомендации по проливу от отдела баинга. Также у компании есть собственный бренд и партнерский сервис по выдаче виртуальных карт.
  • Вертикали: 1
  • Офферы: 1000+
  • Минимум: 100 $
Комментарии
0
Написать комментарий

Здравствуйте! У вас включен блокировщик рекламы, часть сайта не будет работать!