Телеграм бот на Зенно

Archer

Client
Регистрация
01.10.2022
Сообщения
21
Благодарностей
1
Баллы
3
Доброго времени суток.

Я новичок в Зенно, ещё ничего не писал. Предложили для портфолио создать бот с таким функционалом:

есть чат, в котором люди за день сдают отчёты (с вечера до 23:59).

Задания:
1. чекать отчёты и в полуночь бот напишет перечень сдавших. Либо укажет тех, кто не сдал.
Чекать планирую по тегам и ключевым словам (у каждого своё кл.слово/тег).

2. в гугл таблицу по каждому участнику вносить сдал или нет. Таблицу вижу в таком формате: колонка с участниками, месяц, отчёт (+ или -).

Предполагаю, п.2 тяжелее реализовать и нужен Интегромат. Для старта хорошо бы хоть с п.1 сделать бот.
----
Вопросы:
1. при помощи какого функционала разрабатывать бота, куда смотреть?
2. если Интегромат не нужен, при помощи чего сконнектится бот с таблицей ?
3. в целом, на сколько трудный проект? Как отдельно п.1,2 так и вместе
 

bizzon

Client
Регистрация
08.09.2015
Сообщения
1 103
Благодарностей
132
Баллы
63
2. если Интегромат не нужен, при помощи чего сконнектится бот с таблицей ?
Интегромат не нужен, в Зенно - этот функционал из коробки. На форуме и в справке много инфы на эту тему.
 

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 787
Благодарностей
2 453
Баллы
113
Так если задача решается для портфолио, то не нужно изначально делать эту задачу так, что она потом никому не пригодится.
Нужно стараться сразу делать такие решения, которые потом же сами будете использовать для решения своих задач.
Первое что нужно сделать - не использовать гугл таблицу и сразу работать с какой-то базой, например MySQL.

Берем любой хостинг, который будет отвечать по https.
Подключаем его в виде вебхука к телеграму.
Подключаем бота к нужному чату, разрешаем ему читать сообщения.

На php просто принимаем все POST запросы.
Если есть поле update_id - значит запрос от бота - значит берем содержимое и добавляем в базу данных, например MySQL.
Поля в базе: id_update, id_chat, id_user, text, timestamp.
На этом весь бот готов.

Дальше дело относительно отчёта
Пишем функцию, которая проверяет отчеты
На той же php страничке получаем с базы ИД всех пользователей за текущие сутки.
Проходим в списке по каждому пользователю
Проверяем, удовлетворяет ли текст отчёту (мало ли что там пользователь ещё написал...)
Если удовлетворяет - переходим к следущему пользователю

На выходе получится массив, что-то вроде:
ид пользователя : true|false

Пишем функцию, которая формирует отчет с массива, полученного с предыдущей функции.
После чего отправляет его в нужный чат.

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

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

И да, текста здесь много - но сама задача примитивная (простая) и имея хотя бы чуть-чуть практики должна решаться примерно за час (если она не будет усложняться а будет именно в том виде, в котором была описана).
 
  • Спасибо
Реакции: Alex.A и bizzon

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