- Saved searches
- Use saved searches to filter your results more quickly
- License
- emirn/google_sheet_reader_bot
- Name already in use
- Sign In Required
- Launching GitHub Desktop
- Launching GitHub Desktop
- Launching Xcode
- Launching Visual Studio Code
- Latest commit
- Git stats
- Files
- README.md
- About
- Подключение телеграм бота к гугл таблицам
- Создание телеграм-бота
- Подключение гугл-таблицы
- Saved searches
- Use saved searches to filter your results more quickly
- Neliz3/counter_bot
- Name already in use
- Sign In Required
- Launching GitHub Desktop
- Launching GitHub Desktop
- Launching Xcode
- Launching Visual Studio Code
- Latest commit
- Git stats
- Files
- README.md
- About
Saved searches
Use saved searches to filter your results more quickly
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
Telegram bot to get data from Google Sheet, checks the very first column for time (in hours) and returns rows where time matches
License
emirn/google_sheet_reader_bot
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
Telegram bot to get data from Google Sheet, checks the very first column for time (in hours) and returns rows where time matches
1. Create Google Sheet with the data. The very first column is treated as a key for the start time of event. You may have multiple rows with the same key, all of them they will be displayed then.
Start Time | Where | Description | Author |
---|---|---|---|
9 | red room | first talk description | John Doe |
10 | red room | talk about javascript | Jack Black |
11 | red room | some marketing talk bs | William White |
9 | green room | some keynote talk | John Baker |
10 | green room | networking and coffee | Bob Will |
11 | green room | some use case for node.js | Diana White |
2. Publish this Google sheet (File — Publish To Web — OK)
3. (for heroku) Create a new app on heroku (say, «myapp-bot-app»)
3. (for cloud9) Create account on c9.io, create Node.js workspace and run the command git clone git@github.com:emirn/google_sheet_reader_bot.git
4. Register telegram bot (send /newbot commmand to register bot with https://telegram.me/BotFather in Telegram) and copy token for newly created bot.
5. Copy config.js.example into config.js
6. Fill values in config.js to set:
module.exports = < 'TelegramProductionURL': 'https://myapp-bot-app.herokuapp.com/', // your heroku app do not forget trailing "/" !! 'TelegramToken': '', // Telegram token you got from @BotFather 'googleSheetKey': '', // the key of the google sheet (should be public!), extract key from the google sheet doc publich url "confTimeZone": "Europe/Berlin" // time zone of the conference so the bot could output events for the current time in the form like "Europe/Berlin", see http://momentjs.com/timezone/ >
7. Install required packages using npm install command in the console
8 (for heroku). Push the code to heroku using commands git add . , git commit -m «initial version» and then finally git push
9 (for cloud9). Simply run the bot on the workspace using the command node . . IMPORTANT: cloud9 is mostly for development purposes, if you want to run the bot as product then consider running on Heroku too.
Congrats! Now you may send the command like 10 to the bot and it will send you all events which are taking place at 10 o’clock according to the spreadsheet.
You may change the spreadsheet and the bot will take new data form the spreadheet online.
- add the bot to the Telegram using the link https://telegram.me/yourbot where yourbot will be replaced with your actual bot name
- send ‘Hi’ to the bot to show events taking place at the current time (in the timeone defined by config.confTimeZone)
- or send the time in a form of 12 for 12 PM, 14:43 for 2.43 PM etc.
- the bot will list all events taking place at time entered
About
Telegram bot to get data from Google Sheet, checks the very first column for time (in hours) and returns rows where time matches
Подключение телеграм бота к гугл таблицам
Это мой первый пост на этой площадке, целью которого является погружение в коммьюнити для обратной связи и полезных ремарок относительно этой статьи. Также буду рада, если эта статья станет полезной для начинающих свой путь в написании ботов людей 🙂
За последний год я узнала об интересном способе автоматизации бизнес-процессов, которая достигается комбинацией гугл-таблиц и телеграма. Такие задачи как учет финансов, тайм-менеджмент, пересылка событий, сообщений, уведомлений и т.п. легко решаются с помощью бесплатного инструментария гугла и телеги.
Далее речь пойдет о создании первого бота и написании скрипта в Apps Script. Поехали!
Создание телеграм-бота
Откуда вообще берутся боты в телеграме? Опытному пользователю можно пропустить это пункт, ну а новичкам настало время познакомится с @BOTFATHER
Находим отца всех ботов в поиске телеги и видим, что этот бот вообще из себя представляет.
После старта этого бота мы увидим список команд.
Здесь нам нужна команда /newbot, чтобы создать нашего первого бота.
Порядок действий незамысловатый: создаем бота помандой /newbot, даем ему вменяемое имя и задать ему username с обязательным окончанием bot. В результате получаем API токен нашего бота, который и будем дальше использовать.
Можете проверить работоспособность созданного бота перейдя по следующему URL:
https://api.telegram.org/bot2011183802:AAEW7ZNRVvlr1TG1N0DNkRB9G4FmvkBUUUU/getMe
выделенное жирным замените на апи своего бота
Запрос вернет примерно это:
Подключение гугл-таблицы
Переходим к гугл табличкам и создаем новый док.
Нам нужен пункт меню Инструменты/Tools -> Редактор скриптов/ Script editor.
Должно получиться вот это:
Затрем скрипт и напишем свой на языке JavaScript. Дополнительно в скрипте могут быть использованы инструменты гугла (классы, методы и т.п.), что мы далее и рассмотрим.
Начнем с объявления глобальных переменных. У нас их будет только две — API бота и App_link.
const API = "2011183802:AAEW7ZNRVvlr1TG1N0DNkRB9G4FmvkBUUUU"; //в кавычки впишите свой апи const App_link = ""; //значение переменной пока оставляем пустым
Напомню, что АПИ бота мы получили в диалоге с botfather.
Далее напишем функцию send, которая отправляет сообщение в чат с нашим ботом.
function send (msg, chat_id) < let payload = < 'method': 'sendMessage', 'chat_id': String(chat_id), 'text': msg, 'parse_mode': 'HTML' >let data = < 'method': 'post', 'payload': payload >UrlFetchApp.fetch('https://api.telegram.org/bot' + API + '/', data); >
Функция send() отправляет запрос для общения со строними приложениями, в нашем случае — с телегой. Подробнее в документации Class UrlFetchApp.
Аргументы функции — текст отправляемого сообщения и ид чата, в которое это сообщение отправляется.
Далее нужно предусмотреть механизм запуска функции send() . Осуществим это из тела другой функции doPost():
Это стандартная функция при работе с телеграм ботами, в которую зашиваются ответные действия от бота при отправке сообщения в чат с ним.
Здесь мы сравниваем текст полученного ботом сообщения с текстом «/hello» и вызываем функцию send() при совпадении. Это все действия нашего бота.
Сначала сохраним скрипт и задеплоим проект. Кликаем на кнопку Deploy -> New deployment.
В результате откроется окно New deployment, где нужно кликнуть по шестеренке и выбрать Web app.
В поле Who has access выбираем Anyone, что позволит другим пользователям вносить правки в проект и деплоить без вашего участия.
При первом запуске приложение попросит авторизации. Проделываем это упражнение.
Здесь нам нужен URL в самом конце. Копируем его по кнопке Copy и вставляем в качестве значения глобальной переменной App_link, значение для которой мы оставили изначально пустым.
Создадим функцию установки вебхука для получения обновлений от нашего бота.
Добавим следующий код к нашему скрипту:
function api_connector () < UrlFetchApp.fetch("https://api.telegram.org/bot"+API+"/setWebHook?url full-width ">
Если функция выполнилась без ошибок, идем проверять работу нашего бота непосредственно в телеге.
Сообщение «/hello» успешно распознано, на что наш бот ответил «Hello world».
Saved searches
Use saved searches to filter your results more quickly
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
Telegram Bot for dealing with Google Sheets in Python using sqlite3, python-telegram-bot and gspread library
Neliz3/counter_bot
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
Telegram Bot for dealing with Google Sheets in Python using sqlite3, python-telegram-bot and gspread library
Counter-hack helps to count money (or something else in future) getting numbers and categories from a user.
- Sqlite3 database is used for data storage.
- The bot, receiving a request from the user, processes it using the python-telegram-bot library, which interacts with the Telegram bot API.
- gspread is a Python API for Google Sheets.
- Open Google Sheets template
- Click ‘Share access’ for editing with telegram-bot-service@counter-bot-361806.iam.gserviceaccount.com
- Copy URL of a page and send it to Counter-hack bot
- All packages are located in requirements.txt
- Environmental variables are located in .env (you must change example.env file)
pip install -r requirements.txt
Step by step installation
pip install python-telegram-bot --upgrade
Then library for getting environmental variables:
Install a gspread library (a Python API for Google Sheets)
- Adding new languages
- Adding feature for an admin to get more statistic information
- Bot will create its own table with all values, user need only click start, pass authentication and choose a template
- Replace polling with webhook
- Check if the name of a sheet is equal to a month and create a new one if not
About
Telegram Bot for dealing with Google Sheets in Python using sqlite3, python-telegram-bot and gspread library