2022-04-29 12:42:30
Оновлення Bot API 6.0, WebApp.
Я нарешті почав розбиратися у оновленні Телеграму, та навіть зробив вже дуже просту веб-форму, але для одного закритого проєкту, тому потім зроблю демонстраційний варіант, по якому я буду робити новий урок. Багато з вас мене про це питають, тому дам відповідь у цьому пості.
Якщо ще хтось не в темі, то тепер просто у Телеграм можна вбудовувати веб-сторінки, це дуже нативно, навіть тема інтерфейсу підтягується, тому ваш сайт буде виглядати максимально приємно для юзерів.
Ви хотіли різних кнопок, різних кольорів, різного розташування та розмірів? Ви втомились від інлайн-кнопок? Дуже добре, тоді ця онова саме для вас.
Але! Вам потрібно вміти писати код на HTML, CSS та Javascript, крім того ж Python. Якщо ви не вмієте - шанс усе одно є, тому що вже викладають приклади проєктів, та ви можете їх адаптувати під свій кейс.
Приклад №1 (andrew000) — aiogram v2.20
Приклад №2 (aiogram - example) — aiogram v.3.0
Приклад №3 (abdullaev388) — aiogram v2.20
Якщо вам це важко, то не забувайте, ви завжди можете звернутися до веб-програмістів, хто зробить "маленький сайт" саме під ваш випадок.
Та що я можу зараз сказати про Web App?
Дуже зручно у тому разі, коли вам хочеться зробити щось дуже швидке, де інлайн-кнопки вже не справляються. Наприклад, як сама Телега показувала — вибір квитків, чи вибір дат у календарі, чи заповнювання форми (без створення купи повідомлень у листуванні з ботом, та необхідності робити кнопку "назад" у випадку помилок на вводі).
Мінус інлайн кнопок у тому, що все ще існують ліміти на натискання, та якщо в вашому боті менюшка велика, то бувають випадки, коли бот отримує помилку RetryAfter. Та буває, що з-за прокладки у вигляді Телеграму - кнопки працюють не дуже швидко. Тому, без цієї прокладки все працює на порядок швидше.
Тим не менш, якщо в вас є робочій бот з FSM,
та все дуже добре працює (та якщо ви не дуже знайомі з веб-програмуванням й поготів) — не поспішайте усі рішення замінювати на WebApp. Це тому, що результат буде майже той самий, а ви лише втратите час.
Хоча й ніхто не забороняє просто спробувати для того, щоб навчитися.
Загалом, для того щоб працювало все дійсно нормально, вам знадобиться:
1. Купити домен та налаштувати A-record, щоб домен вказував на ваш сервер
2. Налаштувати nginx проксі до вашого застосунку та додати SSL сертифікат (із допомогою certbot — безкоштовно)
3. Зробити html-файли сайту (де будуть необхідні скріпти на JS)
4. Налаштувати aiohttp з відповідними роутами, на які люди будуть звертатися
5. Зробити бота, який буде видавати WebApp у виді текстової, чи інлайн кнопці, чи кнопці-меню.
6. Обробити завершення роботи після закриття WebApp (знов у боті).
Тобто, дуже не раджу лізти сюди непідготовленим розробникам. Спочатку розбирайтесь у простих речах, вивчіть роботу з базами даних, можливо налаштування nginx та домену, та інше, а потім вже розробляйте WebApp-и.
598 viewsedited 09:42