Скрипт отправки сообщений в телеграмм из таблицы, получение листов по id. Отправка сообщения в телеграмм после отправки формы #гуглтаблица #googleapps #googlesheets Если вы хотите отблагодарить автора, сделать это можно по ссылке: Яндекс.Деньги: sobe.ru/na/zigoomul monobank: send.monobank.ua/2oDB2GPs96 PayPal: paypal.com/donate/?hosted_button_id=N7RJVG9CMJK4S Донат: donationalerts.com/r/zigoomul Стать спонсором: youtube.com/channel/UCzCyx8Rvj-IoEclfRi6Coew/join ✅ Телеграмм канал: t.me/ZiGoomul_GoogleApps ✅ Телеграмм чат: t.me/Zigoomul_GAS для обсуждения. ✅ Подписаться на канал: youtube.com/user/EugeneAce?sub_confirmation=1 ссылка на скрипты из видео: t.me/Zigoomul_GAS/9028 0:00 — Что нового 2:00 — Спонсорство 2:34 — Разница в работе скрипта (массивы/строки) 4:50 — Пишем скрипт 8:30 — Функция доступа к листу по Id 11:10 — Функция отсылки текста в телеграмм 15:30 — Функция сообщения в телеграмм из таблицы 36:13 — Переделка функции под отправку с формы
Источник: www.enjoytoys.ru
🧰 Отправка сообщений из Google Таблицы в телеграмм по шагам V2. Как бы я написал скрипт в 2021 году
Как передать информацию из определенной ячейки Google Sheets в чат-бот
Сервис Integromat сменил адрес сайта, дизайн и название на Make. Возможности интеграций остались такими же, но дизайн может отличаться от скриншотов, приведенных в статье.
Вы можете интегрировать чат-боты SendPulse с другими сервисами для запроса информации через Make. В этой статье, мы рассмотрим, как посмотреть информацию (числовую или текстовую) из определенной ячейки в Google Sheets.
C помощью такого сценария вы можете проверять остатки товара на складе, количество свободных квартир, цены в зависимости от курса и промокода и выдавать пользователю актуальную информацию.
В статье рассматривается интеграция с таблицами Google с помощью Make, но вы также можете получать данные из таблиц напрямую, используя только инструменты Google Sheets API и SendPulse. Читайте в статье: «Как получить данные из таблицы Google в чат-ботах».
Содержание
Как начать работу
Войдите в свою учетную запись в Make, нажмите «+ Create a new scenario», чтобы начать создавать сценарий.
Вы можете сразу выбрать, какие сервисы подключить (в данном случае это Webhooks и Google Sheets), используя поиск, или находить и добавлять их непосредственно в самом конструкторе. Нажмите «Continue» в правом верхнем углу.
Как создать вебхук
Нажмите на блок с вопросом по центру экрана и выберите блок «Webhooks» — это будет стартовый блок, который запустит цепочку.
Вам необходимо создать сам вебхук, на который будут отправляться данные с вашей цепочки в чат-боте. Из раскрывающегося списка выберите блок «Custom webhook».
📧 Отправка сообщений из Google таблиц в телеграмм по времени 🕚
Нажмите «Add», чтобы создать новый вебхук.
Введите имя для вебхука и нажмите «Save».
Ваш вебхук создан. Скопируйте ссылку — ее нужно вставить в цепочку вашего чат-бота.
Теперь Make ожидает первого полученного вебхука, чтобы определить структуру данных, с которыми ему нужно будет работать.
Как добавить ссылку на вебхук в цепочку чат-бота
Войдите в личный кабинет SendPulse. Выберите нужного вам бота и откройте режим редактирования созданной цепочки.
Добавьте и разместите блок «Запрос API» сразу за блоком, после которого нужно отправлять вебхук. Выберите тип запроса «GET» и введите URL, скопированный из Make.
Вы можете построить сценарий, запрашивая значение из определенной ячейки сами — для этого добавьте эту ячейку к параметру в виде cell=B2 .
Также вы можете запрашивать значение из ячейки, которую запросил пользователь и вы записали это значение через «Ввод пользовательских данных» — для этого добавьте эту ячейку к параметру в виде cell=> .
Нажмите «Проверить запрос», чтобы запрос отправился в Make и распознал полученные данные.
Когда Make получит вебхук, в блоке «Webhooks» вы увидите сообщение «Successfully determined».
Теперь можно добавлять другие блоки.
Как получить информацию из Google таблицы
Нажмите на «Add another module» возле блока «Webhooks» и выберите «Google Sheets».
Выберите действие «Get a cell».
Подключите свой Google Account, выберите таблицу и лист.
Отметьте, какие ячейки таблицы будете читать. Это может быть статическая ячейка (например, В2 ) или ячейка, которую вы можете передать из чат-бота (например, cell ).
Если у вас нет переменной вида 3.cell (где 3 — это номер блока в Make, в котором вы получили эту переменную из чат-бота), нажмите «Run once» в нижнем левом углу и запустите цепочку в чат-боте, в котором вы настроили вебхук. После первого прохождения цепочки переменная появится в Make.
Как передать запись из Google таблицы в чат-бот
Нажмите на «Add another module» рядом с блоком таблиц. Выберите «Webhooks» > «Webhook response».
В поле «Body» выберите Value, которое возвращается из предыдущего блока «Get a Cell», и запишите его в переменную val — это значение будет возвращаться в чат-бот:
Нажмите «Ок» для сохранения параметров.
Вернитесь в редактирование цепочки вашего чат-бота в SendPulse к блоку с вебхуком.
Вы можете записать полученное значение в переменную, чтобы использовать фильтр и добавлять его в сообщение, как переменную. Или вы можете отобразить данные пользователю один раз без записи, используя запись вида > . Читайте подробнее «Использование данных в виде выражения JSON Path».
Добавьте и разместите блок «Сообщение» сразу за блоком «Запрос API» и добавьте к нему переменную или выражение JSON path.
Сохранение и запуск
Перед сохранением и выходом необходимо проверить, корректно ли все работает.
Нажмите «Run once» и запустите цепочку, в которой вы настроили вебхук. Если вы все настроили верно, под блоками «Webhook» и «Google Sheets» отобразятся зеленые галочки.
Вы также можете нажать на цифру над блоком, чтобы посмотреть полученную информацию, которая будет передаваться в следующий блок.
Чтобы активировать сценарий, переведите тумблер в положение «ON».
Как просмотреть историю работы сценария
Перейдите в нужный вам сценарий. Вам будет доступна диаграмма всех блоков с историей выполнения блоков.
Кликните по нужному блоку, чтобы просмотреть информацию по нему. Вам будет доступна вся информация по блоку: какие значения принял и передал дальше.
Если какой-то из блоков не выполнился, он подсветится красным и при нажатии отобразится причина ошибки и подсказка, как ее исправить. Обратите внимание, что до устранения ошибки весь сценарий может приостановится и не выполнятся; операции будут становиться в очередь.
Если возникнут вопросы по настройке или сбоям сценария, можете обратится в службу поддержки Make.
Источник: sendpulse.com
Telegram bot for Google Sheets in cloud
Google Sheets is a powerful cross-platform app with a rich set of formulas and the ability to integrate with other apps.
However, such functionality is often redundant for simple tasks, which makes the work not very convenient. This is especially true for mobile devices. So it would be cool to make it possible to work with tables through other interfaces. One option is to create a Telegram bot. This bot will receive some data from user and write it as new row into Google Sheets table.
It can be hosted for free!
With zero cost, we get a convenient combination of 2 powerful tools.
Tables API
The first step is to look at the tables documentation: https://developers.google.com/sheets/api/quickstart/nodejs
You can found a very useful button on this page:
Click on that button to create a new project and download credentials file (credentials.json). Create a new file package.json
< «name»: «spreadsheets-bot», «version»: «1.0.0», «description»: «», «main»: «index.js», «scripts»: < «test»: «echo «Error: no test specified» exit 1″ >, «keywords»: [], «author»: «», «license»: «ISC», «dependencies»: < «googleapis»: «^59.0.0», «telegraf»: «^3.38.0» >>
Enter fullscreen mode
Exit fullscreen mode
- googleapis — library for google api
- telegraf — Telegram Bot framework
You can run npm install to install this dependencies.
const fs = require(‘fs’); const readline = require(‘readline’); const = require(‘googleapis’); // If modifying these scopes, delete token.json. const SCOPES = [‘https://www.googleapis.com/auth/spreadsheets.readonly’]; // The file token.json stores the user’s access and refresh tokens, and is // created automatically when the authorization flow completes for the first // time. const TOKEN_PATH = ‘token.json’; // Load client secrets from a local file. fs.readFile(‘credentials.json’, (err, content) => < if (err) return console.log(‘Error loading client secret file:’, err); // Authorize a client with credentials, then call the Google Sheets API. authorize(JSON.parse(content), listMajors); >); .
Enter fullscreen mode
Exit fullscreen mode
Quickstart code solves the authorization problem to gain access to your personal tables, which is what we need.
However, it is advisable to immediately make a change: remove «.readonly» from the line
const SCOPES = [‘https://www.googleapis.com/auth/spreadsheets.readonly’];
Enter fullscreen mode
Exit fullscreen mode
This will change readonly access to read const readline = require(‘readline’); const = require(‘googleapis’); const < Telegraf >= require(‘telegraf’); // import Telegraf // Telegram bot access token: const BOT_TOKEN = ‘1234567890:a1b2Cg2cLR4LGO1EpvDHawYPVjunkW3Bfk9’; // spreadsheets scope: read
Enter fullscreen mode
Exit fullscreen mode
You can receive messages and send replies:
const bot = new Telegraf(BOT_TOKEN); // Load client secrets from a local file. fs.readFile(‘credentials.json’, (err, content) => < if (err) return console.log(‘Error loading client secret file:’, err); // Authorize a client with credentials, then call the Google Sheets API. authorize(JSON.parse(content), startBot); >); function startBot(auth) < bot.on(‘message’, (ctx) => < if (ctx.from.id !== ‘123456789’) < // your user id return ctx.reply(‘Access Denied’); >console.log(ctx.message.text); ctx.reply(«Hi, » + ctx.from.id); >); bot.launch(); >
Enter fullscreen mode
Exit fullscreen mode
Depending on the task, you can compose commands or a dialogue with the bot, in which you can use the ability to read and write from tables.
Here is an example of writing to a table:
. const rowNumber = «2»; let values = [ [ «Formula:», // string value «=128/2+ROUND(8/3;2)», // any formula «User:», «Ben», », // empty cell ] ]; const resource = ; let valueInputOption = [ ‘RAW’, // as string ‘USER_ENTERED’,// will be parsed as user input ‘USER_ENTERED’, ‘USER_ENTERED’, ‘USER_ENTERED’, ]; const range = sheet + ‘!A’ + rowNumber + ‘:E’ + rowNumber; const spreadsheetId = ‘mKj7bEUzG7miu4m5nsBt4KWTM6IIgstwn9g1a7IvVwz0’; sheets.spreadsheets.values.update(< spreadsheetId, range, valueInputOption, resource, >, (err, result) => < if (err) < // Handle error console.log(err); ctx.reply(err.toString()); >else < ctx.reply(«Data saved.»); //reply from bot to user console.log(‘%d cells updated.’, result.data.updatedCells); >>);
Enter fullscreen mode
Exit fullscreen mode
Upload your bot to cloud for free
For convenience, the bot must be running 24/7. Then you can use it from your phone even when all your computers are turned off.
One of the options is Free Trial on Google Cloud Platform:
https://console.cloud.google.com/
For me this is not charging anything. Because the load on the server is too low.
You need to setup a new minimal cloud VM with Ubuntu or what you like.
When you connect to your new server by ssh, you can install node, npm and run your bot.
I recommend using PM2 to run script.
Enter fullscreen mode
Exit fullscreen mode
Simple upload your script with rsync from local host to google cloud host:
rsync -ruv LOCAL_PROJECT_PATH SERVER_HOST:REMOTE_PATH
and start on the remote:
cd REMOTE_PATH pm2 start index.js
Enter fullscreen mode
Exit fullscreen mode
Note that you should replace all my «uppercase» with your data (path to the project, server’s ip, etc.)
Bot is started and you can use it 24/7
Источник: dev.to