Простой чатбот в Телеграм (C#) на базе ZennoPoster.

soprano

Client
Регистрация
25.08.2011
Сообщения
1 032
Реакции
1 265
Баллы
113
Добрый день.
Немного о том, как получить бесплатный трафик из телеграм.
Как известно, на один аккаунт телеграм можно сделать 20 ботов. В поиске телеграм боты находятся так же как каналы и группы, при условии правильного названия и описания.
Представляю вам простой бот, который вответ на любую фразу приглашает посетить некий сайт.
Сеть таких ботов с нужными ключевыми словами в названии и описании позволит привлечь УБТ по практически любой теме.

Бот работает на запросах через api.telegram

104561


Ответы заранее прописаны в коде, или же можно сделать, чтобы они брались из списка.

104562


Для начала работы надо в аккаунте телеграм найти через поиск @botfather, создать бота с уникальным именем и получить его токен.

104563


Токен вводится во Входных настройках.

104564


Вот так выглядит работа бота.

104565


Для работы шаблона необходима библиотека Newtonsoft.Json - _https://www.nuget.org/packages/Newtonsoft.Json/

Если соединить этот шаблон с другим моим шаблоном в этом конкурсе, то можно получить вполне приличный бот-автоответчик по разным вопросам.
Использовать можно для наполнения сайта, канала и т.д.
 
Номер конкурса шаблонов
  1. Десятый конкурс шаблонов

Вложения

А можно понизить версию до 7.4.0 ?
 

Вложения

  • Спасибо
Реакции: DaveJohns
Отличная реализация бота без использования WebHook


Спасибо за работу.
 
  • Спасибо
Реакции: soprano
с картинками и другими медиа работает? Как ведет себя при многопотоке? Как быстро реагирует на сообщения юзера?
 
Последнее редактирование:
с картинками и другими медиа работает? Как ведет себя при многопотоке? Как быстро реагирует на сообщения юзера?
Многопоток не пробовал, на сообщения юзера реагирует с задержкой в 1 секунду, с медиа именно в этом шаблоне работает, если отпрвлять прямую ссылку на залитый файл типа https://icdn.lenta.ru/images/2023/0...0/detail_9b49de581c4ab846d44fbae34739e35d.jpg или на видео, тогда покажет в боте, можно, конечно, отправку с компа сделать через api.telegram, только запрос изменить надо.
 
Последнее редактирование:
Многопоток не пробовал, на сообщения юзера реагирует с задержкой в 1 секунду
Я про то, что если разные пользователи одновременно будут общатьсся с ботом, то обработка в порядке очереди? т.е. если скажем одновременно будет общаться с ботом скажем 10 юзеров, то задержка ответа может быть 10 секунд?
 
Украли! Среди белого дня, вхаххаа я ботами занимаюсь, уже 3-5 проекта выпустил пишите :D
 
Я про то, что если разные пользователи одновременно будут общатьсся с ботом, то обработка в порядке очереди? т.е. если скажем одновременно будет общаться с ботом скажем 10 юзеров, то задержка ответа может быть 10 секунд?
Вряд ли, как бы боты с миллионами посетителей работали? Задержку в коде я поставил, можно убрать, будет сразу отвечать.
 
Вряд ли, как бы боты с миллионами посетителей работали? Задержку в коде я поставил, можно убрать, будет сразу отвечать.
ну одно дело бот в зенно (работает, только когда запущен в зенно), другое без зенно (так быстрее работает). А так полезная информация.
 
  • Спасибо
Реакции: soprano
Я про то, что если разные пользователи одновременно будут общатьсся с ботом, то обработка в порядке очереди? т.е. если скажем одновременно будет общаться с ботом скажем 10 юзеров, то задержка ответа может быть 10 секунд?

Ну так заддержка в 1 потоке конечно будет. Он же работает в процедурном варианте при том без вебхука или сокета


Но 10 юзеров особо погоды не сделают
 
  • Спасибо
Реакции: soprano
Ну ребяты, ну ЗП не для асинхрона, не для работы с юзерами "на лету". ЗП - не про скорость и железную стабильность. Больно.
 
полезный шаб. к нему нужно дополнение, авторегер ботов на аке телеграм по ключевым словам)
 
полезный шаб. к нему нужно дополнение, авторегер ботов на аке телеграм по ключевым словам)
А ещё регер самих акков тг, парсер групп и, заодно, рассыльщик. Дерзайте!
 
Вряд ли, как бы боты с миллионами посетителей работали? Задержку в коде я поставил, можно убрать, будет сразу отвечать.
Даже если максимально оптимизировать шаблон, то более 30 пользователей в секунду на одном боте не выйдет, у TG API есть ограничение не более 30 запросов в секунду.

P.S есть у меня пара простых шаблонов которые и на ЗП во многопотоке упирались в лимиты ТГ
 
Я про то, что если разные пользователи одновременно будут общатьсся с ботом, то обработка в порядке очереди? т.е. если скажем одновременно будет общаться с ботом скажем 10 юзеров, то задержка ответа может быть 10 секунд?
Будет. Посмотрел внутрянку шаблона. Если это просто автоответчик - это будет незаметно. Если это будет бот, которому надо еще "собрать информацию", скачать что-то, загрузить, обработать - каждый пользователь будет ждать своей очереди. Увы, ни одного асинхронного метода я не увидел.

Извините, если мой посыл покажется оскорбительным, это не так. Просто я не поклонник этой синхронности зеннопостера в работе с ботами, когда есть такие вещи, как вебсокет и асинхронность..
 
Будет. Посмотрел внутрянку шаблона. Если это просто автоответчик - это будет незаметно.
Ну на малом количестве юзеров не заметно. Замечал что в некоторых ботах задержка на ответы большая или совсем не отвечают. По опыту (сам как то делал тг боты) сделал выводы, что зенку для тг автоответчика можно использовать только в целях обучения и тестов, набора опыта и навыков, а для работы лучше использовать другие варианты (сервисы, свои решения через запросы и т.п.)
 
Ну на малом количестве юзеров не заметно. Замечал что в некоторых ботах задержка на ответы большая или совсем не отвечают. По опыту (сам как то делал тг боты) сделал выводы, что зенку для тг автоответчика можно использовать только в целях обучения и тестов, набора опыта и навыков, а для работы лучше использовать другие варианты (сервисы, свои решения через запросы и т.п.)
А если использовать с бд в связке не пробовал ?
Я просто задумался что если я все сообщения что пришли буду помещать в Бд и потом с бд брать данные и отвечать.
А лучше сделать 2 шаблона ну или розделить как-то на потоки , 1 читает и пишет а второй обробляет данныеи отвечает

Но конечно для меня проще написать бота на php и сделать мини api для общения с ZP для выполнения сложных задач, ну или бибилиотеки c# telegram как-то подтянуть в ZP
 
  • Спасибо
Реакции: Mavrikman
А если использовать с бд в связке не пробовал ?
Я просто задумался что если я все сообщения что пришли буду помещать в Бд и потом с бд брать данные и отвечать.
А лучше сделать 2 шаблона ну или розделить как-то на потоки , 1 читает и пишет а второй обробляет данныеи отвечает

Но конечно для меня проще написать бота на php и сделать мини api для общения с ZP для выполнения сложных задач, ну или бибилиотеки c# telegram как-то подтянуть в ZP
Как все сложно когда все просто :D
 
  • Спасибо
Реакции: usboff и lavachik
Я думаю на php или python будет быстрее работать чем на зенке
если в боте не предусмотрен многопоток ( асинхронность ) , то разница будет не сильно заметна, он всеранво упрется , и при каком то колве юзеров , будет очередь
 
если в боте не предусмотрен многопоток ( асинхронность ) , то разница будет не сильно заметна, он всеранво упрется , и при каком то колве юзеров , будет очередь
а смысл делать такого бота без учета многопотока и асинхронности? Если только для практики и получения опыта
 
а смысл делать такого бота без учета многопотока и асинхронности? Если только для практики и получения опыта
Если бот как у меня на вебхуке считывание с базы то много поток сделать легко, просто каждому потоку присвоить свою ячейку считывания с базы, естественно все потоки должный запускаться по очереди.

К примеру, запускается 1 поток он читает 0 строку увеличивает счетчик на 1 и ложит в файл, выполняет команду:
C#:
Развернуть Свернуть Копировать
var id = Guid.Parse(project.TaskId);
ZennoPoster.AddTries(id, 1);
В новом потоки читаем файл фиксируем новую строку считывания и так по кругу (думаю на 20 потоках можно остановится)

Таким образом:
У меня 1 сообщение обрабатывается 1 секунду, если база начнет забивается к примеру 10.000к человек одновременно используют бота обработка без много потока займет: 10.000к секунд то при 20 потоках 10000к человек будет обработано за 500 секунд.
 
  • Спасибо
Реакции: radv
Подскажите новичку как библиотеку подключить , без нее отказывается работать?
 
  • Спасибо
Реакции: mokasin25

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)