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

soprano

Client
Joined
Aug 25, 2011
Messages
866
Reaction score
951
Points
93
Добрый день.
Немного о том, как получить бесплатный трафик из телеграм.
Как известно, на один аккаунт телеграм можно сделать 20 ботов. В поиске телеграм боты находятся так же как каналы и группы, при условии правильного названия и описания.
Представляю вам простой бот, который вответ на любую фразу приглашает посетить некий сайт.
Сеть таких ботов с нужными ключевыми словами в названии и описании позволит привлечь УБТ по практически любой теме.

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

104561


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

104562


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

104563


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

104564


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

104565


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

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

Attachments

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

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

DaveJohns

Client
Joined
Dec 4, 2018
Messages
32
Reaction score
11
Points
8
А можно понизить версию до 7.4.0 ?
 

soprano

Client
Joined
Aug 25, 2011
Messages
866
Reaction score
951
Points
93

Attachments

  • Thank you
Reactions: DaveJohns

lavachik

Client
Joined
Sep 18, 2020
Messages
52
Reaction score
19
Points
8
Отличная реализация бота без использования WebHook


Спасибо за работу.
 
  • Thank you
Reactions: soprano

radv

Client
Joined
May 11, 2015
Messages
3,825
Reaction score
2,035
Points
113
с картинками и другими медиа работает? Как ведет себя при многопотоке? Как быстро реагирует на сообщения юзера?
 
Last edited:

soprano

Client
Joined
Aug 25, 2011
Messages
866
Reaction score
951
Points
93
с картинками и другими медиа работает? Как ведет себя при многопотоке? Как быстро реагирует на сообщения юзера?
Многопоток не пробовал, на сообщения юзера реагирует с задержкой в 1 секунду, с медиа именно в этом шаблоне работает, если отпрвлять прямую ссылку на залитый файл типа https://icdn.lenta.ru/images/2023/03/13/16/20230313162848000/detail_9b49de581c4ab846d44fbae34739e35d.jpg или на видео, тогда покажет в боте, можно, конечно, отправку с компа сделать через api.telegram, только запрос изменить надо.
 
Last edited:

radv

Client
Joined
May 11, 2015
Messages
3,825
Reaction score
2,035
Points
113
Многопоток не пробовал, на сообщения юзера реагирует с задержкой в 1 секунду
Я про то, что если разные пользователи одновременно будут общатьсся с ботом, то обработка в порядке очереди? т.е. если скажем одновременно будет общаться с ботом скажем 10 юзеров, то задержка ответа может быть 10 секунд?
 

_HEDELKA_

Client
Joined
Feb 20, 2022
Messages
648
Reaction score
170
Points
43
Украли! Среди белого дня, вхаххаа я ботами занимаюсь, уже 3-5 проекта выпустил пишите :D
 

soprano

Client
Joined
Aug 25, 2011
Messages
866
Reaction score
951
Points
93
Я про то, что если разные пользователи одновременно будут общатьсся с ботом, то обработка в порядке очереди? т.е. если скажем одновременно будет общаться с ботом скажем 10 юзеров, то задержка ответа может быть 10 секунд?
Вряд ли, как бы боты с миллионами посетителей работали? Задержку в коде я поставил, можно убрать, будет сразу отвечать.
 

radv

Client
Joined
May 11, 2015
Messages
3,825
Reaction score
2,035
Points
113
Вряд ли, как бы боты с миллионами посетителей работали? Задержку в коде я поставил, можно убрать, будет сразу отвечать.
ну одно дело бот в зенно (работает, только когда запущен в зенно), другое без зенно (так быстрее работает). А так полезная информация.
 
  • Thank you
Reactions: soprano

lavachik

Client
Joined
Sep 18, 2020
Messages
52
Reaction score
19
Points
8
Я про то, что если разные пользователи одновременно будут общатьсся с ботом, то обработка в порядке очереди? т.е. если скажем одновременно будет общаться с ботом скажем 10 юзеров, то задержка ответа может быть 10 секунд?
Ну так заддержка в 1 потоке конечно будет. Он же работает в процедурном варианте при том без вебхука или сокета


Но 10 юзеров особо погоды не сделают
 
  • Thank you
Reactions: soprano

n0n3mi1y

Client
Joined
Mar 8, 2017
Messages
1,299
Reaction score
633
Points
113
Ну ребяты, ну ЗП не для асинхрона, не для работы с юзерами "на лету". ЗП - не про скорость и железную стабильность. Больно.
 

turfierdal

Client
Joined
Jan 21, 2021
Messages
21
Reaction score
4
Points
3
полезный шаб. к нему нужно дополнение, авторегер ботов на аке телеграм по ключевым словам)
 

soprano

Client
Joined
Aug 25, 2011
Messages
866
Reaction score
951
Points
93
полезный шаб. к нему нужно дополнение, авторегер ботов на аке телеграм по ключевым словам)
А ещё регер самих акков тг, парсер групп и, заодно, рассыльщик. Дерзайте!
 

AleXPrischepA

Client
Joined
May 6, 2015
Messages
210
Reaction score
97
Points
28
Вряд ли, как бы боты с миллионами посетителей работали? Задержку в коде я поставил, можно убрать, будет сразу отвечать.
Даже если максимально оптимизировать шаблон, то более 30 пользователей в секунду на одном боте не выйдет, у TG API есть ограничение не более 30 запросов в секунду.

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

n0n3mi1y

Client
Joined
Mar 8, 2017
Messages
1,299
Reaction score
633
Points
113
Я про то, что если разные пользователи одновременно будут общатьсся с ботом, то обработка в порядке очереди? т.е. если скажем одновременно будет общаться с ботом скажем 10 юзеров, то задержка ответа может быть 10 секунд?
Будет. Посмотрел внутрянку шаблона. Если это просто автоответчик - это будет незаметно. Если это будет бот, которому надо еще "собрать информацию", скачать что-то, загрузить, обработать - каждый пользователь будет ждать своей очереди. Увы, ни одного асинхронного метода я не увидел.

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

radv

Client
Joined
May 11, 2015
Messages
3,825
Reaction score
2,035
Points
113
Будет. Посмотрел внутрянку шаблона. Если это просто автоответчик - это будет незаметно.
Ну на малом количестве юзеров не заметно. Замечал что в некоторых ботах задержка на ответы большая или совсем не отвечают. По опыту (сам как то делал тг боты) сделал выводы, что зенку для тг автоответчика можно использовать только в целях обучения и тестов, набора опыта и навыков, а для работы лучше использовать другие варианты (сервисы, свои решения через запросы и т.п.)
 

lavachik

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

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

_HEDELKA_

Client
Joined
Feb 20, 2022
Messages
648
Reaction score
170
Points
43
А если использовать с бд в связке не пробовал ?
Я просто задумался что если я все сообщения что пришли буду помещать в Бд и потом с бд брать данные и отвечать.
А лучше сделать 2 шаблона ну или розделить как-то на потоки , 1 читает и пишет а второй обробляет данныеи отвечает

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

radv

Client
Joined
May 11, 2015
Messages
3,825
Reaction score
2,035
Points
113
Но конечно для меня проще написать бота на php
Я думаю на php или python будет быстрее работать чем на зенке
 
  • Thank you
Reactions: usboff and lavachik

Kokos

Client
Joined
Sep 5, 2019
Messages
117
Reaction score
56
Points
28
Я думаю на php или python будет быстрее работать чем на зенке
если в боте не предусмотрен многопоток ( асинхронность ) , то разница будет не сильно заметна, он всеранво упрется , и при каком то колве юзеров , будет очередь
 

radv

Client
Joined
May 11, 2015
Messages
3,825
Reaction score
2,035
Points
113
если в боте не предусмотрен многопоток ( асинхронность ) , то разница будет не сильно заметна, он всеранво упрется , и при каком то колве юзеров , будет очередь
а смысл делать такого бота без учета многопотока и асинхронности? Если только для практики и получения опыта
 

_HEDELKA_

Client
Joined
Feb 20, 2022
Messages
648
Reaction score
170
Points
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
Joined
Sep 5, 2019
Messages
117
Reaction score
56
Points
28
а смысл делать такого бота без учета многопотока и асинхронности? Если только для практики и получения опыта
да , потренироваться
 
  • Thank you
Reactions: radv

VadimPasport

Client
Joined
May 19, 2021
Messages
71
Reaction score
7
Points
8
Подскажите новичку как библиотеку подключить , без нее отказывается работать?
 

soprano

Client
Joined
Aug 25, 2011
Messages
866
Reaction score
951
Points
93
  • Thank you
Reactions: mokasin25

Users Who Are Viewing This Thread (Total: 1, Members: 0, Guests: 1)