Если для вашего бизнеса или проекта сейчас актуален переход в MAX — делимся полезным туториалом, который сократит время и упростит создание проекта.
В видео разобрали всё по порядку: где и как получить токен, как подключить бота к конструктору, и собрали живой проект с базовым функционалом — сбор данных, приём платежей, выдача продукта, запись в списки. Плюс разобрали нюансы, которые лучше знать до старта, чтобы не споткнуться в процессе.
Надеемся, что будет полезно — в плоскости разработки вопросов достаточно много.
Хотите попробоват создать чат-бот в MAX, ВКонтакте, Telegram или WhatsApp? - На конструкторе LEADTEX доступна бесплатная неделя и более 250 уроков по созданию чат-ботов в личном кабинете.
Привет. Решил рассказать, как взялся писать собственного чат-менеджера.
Чат-менеджер - это система, которая управляет ботом в чатах ВК, Телеграма и других платформ. Обычно такие боты умеют банить, мутить, фильтровать спам, давать фишки вроде установки ника, просмотра погоды и т.д.
Я пользовался разными готовыми чат-менеджерами, но всё чаще видел, что функционала не хватает. Просьбы о доработках игнорировались. Плюс когда-то я занимался разработкой игровых серверов на Source-движке (Valve/Steam) и использовал плагины, которые связывали сервера с чатами ВК/ТГ. Работало это криво: возможностей мало, обновлений почти нет. Поэтому я решил сделать свой вариант - бесплатный.
В тот же день сел и начал писать. Выбрал Laravel на PHP - удобный и живой фреймворк.
Что уже работает:
• мультиплатформенный чат-бот с собственной архитектурой;
• интеграция с ВКонтакте и Telegram;
• интеграция с игровыми серверами Counter-Strike Source v34/v93 (OB) и CS:GO Legacy;
• модерирование: бан, мут, капча;
• развлекательные команды: ники, браки, мини-игры, погода и др.;
• серверные фишки: репорт-система, онлайн, статус сервера, обмен сообщениями.
На стороне игровых серверов работает плагин на SourcePawn под Sourcemod. Архитектура - ядро + модули, взаимодействующие через REST API.
Сейчас доделываю обновление, которое позволит любому пользователю привязать свой Steam ID и смотреть игровую статистику прямо из чата. Для этого сделал конвертер SteamID → Steam2 / Steam3 / Steam64 / AccountID / URL Profile.
Планы: завершить «базовую часть» - статистику чата, глобальные антиспам-детекторы, команду /спам. После этого - расширения под CS 1.6 (AMXX 1.9+) и под CS2 (C#). Опыт есть в обеих средах, а вот времени не очень.
Возможно позже посмотрю в сторону модулей для Discord и Max. Да, знаю - Max сейчас все хейтят, так что не кидайтесь сильно 🙂
Проснулся, улыбнулся, прочитал о том, что YouTube замедляют, снова улыбнулся, зашел на YouTube — не работает. Перестал улыбаться, начал думать, что можно круто сделать по этому поводу. Увидел, что все байтят перейти в их Telegram (вот, кстати, мой), и появилась идея создать бота, который получает список подписок пользователя на YouTube, ищет Telegram-каналы всех подписок и выдает их пользователю списком, чтобы он не потерял любимых авторов. Думаю, идея нормальная — хитом, конечно, не станет, но в первую очередь делал для опыта.
До этого я, конечно, создавал ботов. По сути, я умел все, что нужно для проекта:
Работа с базой данных (использую MongoDB, в профессиональном сообществе её немного хейтят, но ладно).
Основной язык — Node.js + фреймворк telegraf.js.
Работа с Google API (YouTube API, в частности) — делал авторизацию для сайта с цитатами (недоделал, к сожалению, лежит уже год полумёртвым. Если есть гениальные идеи сделать лучший сайт с цитатами, пишите мне, покреативим).
Да, в принципе, это всё, что нужно по стеку.
Так как делал проект на полном вайбе, под музыку, конечно, никакой логики не прописал, но решил затестить, что сможет сделать ChatGPT — и не зря. Он написал основной код, логика которого мне понравилась. Разумеется, чтобы его запустить, нужно было сделать кучу правок, а чтобы он заработал — многое переписать. Но в целом я оказался доволен работой ChatGPT — это реально будущее. Причём я осознал, что он смог выдать нормальный код лишь потому, что я сам чётко понимал, как будет работать бот. А значит, программисты ещё долго будут мучиться на своих креслах, работая на корпорации.
Итак, в первой версии бота была авторизация, которая не работала.
Во второй версии появилась авторизация, которая заработала.
В третьей версии основной функционал заработал, но идея не была раскрыта, так как бот искал ссылки на Telegram-каналы ютуберов из моей базы данных, в которой было всего 3 канала — что, конечно, никуда не годилось. Тогда я быстро понял, что почти все YouTube-каналы оставляют в описании ссылки на свои Telegram-каналы, а значит, взять их — дело лёгкое, верно?
Ах да. YouTube API аж 3-й версии не способен получать ссылки каналов... Это же чуть ли не базовая функция API — получать всё, что написано на странице.
Благо нашёлся энтузиаст, который уже сделал своё API — yt.lemnoslife.com, где это хорошо реализовано. Респект автору огромный.
Ну и после этого последовал миллион фиксов багов и непоняток, потому что я неопытный и слабый разработчик. В итоге всё работает, но появилась другая проблема: бот запрашивает конфиденциальные данные пользователя — список его подписок, а значит, Google просто так не даст их получать тому, о ком ничего не знает. (Для тестов можно добавлять тестового пользователя).
Чтобы Google тебя одобрил, нужен сайт с главной страницей и политикой конфиденциальности.
«Кайф», — подумал я.
На самом деле заглушку сделать очень просто (домен, правда, пришлось покупать), вопрос был в содержании.
Первый раз Google не понравился логотип моего приложения, потому что он «не отражает индивидуальность» (или как-то так, короче, наверное, потому что слишком хорошо читается логотип YouTube и Telegram, с чем я согласен).
Смысл: Телеграм поглощает ютуб / Ютуб сгорает, а там телеграм
Тогда я решил показать всю свою харизму и индивидуальность:
FYTT - FromYoutubeToTelegram, что и написано на фоне
Этот они приняли. 🥳
Далее Google не понравилась политика, которую написал ChatGPT. Они жёстко написали: мол, «в вашей политике сказано, что Google продаёт данные пользователей». Я перечитал и такого там не увидел. Закинул в ChatGPT, он всё пофиксил, и наконец меня одобрили.
Далее я всё релизнул, украсил, фиксил баги неделю-две и решил рассказать об этом людям, сделав два забавных Shorts.
На данный момент моим ботом воспользовались 37 человек, но многие просто тыкнули /start и больше не заходили — что обидно :(
ChatGPT - это модель генерации текста, разработанная командой OpenAI. Эта модель использует алгоритмы машинного обучения для генерации текста, который похож на текст, написанный человеком. ChatGPT обучена на миллионах текстовых данных и может генерировать ответы на основе предоставленного
Шаг 1: Настройка телеграмм бота
Первым шагом в создании нашего бота была настройка телеграмм бота. Мы зарегистрировали нового бота в телеграмме и получили API-ключ, который необходим для общения с телеграмм API и отправки сообщений через бота.
Шаг 2: Получение данных из Хабра
Для получения текста последней статьи с Хабра мы использовали парсинг веб-страницы. Мы написали скрипт, который каждые 60 минут парсит страницу с последними статьями Хабра и получает текст последней опубликованной статьи.
Шаг 3: Использование ChatGPT для генерации ответов
Для того, чтобы наш бот мог генерировать ответы на статьи из Хабра, мы использовали ChatGPT. Для работы с этой моделью мы использовали библиотеку OpenAI для Python, которая предоставляет интерфейс для работы с моделями генерации текста, включая ChatGPT.
Шаг 4: Реализация бота
Для реализации нашего бота мы использовали библиотеку Telebot для Python. Мы написали скрипт, который получает текст последней статьи с Хабра, использует ChatGPT для генерации ответа на основе текста статьи и отправляет ответ через телеграмм API.
Шаг 5: Автоматическая публикация ответов
Мы настроили бота на автоматическую публикацию ответов на созданный нами канал в телеграмме. Теперь каждый раз, когда бот генерирует ответ на новую статью из Хабра, он автоматически публикует его на канале, доступном для просмотра всем желающим.
В результате мы создали бота, который может генерировать ответы на основе текста последней статьи с Хабра, используя ChatGPT и автоматически публиковать ответы на канале в телеграмме. Этот бот может быть полезен для тех, кто хочет быть в курсе последних новостей и обсуждений на Хабре, но не имеет времени или возможности постоянно следить за сайтом.
Telegram запустил топики - тематические подгруппы в группах от 200 участников и более. Функцию ждали давно: беспорядок и лавина сообщений снижают вовлеченность участников и качество общения, а треды не сильно помогали.
Новая функция позволяет создавать отдельные чаты внутри основной группы для тех или иных обсуждений. Для каждой такой темы можно отдельно настроить уведомления о новых сообщениях и быстро просмотреть в разделе «Общие медиа» медиафайлы, которые были опубликованы именно в ней.
Участники могут общаться в любых темах – от «Аниме» до «Ящериц», – используя весь арсенал привычных инструментов, в том числе опросы, закреплённые сообщения и ботов.
Возможность разделить общий чат на темы была создана специально, чтобы сделать удобнее обсуждения в больших группах. Опробовать темы можно в нашей демонстрационной публичной группе.
Администраторы могут включить темы в «Настройках группы» и выбрать, кому будет доступно создание тем, в разделе «Разрешения».
Как это работает
После добавления топиков группа фактически превращается в список тем для обсуждений, в которые можно вступать. По сути, форум.
Если открывать основную ссылку на группу, то открывается список тем. Например, https://t.me/ukladvc.
Обычно сверху закрепляют топик с описанием или правилами чата.
По клику на ссылку сообщения из топика открывается сразу топик (не список). Например, https://t.me/ukladvc/41164.
Изображением топика может быть эмодзи, на Telegram premium - и пользовательские эмодзи.
На десктопе пока не обновлено. Вместо топиков открывается обычный чат.
Для топиков нельзя использовать группу, привязанную к каналу для комментариев. Обычно владельцы каналов выбирают: отвязать группу от канала и преобразовать в топик либо создать новую группу и ждать вступления 200 участников.
Участники могут переключать для себя вид группы: как топики или обычный вид.
Можно включать и выключать уведомления топиков свайпом влево или долгим нажатием на тему.
По свайпу вниз (или долгим нажатием на описание) открывается поиск по всем топикам.
Для сравнения: так выглядят треды, которые уже давно есть в Телеграм.
В группах с топиками тредов нет. Вероятно, Телеграм их намеренно разделяет, и в группах с топиками нельзя будет открывать тред с ответами (replies) на сообщение.
Быстрый доступ к своим топикам и тредам
Топики и треды удобны, хотя и выглядят менее привычно чем в Discord или Slack. Вовлеченность и качество бесед точно повысится. Участники могут читать только то, что действительно интересно. Но хочется иметь быстрый доступ к "своим" топикам или тредам, а не переходить в группу и искать.
Для этого сделал бота @SaveLinkChatbot, в котором можно хранить список своих топиков и тредов. В принципе бот создан для хранения любых ссылок. Часто приходится сохранять полезную информацию, чтобы прочитать позже или держать под рукой.
Для сохранения обычной ссылки, нужно просто отправить боту текст со ссылкой.
Для сохранения ссылки на топик, нужно открыть топик, копировать ссылку сообщения (можно первого), открыть бота и отправить ему текст со ссылкой.
Для сохранения ссылки на тред, нужно выбрать сообщение, долгим нажатием открыть опции и открыть "ответы" (view replies), копировать ссылку любого сообщения и отправить боту.
Ссылки можно добавлять в одну из категорий: topics (для топиков и тредов), to read, important. Названия можно поменять.
Команда Телеграм планирует до конца года выпустить дополнительные инструменты для организации общения, которые больше подойдут маленьким группам.