не знаю программист вы или только начинаете раз не увидели такую ошибку, ниже в коде я ещё закоментировал некоторые строки знаками //, вот можете их убрать если они вам нужны будут строки эти и сделать дальше как вам нужно. Также можете попробовать всё гораздо грамотней оформить, разделить теже уровни и клавиатуры функциями чтоб выглядело ещё красиее, удачи 🙂
function doPost(e) < var contents = JSON.parse(e.postData.contents); var ssId = «ВАША ТАБЛИЦА»; var sheet = SpreadsheetApp.openById(ssId).getSheetByName(«Лист1»); var keyBoard2 = < «inline_keyboard» : [ [], [], [], [], [], [], [] ]>; if (contents.callback_query) < var var data = contents.callback_query.data; if (data == «first») < //скорей всего после return программа завершается return sendMessage(id, «Выберите день недели.», keyBoard2); // else if (data == «tuesday») < // var first_tuesday = sheet.getDataRange().getCell(3,2).getValue(); // return sendMessage(id, first_tuesday)>// else if (data == «wednesday») < // var first_wednesday = sheet.getDataRange().getCell(3,3).getValue(); // return sendMessage(id, first_wednesday)>// else if (data == «thursday») < // var first_thursday = sheet.getDataRange().getCell(3,4).getValue(); // return sendMessage(id, first_thursday)>// else if (data == «friday») < // var first_friday = sheet.getDataRange().getCell(3,5).getValue(); // return sendMessage(id, first_friday)>// else if (data == «wednesday») < // var first_wednesday = sheet.getDataRange().getCell(3,6).getValue(); // return sendMessage(id, first_wednesday)>// else if (data == «saturday») < // var first_saturday = sheet.getDataRange().getCell(3,7).getValue(); // return sendMessage(id, first_saturday)>> else if (data == «second») < //var second = sheet.getDataRange().getCell(5,1).getValue(); //return sendMessage(id, second); var tt = «ahalai»; return sendMessage(id, tt); >else if (data == «third») < var third = sheet.getDataRange().getCell(9,1).getValue(); return sendMessage(id, third); >else if (data == «fourth») < var fourth = sheet.getDataRange().getCell(13,1).getValue(); return sendMessage(id, fourth); >if (data == «monday») < var first_monday = sheet.getDataRange().getCell(3,1).getValue(); return sendMessage(id, first_monday); >> else if (contents.message) < var //не используется у вас нигде //var text = contents.message.text; var keyBoard = < «inline_keyboard» : [ [], [], [], [] ]>; return sendMessage(id, «Добро пожаловать в бот расписаний! Выберите группу.», keyBoard); > >
Источник: ru.stackoverflow.com
Добавляем Google Таблицу к Telegram боту и создаем регистрацию на мероприятие через Условия
Получение в google таблицу данных из telegram бота (под ключ)
Как в эксель перенести данные из телеграмма
Сегодня продолжение статьи о мониторинге цен с помощью гугл таблиц и создании бота в телеграм для отправки информации. В первой части мы настроили гугл-таблицы на сбор данных, а сегодня будем делать бота и программировать его (немножко).
3. Создаем нового бота в телеграм
Начинаем чат с BotFather командой » /start » и далее следуем подсказкам бота:
Отправляем команду » /newbot » и отвечаем, как мы хотим назвать наш бот и какой у него будет юзернейм. В ответ Телеграм пришлет ссылку на бота и токен для работы с ботом из других приложений. Этот токен фактически дает полные права на управление ботом, так что держите его в тайне.
Бот создан. С помощью Крестного Бота можно отредактировать его, добавив информацию, юзерпик и др. — оставлю это на ваше усмотрение 🙂
Бот не может инициировать диалог, пользователь должен начать диалог сам и послать команду » /start «, а бот, получив эту команду, должен сохранить параметр chat_id , чтобы потом писать этому пользователю. Делать все это мы будем с помощью того же языка скриптов в гугл таблице. Возращаемся в нашу таблицу и запускаем редактор скриптов.
Для начала, сохраним значение токена, чтобы потом его можно было использовать. В редакторе скриптов идем в меню » Файл -> Свойства проекта «
И в закладке «Свойства скрипта» добавляем строку » OPENAPI_TOKEN » со значением токена, которое прислал Крестный Бот. Сохраняем.
В начале скрипта добавляем строки:
Создадим также новую функцию FetchMessages — она будет:
- Подключаться к серверу Телеграм по API
- Запрашивать список обновлений у бота
- Сохранять chat_id для новых пользователей
- Очищать список обновлений на сервере
Если бы мы писали этого бота, как полноценный продукт, нужно было бы проверить список chat_id на дубликаты, а также запрашивать от каждого пользователя свои ссылку (или ссылки), по которым он хочет получать оповещения. Но у нас больше образовательно-демонстрационный проект, поэтому эти моменты я пропущу.
Добавляем триггер на запрос обновлений каждый час, и можно приступать к следующей части.
Напишем еще несколько функций:
- Функция MakeChart — делает график из данных по ценам в виде картинки
- Функция SendPhoto — отправляет картинку с комментарием на указанный chat_id
- Функция SendMessage — с помощью функции MakeChart готовит картинку и для каждого chat_id с помощюу функции sendPhoto отправляет картинку в телеграм.
Добавляем вызов функции SendMessage в функцию GetPrice, чтобы она выполнялась после получения цен.
6. Тестируем
Вручную запустим функцию SendMessage — выберем ее на панели инструментов и нажмем запуск:
Всем ку
Комбинация из ТЛГ и ГТ, простота подключения КМК делает из ГТ офигенный инструмент автоматизации.
Тайм-менеджмент, таск-менеджмент, учёт финансов, объявления, пересылка событий — всё это создается и довольно быстро настраивается. Главное — это становится полезным не только в бизнесе, но и для обычных чатлан.
Пост ориентирован прежде всего на людей, которые только познают ГТ и на первых порах не требует знания гугл скриптов. В этом посте будет только первичная настройка и подключение. В следующих постах рассмотрю всё что описал выше (как трекать время, задачи, финансы и т.д. и как это настроить под себя).
Дальше нам нужна пустая ГТ. Создаем, заходим в Инструменты / Редактор скриптов.
Скрин для английской версии.
Выделенное жирным:
1 — ID гугл таблицы, находится после /d/ :
2 — АПИ токен гугл бота, который мы доставали выше.
Важно — поставить доступ для анонимов и для каждой новой версии выставлять Project version новый или new.
При деплое оно запросит разрешение — даём, после чего получаем заветную ссылку:
Подключение бота к табличке успешно произведено.
ЗЫ Бота я удалил, так что этот АПИ-токен уже не действует.
MS, Libreoffice пост — отстой», это оскорбление автора и будет наказываться баном.
Делал я как-то своего бота в телеге.
эх, есть идея. Запись на ноготочки в телеге. Размечаем лист с интервалами 15мин, в телеге бот выдает свободное время на 1/2 недели вперед, юзер оставляет коммент и номер телефона.
Супер, жду очень часть с финансами.
Идея такая : что бы с женой можно было вести совместную таблицу доходов и затрат.
«внутренний хомяк ликует»
Огромное спасибо за подробную инструкцию!
А возможно ли, чтобы бот автоматически отправлял записанную инфу в другой чат?
Например Заказчик отвечает в боте на вопросы. А в другой чат прилетает готовая оформленная для исполнителя заявка (Имя, Ссылка, Ответы на вопросы). Эдакая автоматизированная система приёма заявок 🙂
А какой язык в этом коде? Мне очень понравилось то что вы делаете, я бы хотел тоже научиться помогать своим ребятам автоматизировать процессы. С кода бот-табличка сейчас делаю реестр, чтобы менеджеры, которые пользуются такси, для офис-менеджера закидывали инфу куда и зачем (по какому проекту) они ездили. Будет поудобнее, чем она потом ходит за месяц с табличкой и заставляет всех вспоминать/объяснять.
Привет, а возможно подключить xlsx файл к телеграмм?
Добрый вечер! Интересный материал, решил собрать согласно инструкции. Бот не отвечает(( Возможно я допустил ошибки. Просьба проверить скриншоты. Отправил файлы в Телеграмм.
есть нужда в боте, который будет своевременно присылать оповещение при поступлении новой инфы в гт. у нас есть гт, в которую поступает инфа : дата-время, компания, задача. нам приходится самим следить и оповещать коллег при поступлении новых заявок. хотелось бы это автоматизировать. данная инструкция подойдет для этих целей?
А если сделать запись из Телеграм бота в гугл таблицу, есть ли решения ?
тема классная!, можно ли как то настроить чтобы менеджеры записывали заявки рабочиев телеграм чате, и они отражались в одном гугл файле по порядку?? спасибо
по вашему примеру у меня все работает, магия))) а как адаптировать код, чтобы данные из чата ТЛГ от нескольких пользователей переносились, в хронологическом порядке в ГТ? так можно же?
Ну и заполнение ГТ Post-запросами очень хочется)
Сделал всё как в посте, вебхук успешно зарегистрировал, но бот никак не реагирует. В чем может быть проблема?
Уважаемый автор! Всё шикарно, всё заработало. Отличная штука.
Есть один вопрос: я меняю текст скрипта, сохраняю, но ничего не меняется у бота.
Его один раз опубликовал и всё ?
Спасибо.
Где можно научится этому всему?
так сфера применения какая? где мне это пригодится ?
объясните, почему таблицу называют табличкой?
Источник: kompyutery-programmy.ru
Как передавать данные из бота в Google приложения
Сервис Integromat сменил адрес сайта, дизайн и название на Make. Возможности интеграций остались такими же, но дизайн может отличаться от скриншотов, приведенных в статье.
Передавайте данные потенциальных клиентов, собранные в цепочках чат-бота Telegram, Facebook Messenger с помощью вебхука, в другие приложения и сервисы, чтобы ими управлять.
Рассмотрим, как фильтровать полученные данные контакта в зависимости от переменных. Вы узнаете, как сохранять данные в Google таблицы, создавать событие в Google календаре, создавать CSV файл и сохранять его на Google диск и как отправлять себе email уведомления после любого выполненного блока.
В статье рассматривается интеграция с таблицами Google с помощью Make (Integromat), но вы также можете получать данные из таблиц напрямую, используя только инструменты Google Sheets API и SendPulse. Читайте в статье: «Как получить данные из таблицы Google в чат-ботах».
Содержание
Как начать работу
Для реализации задач по передаче данных в другие сервисы мы будем делать связку SendPulse с сервисом, который поддерживает обработку входящих вебхуков и дальнейшую работу с данными из вебхука.
Ниже описан способ связки SendPulse и Integromat. Мы выбрали этот сервис, потому что он включает в себя наибольшее количество приложений и сервисов из разряда CRM, CMS, почтовые сервисы, календари, вложения, карты, списки. Он позволяет фильтровать и редактировать данные. На бесплатном тарифе можно отправлять до 1 000 различных операций, а также он включает в себя нужные нам вебхуки.
Войдите в свою учетную запись в Integromat, нажмите “Create a new scenario”, чтобы начать создавать сценарий.
Вы можете сразу выбрать, какие сервисы подключить, используя поиск, или находить и добавлять их непосредственно в самом конструкторе. Нажмите “Continue” в правом верхнем углу.
Как создать Вебхук
Нажмите на блок с вопросом по центру экрана и выберите блок “Webhooks” — это будет стартовый блок, который запустит цепочку.
Вам необходимо создать сам вебхук, на который будут отправляться данные с вашей цепочки по чат-боту. Из раскрывающегося списка выберите блок “Custom webhook”.
Нажмите “Add”, чтобы создать новый вебхук.
Введите имя для вебхука и нажмите “Save”.
Ваш вебхук создан. Скопируйте ссылку — ее нужно вставить в цепочку вашего чат-бота.
Теперь Integromat ожидает первого полученного вебхука, чтобы определить структуру данных, с которыми ему нужно будет работать.
Как добавить ссылку на вебхук в цепочку
Войдите в личный кабинет SendPulse. Выберите нужного вам бота, откройте режим редактирования созданной цепочки.
Вы можете настроить отправку запроса через блок «Действие: отправить вебхук» (в таком случае передаваемые данные генерируются автоматически) или через «Запрос API» и создать свой формат запроса с переменными.
Через блок «Действие: отправить вебхук»
Добавьте и разместите блок «Действие» сразу за блоком, после которого нужно отправлять вебхук. Введите название вебхука и URL, скопированный из Integromat.
На нашем примере ниже показана возможная цепочка записи в ветеринарную клинику. Событием в ней является подтверждение заполненных данных.
Через блок «Запрос API»
Добавьте и разместите блок «Запрос API» сразу за блоком, после которого нужно отправлять вебхук. Выберите тип запроса «POST» и введите URL, скопированный из Integromat.
Добавьте тело вашего кастомного запроса в JSON. В запросе можете использовать переменные вашего чат-бота.
Сохраните цепочку, отправьте себе тест в мессенджер и пройдитесь по цепочке до первого вебхука (или прохождение блока «Запрос API»), чтобы запрос отправился в Integromat.
Когда Integromat получит вебхук, в своем аккаунте Integromat вы увидите сообщение “Successfully determined”.
Теперь можно добавлять другие блоки.
Как добавить запись в Google таблицу
Нажмите на “Add another module” возле блока “Webhooks”.
Выберите “Google Sheets”.
Выберите действие “Add a Row”.
Чтобы авторизоваться и подключить свой Google аккаунт, нажмите “Add”.
Выберите, какой аккаунт подключить и дайте разрешение на доступ к вашему Google аккаунту для чтения и записи данных.
Выберите документ и лист, в который необходимо записать данные.
Отметьте, какие переменные в какие ячейки таблицы добавлять. Помимо переменных, вы также можете добавлять свой текст, корректировать его и задавать условия.
Нажмите “Ок” для сохранения параметров.
Сохранение и запуск
Перед сохранением и выходом необходимо проверить, корректно ли все работает. Нажмите “Run once” и запустите цепочку в которой вы настроили вебхук. Если вы все настроили верно, под блоками “Webhook” и “Google Sheet” отобразятся зеленые галочки.
А в нашей Google таблице появилась строка с данными, которые заполняли.
Теперь можно сохранять цепочку. Нажмите на иконку панели управления снизу для сохранения.
Чтобы активировать сценарий, переведите тумблер в положение “ON”.
Выберите частоту срабатывания сценария. Для нашего случая выберем срабатывание каждый раз, как получаем вебхук — “Immediately”.
Дополнительные возможности
В Integromat также доступны разные инструменты для автоматизации процессов. Рассмотрим дополнительные функции и блоки.
Как добавить фильтр данных по переменным
Integromat позволяет фильтровать все данные. Вы можете добавить фильтр по всем переменным, которые получаете по вебхуку и распределять данные по разным таблицам.
Чтобы распределять данные, вам понадобится инструмент «Router». Вы найдете его в панели инструментов снизу. Выберите этот инструмент и соедините его с блоком «Webhooks».
После блока “Router” добавьте блоки с Google таблицей согласно инструкции выше. Теперь нажмите на линию между “Router” и таблицей для установления фильтра.
Введите название фильтра, затем выберите переменную, по значению которой будут фильтроваться данные, и оператор условия.
Введите значение переменной, к которой будут применяться условия.
Вы можете добавить несколько условий, объединяя их операторами “и” и “или”. В нашем примере мы фильтруем по вопросам, с которыми обратился клиент, чтобы добавить его в таблицу к соответствующему ветврачу.
Также примером может быть фильтр уже по определенному врачу, если вы в цепочке настроили добавление этой переменной. Можно также установить фильтр по породе, по определенному электронному адресу, если необходимо отследить конкретного клиента.
Как добавить событие в Google календарь
Так же как добавить запись в таблицу, вы можете добавить событие в календарь. К примеру, клиент записался на определенное число и вам необходимо добавить запись на эту дату.
Добавьте блок “Google Calendar”. Выберите действие “Create an event”. Введите название события — можете добавлять переменные в него.
При заполнении даты события важно добавить функцию форматирования даты, чтобы запись отработала. В полях “Start date” и “End date” перейдите на вкладку “Date and time”, выберите функцию “formatDate”.
Затем выберите переменную, которая у вас отвечает за нужную дату, и переместите ее внутрь скобок, как показано на скриншоте.
Нажмите “Ок” и ваш сценарий записи события в календарь готов.
Как отправить уведомление с данными себе на почту
Вы можете добавить блок “Email”, чтобы отправить себе письмо после любого события. К примеру, каждый раз, когда добавляется новая запись в Google таблицу, определенное количество строк или определенная переменная.
Выберите блок “Email” и действие “Send an email” вслед за блоком, после исполнения которого нужно отправить письмо.
Заполните нужные поля: кому отправить письмо, с какой темой и шаблоном сообщения. Вы также можете использовать переменные для добавления в текст сообщения.
Также вы можете добавлять вложения в письмо, нажав на “Attachments” и выбрав файл, который был сохранен ранее в цепочке.
Как просмотреть историю работы сценария
Перейдите в нужный вам сценарий. Вам будет доступна диаграмма всех блоков с историей выполнения блоков. Кликните по нужному блоку, чтобы просмотреть информацию по нему.
Вам будет доступна вся информация по блоку: какие значения принял и передал дальше.
Если какой-то из блоков не выполнился, он подсветится красным и при нажатии отобразится причина ошибки и подсказка, как ее исправить. Обратите внимание, что до устранения ошибки весь сценарий может приостановится и не выполнятся; операции будут становиться в очередь.
Если возникнут вопросы по настройке или сбоям сценария, можете обратится в службу поддержки Integromat.
На этом возможности сервиса не заканчиваются, вы можете придумать еще больше разнообразных связок и способов передачи и использования информации с помощью вебхуков.
Настраивайте интеграцию, если планируете создавать бота для записи к ветеринару, записи к мастеру в салон красоты. Если вам нужно оставить отзыв по событию в Google документы, записать номер телефона, чтобы передать в документы отделу продаж, заказать блюда в службе доставки, чтобы можно было планировать закупку.
Источник: sendpulse.com