Телеграм бот и гугл таблицы. Создание Telegram бота в Google Sheets за 4  500 руб., исполнитель Юрий (YuriCoder) – Kwork

Вступ

Здавалось, для чого може бути потрібно зв’язати Телеграм бота та Google таблиці? Але досвід показав, що може бути потрібно) Прикладів може бути безліч: від простих ботів для опитування, до складних систем адміністрування, від ботів зворотного зв’язку, до ботів для чату. У цій частині буде теорія, про інструменти якими будемо користуватись та спектр застосування Телеграм ботів.

Google App Script

У Google є своя власна адаптація мови програмування Javascipt, завдяки якій можна маніпулювати всією екосистемою, від таблиць(про які буде йти мова у серії цих статей) до хмарного сховища, пошти, календаря та багато іншого. Назва їй - Google App Script. Вікіпедія каже:

App Script — скриптова платформа, розроблена в Google для розробки легких веб додатків на платформі Google Workspace. Google Apps Script початково розроблена Майком Гармом як побічний проєкт під час роботи над Google Sheets. Google Apps Script вперше публічно анонсований у травні 2009. У серпні 2009 Google Apps Script згодом став доступним для всіх клієнтів Google Apps Premier та Education Edition. Фреймворк базується на JavaScript 1.6, але також включає в себе деякі частини з 1.7 та 1.8, а також підмножину ECMAScript 5 API. Проєкти Apps Script запускуються в інфраструктурі Google на стороні сервера. Згідно Google, Apps Script «забезпечує прості шляхи для автоматизації задач на перетині продуктів Google та сторонніх сервісів». Apps Script також являється інструментом для написання розширень для Google Docs, Sheets та Slides.

App Script є альтернативою від Google на макроси у продуктах Microsoft, що дозволяє, як написано в Вікіпедії, автоматизувати задачі, які часто треба виконувати. Але в них вийшло зроби набагато більший інструмент ніж макроси у Microsoft office, бо в нас є змога працювати зі сторонніми сервісами, навіть не з іншими продуктами Google. В них є хороша документація, щодо застосування та роботи з їх сервісами, а на просторі інтернету у вас є змога знайти ще більше матеріалу по роботі з їх сервісом, а також інтеграції сторонніх застосунків.

Google Таблиці будуть виступати у ролі бази даних, де зберігатиметься інформація, і через код ми маніпулюємо нею, зчитуємо, вносимо нову, або відправляємо повідомлення користувачу від імені бота з цією інформацією. Звісно, така база не буде відрізнятись великою швидкістю на відміну від інших субд, як наприклад: MySQL, Microsoft SQL Server, PostgreSQL, … . Але цього достатньо щоб писати цікаві проєкт, наповнені логікою та функціоналом.

У App Script крім можливості написання коду, також є тригери, які виконають ту, чи іншу функцію від певних умов, наприклад: зміна таблиці, відкриття таблиці, за часом, … . Також є можливість розробки веб додатків, які зможуть працювати з основним кодом, а отже і з Телеграмом. Можливе підключення різних бібліотек до вашого проєкту, або створення своїх, аби облегшити розробку застосунків.

Великим плюсом є те, що хостингом для нас виступає сервера Google, завдяки чому нам не потрібно шукати хостинг де змогли б розмістити свого бота, на веб додаток це теж розповсюджується.

Про Телеграм

Телеграм дає змогу використовувати інтерфейс месенджера для нашої логіки. В офіційній документації написано:

Боти - спеціальні аккаунти в Telegram, створені для того, щоб автоматично обробляти і відправляти повідомлення. Користувачі можуть взаємодіяти з ботами через повідомлення, відправлені через звичайні, або групові чати. Логіка бота контролюється за допомогою HTTPS запитів до нашому API для ботів.

Розробити свого бота для Телеграм можливо будь-якою мовою програмування яка може відправляти запити. Усі відомі бібліотеки для різних мов базуються на принципах де вони за кадром збирають запит потрібний користувачу та відсилають його до серверів Телеграму, де той обробляється, а потім надходить відповідь. У цих статтях будемо писати все своїми власними руками, де можливо наочно бачити, що, де і як відбувається.

У Телеграм є сайт Telegram Bot API, де розписано про те, які методи існують та які вони містять в собі параметри, як робити запит та отримувати повідомлення. Це буде головним інструментом на одній сходинці з Google App Script, якими будемо користуватись у наступних частинах.

Як працюють телеграм боти?

Коли користувач через додаток Телеграм якось взаємодіє з ботом, то додаток відправляє на сервер Телеграму запит. Сервер розуміє кому адресовано цей запит і може: відправити запит боту, або чекати запит від бота.

Є дві основні технології якими бот може отримувати запит: Long polling та Webhook. Суть першого у тому, щоб постійно питати сервер Телеграму на наявність оновлень/апдейтів, у той час, як webhook - це коли сервер Телеграму сам інформує про наявність оновлень.

І ось після отримання оновлень від сервера, бот якось маніпулює даними, та відправляє новий запит на сервер Телеграм.

Як створити телеграм бота?

У застосунку Телеграм у пошуку набираємо - “BotFather”, нам потрібен той, що з пташкою.

Після запуску бота з’явиться список команд(його також можна подивитись натиснувши зліва знизу кнопку “Menu”, або ввести “/help” чи “/start”), нам потрібна команда “/newbot”, шукаємо та натискаємо по ній, або пишемо вручну.

Після цього попросять ввести ім’я боту(те, яке буде відображатись зверху, НЕ НІК!)

Тепер треба ввести username(нік) боту - унікальне ім’я, яке неможна буде змінити(на відміну від звичайного імені). Довжина ніку повинна бути від 5 до 32 символів, може складатися з латинських літер, цифр та підкреслення(але починатись ім’я може тільки з літер!). Обов'язково username повинен закінчуватись на “bot”, регістр літер не важливий(“BOT”, “Bot”, “boT” - це все теж підійде).

Токен нашого бота

Після введення коректного ніку, який ніким не зайнятий(іноді буває не легко знайти вільний), ми побачимо вітання про успішне створення бота. У повідомленні можемо побачити токен нашого бота(світло фіолетового кольору) з яким будемо працювати, а також посилання на документацію по роботі з API.

API (Application Programming Interface) - “програмний інтерфейс застосунку”, набір правил(синтаксис) за допомогою яких одна програма може взаємодіяти з іншою.

Додаток: На одному аккаунті телеграм ви можете мати до 20 ботів включно.

Перший запит

Вже тепер можна відправити перший запит нашому боту з браузера. Для цього є посилання(див. документацію):

https://api.telegram.org/bot<token>/METHOD_NAMЕ

Де замість “<token>” - токен нашого боту.
Замість “METHOD_NAMЕ” - назва методу який викликаємо(див. документацію)

Наприклад:

https://api.telegram.org/bot6153213842:AAF0ftdZaU30FlGDUVfMZDZi82zSqxXqbq0/getMe

Відправивши такий запит отримуємо базову інформацію про бота. Цей запит не має параметрів, потім ми будемо використовувати складніші запити з великою кількістю параметрів.

Про застосування Google Таблиць та Телеграм ботів

Все ж таки, для чого може виникнути необхідність використовувати саме таблиці. Наприклад:

  1. Бот для опитувань, де будуть записуватись в таблицю відповіді користувачів, а з таблиці легко строїти графіки, рахувати формули, строїти діаграми та інше.

  2. Бот текстових історій, де в таблиці зберігаються репліки персонажів, прогрес гравців та інші дані.

  3. Бот моніторингу якоїсь інформації.

  4. Бот зворотного зв’язку, де записувались би ті чи інші проблеми, або пропозиції з якими відгукнулись користувачі.

  5. Та інші.

З іншими базами даних потрібно більше інструментів для маніпуляцій із даними, + Google Таблиці завжди під рукою, що дає змогу залежати тільки від інтернету. Слід зазначити, що не всі проєкти потребують серйозних інструментів, це як нарізати хліб світовим мечем) Треба з початку моделювання та розробки аналізувати серйозність проєкту та відповідно обрати інструменти для реалізації.

Висновок

Телеграм ботів писати не так вже і важко, якщо вже володієш якоюсь мовою програмування, а якщо ні, то буде цікаво вивчити її тренуючись на такому проєкті.

У цій статі вже створили телеграм бота, зробили перший запит йому, а також дізнались про їх роботу.

У наступних частинах ми перейдемо до практики, і напишемо першого телеграм бота, буде багато нового цікавого. На все добре!

P.S. Якщо є побажання, або зауваження, то коментарі у вашому розпорядженні)

Поділись своїми ідеями в новій публікації.
Ми чекаємо саме на твій довгочит!
Kãmãzęƴ
Kãmãzęƴ@Kamazey

972Прочитань
0Автори
5Читачі
На Друкарні з 15 квітня

Вам також сподобається

  • Java. Мережі

    Що відбувається під капотом у "socket.getOutputStream().write("msg".getBytes());" ?

    Теми цього довгочиту:

    Java
  • Damn Small Linux - диструбитив який повертає життя старим комп’ютерам

    DSL 2024 відродився як компактний дистрибутив Linux, спеціально призначений для комп'ютерів з низькими характеристиками x86. Він вміщує багато програм у маленький пакет. Усі програми вибрані за їх функціональність, невеликий розмір та низькі вимоги до залежностей.

    Теми цього довгочиту:

    Linux
  • Телеграм гра: Catizen-Mantle - знову котики?!

    Лише позавчора написав статтю про Catizen, а сьогодні ми отримали бета-запуск Catizen-Mantle! Бета-версія вже зрозуміла більшості, а в криптосвіті перші зазвичай заробляють найбільше!

    Теми цього довгочиту:

    Криптовалюта

Коментарі (3)

У статті бракує якихось реальних прикладів, які демонструватимуть зв’язку таблиці з телеграм-ботом. Банально простий бот для збирання бази користувачів або ж просто мініопитування, куди будуть записуватись відповіді.

Вам також сподобається

  • Java. Мережі

    Що відбувається під капотом у "socket.getOutputStream().write("msg".getBytes());" ?

    Теми цього довгочиту:

    Java
  • Damn Small Linux - диструбитив який повертає життя старим комп’ютерам

    DSL 2024 відродився як компактний дистрибутив Linux, спеціально призначений для комп'ютерів з низькими характеристиками x86. Він вміщує багато програм у маленький пакет. Усі програми вибрані за їх функціональність, невеликий розмір та низькі вимоги до залежностей.

    Теми цього довгочиту:

    Linux
  • Телеграм гра: Catizen-Mantle - знову котики?!

    Лише позавчора написав статтю про Catizen, а сьогодні ми отримали бета-запуск Catizen-Mantle! Бета-версія вже зрозуміла більшості, а в криптосвіті перші зазвичай заробляють найбільше!

    Теми цього довгочиту:

    Криптовалюта