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

soprano

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

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

104561


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

104562


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

104563


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

104564


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

104565


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

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

Вложения

Для запуска проектов требуется программа ZennoPoster или ZennoDroid.
Это основное приложение, предназначенное для выполнения автоматизированных шаблонов действий (ботов).
Подробнее...

Для того чтобы запустить шаблон, откройте нужную программу. Нажмите кнопку «Добавить», и выберите файл проекта, который хотите запустить.
Подробнее о том, где и как выполняется проект.

DaveJohns

Client
Регистрация
04.12.2018
Сообщения
32
Благодарностей
11
Баллы
8
А можно понизить версию до 7.4.0 ?
 

soprano

Client
Регистрация
25.08.2011
Сообщения
804
Благодарностей
855
Баллы
93

Вложения

  • Спасибо
Реакции: DaveJohns

lavachik

Client
Регистрация
18.09.2020
Сообщения
52
Благодарностей
19
Баллы
8
Отличная реализация бота без использования WebHook


Спасибо за работу.
 
  • Спасибо
Реакции: soprano

radv

Client
Регистрация
11.05.2015
Сообщения
3 697
Благодарностей
1 878
Баллы
113
с картинками и другими медиа работает? Как ведет себя при многопотоке? Как быстро реагирует на сообщения юзера?
 
Последнее редактирование:

soprano

Client
Регистрация
25.08.2011
Сообщения
804
Благодарностей
855
Баллы
93
с картинками и другими медиа работает? Как ведет себя при многопотоке? Как быстро реагирует на сообщения юзера?
Многопоток не пробовал, на сообщения юзера реагирует с задержкой в 1 секунду, с медиа именно в этом шаблоне работает, если отпрвлять прямую ссылку на залитый файл типа https://icdn.lenta.ru/images/2023/03/13/16/20230313162848000/detail_9b49de581c4ab846d44fbae34739e35d.jpg или на видео, тогда покажет в боте, можно, конечно, отправку с компа сделать через api.telegram, только запрос изменить надо.
 
Последнее редактирование:

radv

Client
Регистрация
11.05.2015
Сообщения
3 697
Благодарностей
1 878
Баллы
113
Многопоток не пробовал, на сообщения юзера реагирует с задержкой в 1 секунду
Я про то, что если разные пользователи одновременно будут общатьсся с ботом, то обработка в порядке очереди? т.е. если скажем одновременно будет общаться с ботом скажем 10 юзеров, то задержка ответа может быть 10 секунд?
 

_HEDELKA_

Client
Регистрация
20.02.2022
Сообщения
648
Благодарностей
170
Баллы
43
Украли! Среди белого дня, вхаххаа я ботами занимаюсь, уже 3-5 проекта выпустил пишите :D
 

soprano

Client
Регистрация
25.08.2011
Сообщения
804
Благодарностей
855
Баллы
93
Я про то, что если разные пользователи одновременно будут общатьсся с ботом, то обработка в порядке очереди? т.е. если скажем одновременно будет общаться с ботом скажем 10 юзеров, то задержка ответа может быть 10 секунд?
Вряд ли, как бы боты с миллионами посетителей работали? Задержку в коде я поставил, можно убрать, будет сразу отвечать.
 

radv

Client
Регистрация
11.05.2015
Сообщения
3 697
Благодарностей
1 878
Баллы
113
Вряд ли, как бы боты с миллионами посетителей работали? Задержку в коде я поставил, можно убрать, будет сразу отвечать.
ну одно дело бот в зенно (работает, только когда запущен в зенно), другое без зенно (так быстрее работает). А так полезная информация.
 
  • Спасибо
Реакции: soprano

lavachik

Client
Регистрация
18.09.2020
Сообщения
52
Благодарностей
19
Баллы
8
Я про то, что если разные пользователи одновременно будут общатьсся с ботом, то обработка в порядке очереди? т.е. если скажем одновременно будет общаться с ботом скажем 10 юзеров, то задержка ответа может быть 10 секунд?
Ну так заддержка в 1 потоке конечно будет. Он же работает в процедурном варианте при том без вебхука или сокета


Но 10 юзеров особо погоды не сделают
 
  • Спасибо
Реакции: soprano

n0n3mi1y

Client
Регистрация
08.03.2017
Сообщения
1 135
Благодарностей
489
Баллы
83
Ну ребяты, ну ЗП не для асинхрона, не для работы с юзерами "на лету". ЗП - не про скорость и железную стабильность. Больно.
 

turfierdal

Client
Регистрация
21.01.2021
Сообщения
21
Благодарностей
4
Баллы
3
полезный шаб. к нему нужно дополнение, авторегер ботов на аке телеграм по ключевым словам)
 

soprano

Client
Регистрация
25.08.2011
Сообщения
804
Благодарностей
855
Баллы
93
полезный шаб. к нему нужно дополнение, авторегер ботов на аке телеграм по ключевым словам)
А ещё регер самих акков тг, парсер групп и, заодно, рассыльщик. Дерзайте!
 

AleXPrischepA

Client
Регистрация
06.05.2015
Сообщения
200
Благодарностей
96
Баллы
28
Вряд ли, как бы боты с миллионами посетителей работали? Задержку в коде я поставил, можно убрать, будет сразу отвечать.
Даже если максимально оптимизировать шаблон, то более 30 пользователей в секунду на одном боте не выйдет, у TG API есть ограничение не более 30 запросов в секунду.

P.S есть у меня пара простых шаблонов которые и на ЗП во многопотоке упирались в лимиты ТГ
 

n0n3mi1y

Client
Регистрация
08.03.2017
Сообщения
1 135
Благодарностей
489
Баллы
83
Я про то, что если разные пользователи одновременно будут общатьсся с ботом, то обработка в порядке очереди? т.е. если скажем одновременно будет общаться с ботом скажем 10 юзеров, то задержка ответа может быть 10 секунд?
Будет. Посмотрел внутрянку шаблона. Если это просто автоответчик - это будет незаметно. Если это будет бот, которому надо еще "собрать информацию", скачать что-то, загрузить, обработать - каждый пользователь будет ждать своей очереди. Увы, ни одного асинхронного метода я не увидел.

Извините, если мой посыл покажется оскорбительным, это не так. Просто я не поклонник этой синхронности зеннопостера в работе с ботами, когда есть такие вещи, как вебсокет и асинхронность..
 

radv

Client
Регистрация
11.05.2015
Сообщения
3 697
Благодарностей
1 878
Баллы
113
Будет. Посмотрел внутрянку шаблона. Если это просто автоответчик - это будет незаметно.
Ну на малом количестве юзеров не заметно. Замечал что в некоторых ботах задержка на ответы большая или совсем не отвечают. По опыту (сам как то делал тг боты) сделал выводы, что зенку для тг автоответчика можно использовать только в целях обучения и тестов, набора опыта и навыков, а для работы лучше использовать другие варианты (сервисы, свои решения через запросы и т.п.)
 

lavachik

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

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

_HEDELKA_

Client
Регистрация
20.02.2022
Сообщения
648
Благодарностей
170
Баллы
43
А если использовать с бд в связке не пробовал ?
Я просто задумался что если я все сообщения что пришли буду помещать в Бд и потом с бд брать данные и отвечать.
А лучше сделать 2 шаблона ну или розделить как-то на потоки , 1 читает и пишет а второй обробляет данныеи отвечает

Но конечно для меня проще написать бота на php и сделать мини api для общения с ZP для выполнения сложных задач, ну или бибилиотеки c# telegram как-то подтянуть в ZP
Как все сложно когда все просто :D
 

radv

Client
Регистрация
11.05.2015
Сообщения
3 697
Благодарностей
1 878
Баллы
113
  • Спасибо
Реакции: usboff и lavachik

Kokos

Client
Регистрация
05.09.2019
Сообщения
117
Благодарностей
56
Баллы
28
Я думаю на php или python будет быстрее работать чем на зенке
если в боте не предусмотрен многопоток ( асинхронность ) , то разница будет не сильно заметна, он всеранво упрется , и при каком то колве юзеров , будет очередь
 

radv

Client
Регистрация
11.05.2015
Сообщения
3 697
Благодарностей
1 878
Баллы
113
если в боте не предусмотрен многопоток ( асинхронность ) , то разница будет не сильно заметна, он всеранво упрется , и при каком то колве юзеров , будет очередь
а смысл делать такого бота без учета многопотока и асинхронности? Если только для практики и получения опыта
 

_HEDELKA_

Client
Регистрация
20.02.2022
Сообщения
648
Благодарностей
170
Баллы
43
а смысл делать такого бота без учета многопотока и асинхронности? Если только для практики и получения опыта
Если бот как у меня на вебхуке считывание с базы то много поток сделать легко, просто каждому потоку присвоить свою ячейку считывания с базы, естественно все потоки должный запускаться по очереди.

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

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

Kokos

Client
Регистрация
05.09.2019
Сообщения
117
Благодарностей
56
Баллы
28
  • Спасибо
Реакции: radv

VadimPasport

Client
Регистрация
19.05.2021
Сообщения
68
Благодарностей
7
Баллы
8
Подскажите новичку как библиотеку подключить , без нее отказывается работать?
 

soprano

Client
Регистрация
25.08.2011
Сообщения
804
Благодарностей
855
Баллы
93
  • Спасибо
Реакции: mokasin25

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