Бот который решает Гугл формы

Очень интересный вариант окружения для разработки бота. Хостинг, домен и SSL сертификат не требуется. Организация хранения данных пользователей в Google Sheets (Google Таблицы). Онлайн редактор для разработки.

В статье я опишу свое знакомство с новым для себя инструментом, подробно остановлюсь на коде бота, оставлю ссылку на полную версию бота и инструкцию как развернуть бота на Google Apps Script. Весь код на JavaScript с элементами Google API

В среднем 7 минут на развертывание Бота Обратной связи

Я специально просил своих знакомых, не имеющих никакого опыта в программировании, попробовать развернуть этого бота по инструкции. В среднем требовалось 7 минут. Просто берешь код и вперед. Практически все оставили бота для своих нужд, так как он не требует никаких затрат на хостинг, домен и ssl-сертификат, нужна только учетная запись в Google .

Давно уже слышал про Google Apps Script, но все время откладывал возможность потестить для себя его функционал. Появилось немного свободного времени, на улице пасмурно и ко всему этому еще попалось интересное видео на эту тему — так сказать звезды сошлись. Ну, что же надо попробовать. И ведь попробовал. И был в шоке, от того как было интересно.

Как написать онлайн тест на 12. ВЗЛОМАЛИ СИСТЕМУ

Насколько затянуло, что даже во сне продолжал скрипты оформлять. Как всегда, нового бота для тестирования придумать не смог, взял из уже имеющихся, конечно же этим ботом стал «Бот Обратной Связи». Функционал его понятен, и надо было уже показать пример как обходить настройку, когда пользователь запрещает пересылать сообщения. Очень много обращений по данному запрету. * * *

Чем интересен Google Apps Script для владельца Telegram Bot:

Размещение скрипта бота в Google, хостинг не требуется
Хранение данных в Google Sheets (Google Таблицы)
Отсутствует необходимость в доменном имени и соответственно в SSL сертификате
Наличие online-редактора кода с подсветкой
Есть встроенная система контроля версий (свой аналог Git)

Как сохранять пароли автоматически в Гугл Хром

Разграничение доступа
И многое чего еще я не пробовал .

В ходе разработки я конечно же столкнулся с некоторыми непонятными для меня ситуациями*, такими как отсутствия поддержки Class Import/Export, либо я не до конца разобрался, но разбить проект на несколько файлов (отдельно для каждого класса) у меня не получилось. Странно, ведь как утверждается, работает все это дело на движке V8.

_____
>>> * Позже узнал как можно организовать архитектуру проекта, но про это в следующих статьях

Кратко о функционале разрабатываемого бота

Если кратко про бот обратной связи, то это бот позволяющий его владельцу в режиме инкогнито общаться с пользователями Телеграм.

Технически не сложный бот, можно было бы его быстро накидать, но мне хотелось организовать небольшое окружение с разделением на сущности, также протестить хранение данных в таблице (CRUD — создание, чтение, редактирование, удаление). Данные хранить будем о пользователях, в дальнейшем при необходимости можно будет легко сделать рассылку от имени бота. Подключил еще языковые настройки — будет легко организовать мультиязычность бота. Также сделал при копировании сообщения (оно необходимо для обхода настройки запрета пересылки) сохранение форматирования, так как Телеграм форматирование присылает отдельно от текста. В общем и целом, работа была интересная.

Переходим к главному, к разработке нашего бота

Принцип работы в Google Apps Script заключается в создании проекта, размещении в нем скриптов, после развертывания проекта вы получите ссылку на «точку входа», на которую и будет приходить все данные от Телеграм через настроенный WeHook. Так называемая точка входа может принимать как GET так и POST, для получения данных и их обработки нужно создать почти одноименные функции в основном файле doGet() и doPost() . Про наш doPost() немного ниже.

А начнем мы, пожалуй, с описания настроек, их оказалось чуть больше чем обычно.

Расшифровка настроек:

Источник: imakebots.ru

Как превратить вашу форму Google в бота Telegram

Вот случай: есть компания, которая требует от своих сотрудников ежедневно заполнять формы Google. Форма не самый удобный интерфейс для действия, которое нужно было выполнять ежедневно, поэтому большинство рабочих пропустили ее и заполнили форму несколько раз в конце каждого месяца, что было недопустимо. Итак, вот что я сделал.

Я сделал бота для телеграмм, который каждый день задает всем вопросы рабочим, затем заполняет ответы в форме и отправляет их. Некоторые поля заполняются автоматически, например, дата отправки и имя пользователя.

Как посмотреть свое перемещение в Гугл через телефон

Отправка HTTP-запроса

Форма, которую нужно автоматизировать, имеет вид это.

Давайте напишем сценарий, который автоматически отправляет форму с информацией о том, что 10/10 сотрудников 1 имеют статус 2 с комментарием типа «Автоматическая отправка». Каждый раз, когда форма отправляется, веб-браузер отправляет HTTP-запрос на сервер. Скрипт должен отправить такой запрос вместо браузера.

Прежде всего, нам нужно выяснить идентификатор каждого поля в форме. Для этого вы щелкаете правой кнопкой мыши, «проверяете элемент» в каждом поле и ищите номер, который выглядит следующим образом:

Теперь мы можем отправить запрос, используя следующий код:

После запуска скрипта получаем: ‹Response [200]›. Это означает, что запрос выполнен успешно. Пришло время вставить данные пользователей в запрос.

Создание бота Telegram

Адаптация

Прежде всего, нам нужно обработать команду /start и запомнить пользователя. Сначала бот разбирает исходную форму и получает все возможные имена, как показано ниже:

После получения имен мы отправляем пользователю сообщение с просьбой выбрать свое имя из списка. Эти имена будут запомнены и автоматически заполнены.

Функция insert_name() используется для добавления строки в базу данных SQLite. Каждая строка содержит идентификатор телеграммы и имя пользователя. Когда бот получает сообщение, он может легко найти имя в базе, получив идентификатор телеграммы.

Спрашивать пользователей

Чтобы создать сообщение с вопросом, бот сначала анализирует форму, чтобы получить все возможные статусы, а затем создает встроенную клавиатуру, чтобы встроить ее в сообщение, чтобы пользователь мог нажать кнопку, соответствующую его сегодняшнему статусу.

Теперь сложная часть: в разделе комментариев нет необходимости, поэтому нам нужно спросить пользователя, хотят ли они добавить комментарий.

Итак, после получения ответа нам сначала нужно выяснить, будет ли комментарий, и сохранить статус в глобальном словаре, чтобы иметь возможность получить к нему доступ из другой функции, которая вызывается после того, как пользователь ответит на второй вопрос.

Функция insert_report выглядит так:

Знакомо, не правда ли? Это тот же сценарий, что и в первом разделе этой статьи, но он использует ответы пользователей, а не жестко запрограммированные. Ответ также зависит от того, хочет ли пользователь добавить комментарий.

Каждый день в одно и то же время все зарегистрированные пользователи должны получать это сообщение с вопросами, на которые нужно ответить. Чтобы запланировать обмен сообщениями, я использовал aioschedule библиотеку, которая позволяет мне планировать задания в Python асинхронно.

Осталось только запустить бота, что мы и сделаем с помощью следующего кода:

Установить Google voice search

Итак, это все! Вы можете проверить весь код в репозитории GitHub:

Источник: digitrain.ru

Интеграция Telegram Bot (Телеграм Бот) и Google Forms (Гугл формы)

Подключение за 5 минут, 30 дней на тесты, попробуйте.

Какие данные можно передавать из Telegram Bot в Google Forms

События в Telegram Bot

Нажмите на название события, чтобы посмотреть доступные поля.

Документация по API — нет.

1. Новое сообщение

Описание
Доступные поля
Id Название
update_id Идентификатор вебхука
message.message_id Идентификатор сообщения
message.from.id Идентификатор пользователя
message.from.is_bot Флаг, является ли пользователь ботом
message.from.first_name Имя пользователя
message.from.last_name Фамилия пользователя
message.from.username Ник пользователя
message.from.language_code Язык пользователя
message.chat.id Идентификатор сообщения
message.chat.first_name Имя пользователя
message.chat.last_name Фамилия пользователя
message.chat.username Ник пользователя
message.chat.type Ник пользователя
message.date Время отправки вебхука в формате timestamp
message.text Текст сообщения

+ можно добавить свои поля, которые есть в вебхуке.

2. Повторное сообщение

Описание
Доступные поля
Id Название
update_id Идентификатор вебхука
message.message_id Идентификатор сообщения
message.from.id Идентификатор пользователя
message.from.is_bot Флаг, является ли пользователь ботом
message.from.first_name Имя пользователя
message.from.last_name Фамилия пользователя
message.from.username Ник пользователя
message.from.language_code Язык пользователя
message.chat.id Идентификатор сообщения
message.chat.first_name Имя пользователя
message.chat.last_name Фамилия пользователя
message.chat.username Ник пользователя
message.chat.type Ник пользователя
message.date Время отправки вебхука в формате timestamp
message.text Текст сообщения

+ можно добавить свои поля, которые есть в вебхуке.

3. Команда боту

Описание
Доступные поля
Id Название
update_id Идентификатор вебхука
message.message_id Идентификатор сообщения
message.from.id Идентификатор пользователя
message.from.is_bot Флаг, является ли пользователь ботом
message.from.first_name Имя пользователя
message.from.last_name Фамилия пользователя
message.from.username Ник пользователя
message.from.language_code Язык пользователя
message.chat.id Идентификатор сообщения
message.chat.first_name Имя пользователя
message.chat.last_name Фамилия пользователя
message.chat.username Ник пользователя
message.chat.type Ник пользователя
message.date Время отправки вебхука в формате timestamp
message.text Текст сообщения

+ можно добавить свои поля, которые есть в вебхуке.

Если вы не нашли нужное событие, но в сервисе есть нужный вебхук, то используйте универсальный коннектор «Входящий вебхук». Можно будет завязать логику связок на любое поле, приходящее в вебхуке.

Действия в Google Forms

Нажмите на название действия, чтобы посмотреть доступные поля.

Документация по API — нет.

Действий нет, попробуйте поменять местами сервисы.

.

Привет!

Меня зовут Лаптев Алексей, я главный разработчик и CEO сервиса ApiMonster.

На лендинге мы попытались описать основные возможности сервиса, но если у вас останутся вопросы или сомнения — позвоните нам и мы за 10-15 мин расскажем, сможет ли ApiMonster решить именно вашу задачу.

Если вам все нравится и вы готовы к подключению, оставьте заявку на настройку под ключ здесь. Создадим чат, бесплатно оценим, дадим финальное КП и если вас все устроит — выставим счет и начнем настройку.

Как узнать местоположение ребенка через Гугл

Если вы хотите подробнее узнать об экспертизе команды ApiMonster, то подписывайтесь на наши блоги:

Также посмотрите другие наши продукты для маркетинга и аналитики: utmstat, mpmonster, cpamonster, lmsly, adbonus.

Почему ApiMonster выгодней услуг программиста в сегменте типовых задач?

Давайте разберемся на примере среднего php/js-программиста с зарплатой 120 000 руб/мес и типовой задачей по работе с API сроком на 3-5 дней с учетом нескольких итераций правок.

Стоимость программиста
Срок Стоимость работы Что получите
1 месяц 120 000 ₽
1 день 5 714 ₽ Скорее всего ничего. 1 день это только в ТЗ вникнуть, поискать решение и почитать документацию.
3 дня 17 142 ₽ Сырой вариант решения.
5 дней (неделя) 39 998 ₽ Более менее рабочий вариант решения, но без гарантий, годовой поддержи и рисками, что программист исчезнет или потребуются новые платные доработки.
Стоимость ApiMonster
Тариф Стоимость за год Что получите
990 ₽ / мес. 11 800 ₽ Стабильное решение и поддержку на 1 год, бесплатную настройку под ключ за 2-5 дней, полный возврат денег в случае неудачи в настройке.
1 990 ₽ / мес. 23 880 ₽ Стабильное решение и поддержку на 1 год, бесплатную настройку под ключ за 2-5 дней, полный возврат денег в случае неудачи в настройке.
2 990 ₽ / мес. 35 880 ₽ Стабильное решение и поддержку на 1 год, бесплатную настройку под ключ за 2-5 дней, полный возврат денег в случае неудачи в настройке.

Итого

ApiMonster в год может стоить дешевле, чем неделя работы программиста.

Если ApiMonster может решить вашу задачу, то его стоимость скорее всего будет ниже стоимости решения задачи своими силами, при этом вы получите готовое решение всего за 1 неделю + год поддержки и гарантии работы.

ApiMonster очевидно выгоднее.

Не хватает возможностей?

Пожалуйста, заполните бриф и мы постараемся добавить новый функционал в ближайшую неделю.

Также можете написать нам в чат в телеграме.

План настройки интеграции Telegram Bot с Google Forms

1 Настроить подключение для Telegram Bot в ApiMonster.
2 Настроить вебхук в Telegram Bot, указав ссылку из ApiMonster.
3 Настроить подключение для Google Forms в ApiMonster, указав логин/пароль/токен для доступа к апи.
4 Создать связку.
5 Указать в качестве источника данных Telegram Bot.
6 Создать требуемое действие для Google Forms, указав в какие поля Google Forms передавать значения полей из Telegram Bot.
7 Настроить фильтры для каждого шага при необходимости.
8 Протестировать связки и убедиться что они работают согласно ТЗ.
Google браузер установить русский

Пример типовой настройки, посмотрите видео

Или пройдите полный курс по Apimonster.

Тарифы

Даем 30 дней на тест, что бы могли оценить стоимость сервиса под ваши задачи.
Наши тарифы одни из самых выгодных на рынке, мы посчитали.
Кешбэк до 25% при оплате за несколько месяцев.

Тариф 2

990 ₽. / мес.

  • 1 200 транзакций / мес.
  • 12 000 вебхуков / мес.
  • До 5 входящих вебхуков / сек.
  • Неограниченное число подключений на каждый сервис
  • Бесплатная настройка
    под ключ

Тариф 3

1 990 ₽. / мес.

  • 5 000 транзакций / мес.
  • 50 000 вебхуков / мес.
  • До 30 входящих вебхуков / сек.
  • Неограниченное число подключений на каждый сервис
  • Бесплатная настройка
    под ключ

Тариф 4

2 990 ₽. / мес.

  • 10 000 транзакций / мес.
  • 100 000 вебхуков / мес.
  • До 50 входящих вебхуков / сек.
  • Неограниченное число подключений на каждый сервис
  • Бесплатная настройка
    под ключ

Тариф 5

6 990 ₽. / мес.

  • 50 000 транзакций / мес.
  • 500 000 вебхуков / мес.
  • До 70 входящих вебхуков / сек.
  • Неограниченное число подключений на каждый сервис
  • Бесплатная настройка
    под ключ

Кешбэк

Оплачивайте сервис на несколько месяцев и получайте кешбэк на баланс до 25%.

Сумма платежа Кешбэк Выгода Итоговая сумма на балансе сервиса
10 000 ₽ 20 000 ₽ 30 000 ₽ 40 000 ₽ 50 000 ₽
5 % 10 % 15 % 20 % 25 %
+ 500 ₽ + 2 000 ₽ + 4 500 ₽ + 8 000 ₽ + 12 500 ₽
+ 10 500 ₽ + 22 000 ₽ + 34 500 ₽ + 48 000 ₽ + 62 500 ₽

FAQ

Что такое транзакция?
Это любой исходящий вебхук (запрос в api): отправить конверсию, создать/найти сделку/контакт/задачу и тд.

Сколько нужно транзакций?
Умножьте количество заявок в месяц на 3-4. Например, если заявок 100, то транзакций будет около 300-400 — создать сделки, отправить конверсии, уведомления. Для персонального расчета тарифа воспользуйтесь калькулятором.

Сколько нужно входящих вебхуков в месяц?
Обычно в 2-5 раз больше количества транзакций. Данное ограничение введено для уменьшения нагрузки от проектов с аномальным количеством вебхуков, создающих лишнюю нагрузку. Если вы не отправляете по 10 вебхуков в секунду, то для вас скорее всего ограничение не актуально.

Сколько нужно входящих вебхуков в секунду?
Обычно входящий вебхук — это создание или обновление заявки. Данное событие редко происходит чаще 1 раза в секунду, поэтому лимита в 5-30 вебхуков в секунду более чем достаточно.

Пока не готовы начать работу с сервисом? Подпишитесь на наши блоги для дополнительного прогрева:

Источник: apimonster.ru

Рейтинг
Загрузка ...