Проклятье, сколько не копировал разные тексты с сайтов, для написания простого бота, все время ничего не происходило. Благодаря тебе, бот ожил! Спасибо!
Внимание! Важное Замечание! После каждого нового деплоя (развертывания), где меняется ссылка гугл скрипта (а именно webAppUrl) необходимо заново выполнить метод setWebhook() установить новый, иначе бот реагировать не будет либо будет отвечать кодом от старого деплоя.
Совершенно верно. Поэтому лучше делать новую версию развертывания (а не новое рзавертывание). Делается это в Управлении развертываниями. Там же не должно быть более одного активного развертывания.
Спасибо тебе большое за урок! Сделай урок пожалуйста, что бы в ексель сохранялась еще и дата отправки, ну и что бы на нескольких листах от разных людей сохранялось=)
дату можно легко добавить создав объект: let new = new Date() и добавив его в строку с данными. А сохранение на разных листах разных пользователей часто не обязательно. Обычно лучше вести базу данных на одном листе, а потом функционалом формул Гугл Таблиц распределять эти данные как угодно.
Лучшее видео на сегодня из просмотренных. Однозначно палец вверх. Не понял на каком языке был написан скрипт, но всё было до ужаса понятно) Всё работало как и в видео. Понятно, куда дальше копать. Пойду прогуляюсь по каналу. Огромное спасибо за проделанную работу!
Большое спасибо за видео. Буквально вчера возникла потребность реализовать подобный функционал. Очень наглядно и лаконично. С нетерпение буду ждать новые видео.
Т.е. новое сообщение всегда попадало, например, во вторую строку и все заполненные строки смещались вниз? В таком случае нужно добавить строку и записать в нее данные. Используемые методы можно посмотреть если записать Макрос. Пишите в группу телеграм в описании, если не получится.
Добрый день! Все делаю также как вы показываете и при выполнений функции doPost выскакивает ошибка Cannot read properties of undefined (reading 'postData') , до вставки let contetns все работало
Добрый день! Вы не должны выполнять функцию doPost. Создал специальное видео по разбору частых ошибок. Эта ошибка разбирается тут: ua-cam.com/video/vLOeassegL0/v-deo.htmlsi=xOsahyhwrvP4UXo1&t=686
Подскажите а как научить бота наоборот, читать из гугл таблиц определенные ячейки ? Например повесить значения ячейки на определенную кнопку в боте ну или определенный вопрос. Спасибо огромное за видео и ответ если будет
На канале есть трансляция на тему создания бота учета финансов. А также видео по созданию команд. Там разбирается этот функционал. Также можете написать в группу телеграм, где мы обсуждаем различные вопросы и помогаем с проблемами t.me/googlesheetstelegram
Огромнейшее спасибо за подробное видео. Не зная программирования, буквально за вечер создала бота, пусть простейшего, но это очень классно, когда всё работает. До этого прошерстила весь ютуб, везде только платные конструкторы. Так что ваше объяснение очень помогло. Благодарю!
Пожалуйста, очень рад! На канале много полезных видео. А сейчас провожу онлайн трансляции по созданию бота учета финансов, где можно задать вопросы по ходу процесса. Вся информации в группе телеграм (в описании к видео).
одно из лучших видео на планете!) а что ещё можно взять из сообщения, кроме меседж айди и меседж текст? может небольшое видео о том, как понимать справочник по телеграм API? я смотрю на этот справочник и не могу понять, например, почему именно "chat_id = contents.message.chat.id" написано. как из справочника к этому можно прийти? скорее всего это достаточно глупый вопрос, но лучше показаться глупым, чем им остаться ))
У вас отличные вопросы для новичка. contents.message.chat.id - это путь к ключу в объектах. Рекомендую почитать про объекты и массивы. Останутся вопросы пишите в группу t.me/googlesheetstelegram
Пожалуй лучший контент по теме! Насколько я далек от JS и программирования и то справился. Продолжайте, у канала большое будущее! Я теперь с вами, готов делиться мыслями и результатами. Создал бота, связал с таблицей, упражняюсь с клавиатурой. Если получится идентифицировать юзеров и по каждому сохранять некие настройки -- вообще огонь. А еще мне нужно как-то фотки, отправленные юзером хранить на гугл диске в определенной иерархии. Кстати выводить красиво данные можно с помощью Google Data Studio
Добрый денью Большое спасибо за обучающее видео! Но, после выполнения получил такую ошибку, может подскажите, что не так: Threaded polling exception: A request to the Telegram API was unsuccessful. Error code: 409. Description: Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first
Добрый день! А какой аналог функции register_next_step_handler в Google Apps Script? Необходимо, чтобы бот задал вопрос, дождался ответа от пользователя, получил его, записал в таблицу и опять задал другой вопрос.
@@SheetBot подскажите, гугл-скрипт, где на видео Вы пишите бота, бесплатный ? Написал свой код, бот работает даже когда закрыта страница скрипта. Или в гугл есть ограничения ?
Привет, у меня есть готовый бот на питоне и надо чтобы после выполнения команд (например нажатия кнопки) данные пользователя (по типу имя и юзернейм) записывало в таблицу (я задолбалась вручную переносить). Благодаря видео я их связала, но теперь команды не работают (в пайчарме по кд ошибку дает), так понимаю только с нуля все на JS писать надо? (от JS вообще далека, питон понимаю и азы плюсов)
спасибо, скажите пожалуйста, насколько такой бот в связке с гуглтаблицей производительный? если в бот придет 1000 пользователей он не перестанет работать?
все зависит от сложности функционала бота и от реализации. Также как часто будут писать ему пользователи. Есть боты (к примеру для такси), где одновременно и часто пишут большое количество пользователей. Одновременно - значит в одну секунду много запросов. Тут скрипту сложно отработать корректно, однако есть методы стабильной реализации таких ботов. Важно понимать, что гугл предоставляет определенные лимиты на свои сервисы. Конкретно на время работы скриптов.
Добрый день. Ваше видео очень полезное, но я хочу развить свой Телеграм бот чуть больше, чем показано в этом видео. Хотел добавить кнопки (ReplyKeyboardMarkup). Понял что их нужно добавлять через reply_markup: и строка должна быть подобного вида reply_markup:{"ReplyKeyboardMarkup":{"keyboard":[[{"KeyboardButton":{"text":"test"}}]]}}. Но как я не старался, не выходит подружить эту строку со всей функцией sendText(). Буду вам очень благодарен за помощь в моём вопросе. Может у вас будет минутка добавить решение моей проблемы на github и поделиться ссылкой. Спасибо за уделённое время. Удачи!
@@SheetBot вот этот момент я так и не понял, почему автоматически выполнятся doPost после отправки сообщения на @10:47 , а не например getMe. Откуда фунция Webhook знает что надо вызывать doPost?
В функции sendText для примера ты указал чат айди конкретного пользователя прямо в коде (захардкодил). Как сделать чтобы отправка была по разным айди нескольких пользователей. Например при отправке боту сообщения пользователями бот логирует их сообщения+айди и передаёт в гугл таблицу. Надо чтобы возвращал каждому пользователю ответ по его айди из таблицы.
На 17:30 в этом видео я разбираю как ответить на сообщение пользователя. Если же нужна рассылка по id из таблицы, то можно взять в массив все id (getValues) и циклом сделать рассылку.
А как можно привязать Google Scripts к таблице программно? через NodeJS можно? К примеру пользователь создал свою таблицу и предоставил боту ссылку, как боту встроить туда Apps Script?
Спасибо за такое интересное видео! Столкнулся с такой проблемой. При выполнении функции setWebhook по моему боту в логах PyCharm пишет: (__init__.py:515 MainThread) ERROR - TeleBot: "A request to the Telegram API was unsuccessful. Error code: 409. Description: Conflict: terminated by setWebhook request" (__init__.py:515 MainThread) ERROR - TeleBot: "A request to the Telegram API was unsuccessful. Error code: 409. Description: Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first" А при выполнении doPost, выдаёт: TypeError: Cannot read property 'postData' of undefined doPost @ Код.gs:15
doPost у вас должен срабатывать по webhook, эту функцию не нужно выполнять. Почему не устанавливается webhook не могу сказать. Посмотрите что значит ошибка 409.
Привет! Суперское видео!! У меня ошибка вылетела - проверяю строки, ничего не могу найти: Exception: Request failed for api.telegram.org returned code 400. Truncated server response: {"ok":false,"error_code":400,"description":"Bad Request: message text is empty"} (use muteHttpExceptions option to examine full response) sendText @ Код.gs:24 send @ Код.gs:30
Проклятье, сколько не копировал разные тексты с сайтов, для написания простого бота, все время ничего не происходило. Благодаря тебе, бот ожил! Спасибо!
Дружище, ты просто крут! Очень полезный контент... Делай больше роликов
Внимание! Важное Замечание! После каждого нового деплоя (развертывания), где меняется ссылка гугл скрипта (а именно webAppUrl) необходимо заново выполнить метод setWebhook() установить новый, иначе бот реагировать не будет либо будет отвечать кодом от старого деплоя.
Совершенно верно. Поэтому лучше делать новую версию развертывания (а не новое рзавертывание). Делается это в Управлении развертываниями. Там же не должно быть более одного активного развертывания.
Спасибо за годный контент) подача на высоте! продолжай, друг
Спасибо тебе большое за урок! Сделай урок пожалуйста, что бы в ексель сохранялась еще и дата отправки, ну и что бы на нескольких листах от разных людей сохранялось=)
дату можно легко добавить создав объект:
let new = new Date()
и добавив его в строку с данными.
А сохранение на разных листах разных пользователей часто не обязательно. Обычно лучше вести базу данных на одном листе, а потом функционалом формул Гугл Таблиц распределять эти данные как угодно.
Лучшее видео на сегодня из просмотренных. Однозначно палец вверх. Не понял на каком языке был написан скрипт, но всё было до ужаса понятно) Всё работало как и в видео. Понятно, куда дальше копать. Пойду прогуляюсь по каналу. Огромное спасибо за проделанную работу!
Язык программирования называется Google Script. Аналог JavaScript.
Видео шикарное, спасибо большое, здоровья Вам и Вашим близким!
Спасибо за видео. Все остальные видео на ютубе пытаются продать свои конструкторы ботов, а тут просто инструкция
Большое спасибо за видео. Буквально вчера возникла потребность реализовать подобный функционал.
Очень наглядно и лаконично.
С нетерпение буду ждать новые видео.
Спасибо за отзыв.
Здорово очень здорово! Спасибо 🙏
Бро, самый лучший контент по этому вопросу. Спасибо!)
таблицах в меню "Инструменты" отсутствует функция "Редактор скриптов"
Да. Видео уже почти 3 года. Сейчас этот пункт Меню теперь называется: Расширения - Apps Script
Лучшее видео по теме webhook и логгирование!
Здравствуйте, подскажите, пожалуйста, как сделать так, чтобы новые сообщения в гугл таблице записались не сверху вниз, а снизу вверх?
Т.е. новое сообщение всегда попадало, например, во вторую строку и все заполненные строки смещались вниз?
В таком случае нужно добавить строку и записать в нее данные. Используемые методы можно посмотреть если записать Макрос.
Пишите в группу телеграм в описании, если не получится.
Добрый день! Все делаю также как вы показываете и при выполнений функции doPost выскакивает ошибка Cannot read properties of undefined (reading 'postData') , до вставки let contetns все работало
Добрый день! Вы не должны выполнять функцию doPost. Создал специальное видео по разбору частых ошибок. Эта ошибка разбирается тут:
ua-cam.com/video/vLOeassegL0/v-deo.htmlsi=xOsahyhwrvP4UXo1&t=686
Я столько мучилась чтоб в эту таблицу все сохранялось и только ты помог)Низкий поклон,Вам,сударь 🙇♀️
спасибо за видео. связь установлена но информация не попадает в гугл таблицу. пока не разобрался почему
Пишите в группу телеграм (в описании к видео) и прикладывайте пример
Подскажите а как научить бота наоборот, читать из гугл таблиц определенные ячейки ?
Например повесить значения ячейки на определенную кнопку в боте ну или определенный вопрос.
Спасибо огромное за видео и ответ если будет
На канале есть трансляция на тему создания бота учета финансов. А также видео по созданию команд. Там разбирается этот функционал.
Также можете написать в группу телеграм, где мы обсуждаем различные вопросы и помогаем с проблемами
t.me/googlesheetstelegram
Огромное спасибо за видео, помогла во всем разобраться!
все полезли почту проверять ?😆
Всё заработало с первого раза! Спасибо за материал! 👍
Спасибо ! То что нужно!
Огромнейшее спасибо за подробное видео. Не зная программирования, буквально за вечер создала бота, пусть простейшего, но это очень классно, когда всё работает. До этого прошерстила весь ютуб, везде только платные конструкторы. Так что ваше объяснение очень помогло. Благодарю!
Пожалуйста, очень рад! На канале много полезных видео. А сейчас провожу онлайн трансляции по созданию бота учета финансов, где можно задать вопросы по ходу процесса. Вся информации в группе телеграм (в описании к видео).
у меня ощибки выходит Код gs;24 b 30
Пишите в группу телеграм и прикладывайте пример кода.
t.me/googlesheetstelegram
Видео на 20 минут, которое я 3 дня пересматривал пересматривал, пока все не сошлось. Спасибо, выручили и научили!
пожалуйста!
@@SheetBot с ватсапом такое работает?
У WhatsApp скудное API и нет настоящих ботов.
Бро, очень круто! Спасибо!
Почему у меня не выполняется doPost(e) {} ? Я пишу из бота, но ничего в ячейку не попадает. Там пусто
Посмотрите здесь
ua-cam.com/video/vLOeassegL0/v-deo.html
Спасибо большоеее! !!!!! Будьте счастливы!!!! Спасибо еще раз
спасибо
спасибо, очень в тему
одно из лучших видео на планете!) а что ещё можно взять из сообщения, кроме меседж айди и меседж текст? может небольшое видео о том, как понимать справочник по телеграм API? я смотрю на этот справочник и не могу понять, например, почему именно "chat_id = contents.message.chat.id" написано. как из справочника к этому можно прийти? скорее всего это достаточно глупый вопрос, но лучше показаться глупым, чем им остаться ))
У вас отличные вопросы для новичка. contents.message.chat.id - это путь к ключу в объектах. Рекомендую почитать про объекты и массивы. Останутся вопросы пишите в группу
t.me/googlesheetstelegram
Пожалуй лучший контент по теме! Насколько я далек от JS и программирования и то справился. Продолжайте, у канала большое будущее! Я теперь с вами, готов делиться мыслями и результатами.
Создал бота, связал с таблицей, упражняюсь с клавиатурой. Если получится идентифицировать юзеров и по каждому сохранять некие настройки -- вообще огонь. А еще мне нужно как-то фотки, отправленные юзером хранить на гугл диске в определенной иерархии.
Кстати выводить красиво данные можно с помощью Google Data Studio
Добрый денью Большое спасибо за обучающее видео! Но, после выполнения получил такую ошибку, может подскажите, что не так: Threaded polling exception: A request to the Telegram API was unsuccessful. Error code: 409. Description: Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first
Зачем выполняете getUpdates? У вас конфликт этого метода при установленном вебхуке.
Спасибо за урок!
Как можно сделать, чтобы невыполненные заказы отправлялись в общий чат на следующий день?
Создать функцию по отправке сообщения с невыполненными заказами в общий чат и установить на нее триггер по времени.
Как связаться с создателем админом ?
t.me/andreintys
Покажите как отправлять клиенту чат ботом картинки видео и аудио, пожалуйста!
Это будет в будущих видео. Подписывайтесь на канал, чтобы не пропустить!
@@SheetBot Вместо Console.log() для отображения Можно вот отображать Logger.log(response); короче вроде.
Верно.
Добрый день! А какой аналог функции register_next_step_handler в Google Apps Script? Необходимо, чтобы бот задал вопрос, дождался ответа от пользователя, получил его, записал в таблицу и опять задал другой вопрос.
Мы пишем код самостоятельно, без библиотек. Используйте if () для поиска нужного состояния пользователя.
@@SheetBot подскажите, гугл-скрипт, где на видео Вы пишите бота, бесплатный ? Написал свой код, бот работает даже когда закрыта страница скрипта. Или в гугл есть ограничения ?
Бесплатный и работает 24/7 даже когда закрыт.
а у меня postData=FileUpload...
как это развернуть до полного варианта, который можно распарсить?
напишите в группу с примером таблицы t.me/googlesheetstelegram
Привет, у меня есть готовый бот на питоне и надо чтобы после выполнения команд (например нажатия кнопки) данные пользователя (по типу имя и юзернейм) записывало в таблицу (я задолбалась вручную переносить). Благодаря видео я их связала, но теперь команды не работают (в пайчарме по кд ошибку дает), так понимаю только с нуля все на JS писать надо? (от JS вообще далека, питон понимаю и азы плюсов)
Добрый день! Нет, не обязательно все переписывать на JS. У гугл таблиц есть API, с помощью которого вы можете добавлять данные в таблицы.
@@SheetBot да, уже нашла по запросу "связать таблицы и питон", так как все запросы с связать бота и таблицы давали только ваш метод
подскажите почему в этой функции function doPost(e) в скобках именно е?
е - общепринятая переменная, "event". Может быть любая другая.
Доброго времени суток, а как сохранить Имя, Имя пользователя и дату время? Пробовал, поле выходить пустым...
Напишите в группу t.me/googlesheetstelegram. Там оперативно помогут.
спасибо, скажите пожалуйста, насколько такой бот в связке с гуглтаблицей производительный? если в бот придет 1000 пользователей он не перестанет работать?
все зависит от сложности функционала бота и от реализации. Также как часто будут писать ему пользователи. Есть боты (к примеру для такси), где одновременно и часто пишут большое количество пользователей. Одновременно - значит в одну секунду много запросов. Тут скрипту сложно отработать корректно, однако есть методы стабильной реализации таких ботов.
Важно понимать, что гугл предоставляет определенные лимиты на свои сервисы. Конкретно на время работы скриптов.
у меня вообще не хочет в таблицу выводить(
Напишите в группу в описании к видео. Обязательно поможем!
не могу понять что вызывает функцию doPost?
внешнее обращение телеграма по ссылке webAppUrl
Огромное спасибо)
пожалуйста!
Это получается на языке джава спринт?
язык google apps script, который практически полностью копирует JS
Добрый день. Ваше видео очень полезное, но я хочу развить свой Телеграм бот чуть больше, чем показано в этом видео. Хотел добавить кнопки (ReplyKeyboardMarkup). Понял что их нужно добавлять через reply_markup: и строка должна быть подобного вида reply_markup:{"ReplyKeyboardMarkup":{"keyboard":[[{"KeyboardButton":{"text":"test"}}]]}}. Но как я не старался, не выходит подружить эту строку со всей функцией sendText(). Буду вам очень благодарен за помощь в моём вопросе. Может у вас будет минутка добавить решение моей проблемы на github и поделиться ссылкой. Спасибо за уделённое время. Удачи!
напишите в группу телеграм или мне в личку ( в описании)
@@SheetBot проблема уже решена.
у меня сообщения не добавляются в таблицу пишет "Ошибка
TypeError: Cannot read property 'postData' of undefined". Как это исправить?
скорее всего вы пытаетесь выполнить функцию doPost вручную в редакторе скриптов. Это не верно. Она выполняется автоматически при выставлении вебхука
@@SheetBot вот этот момент я так и не понял, почему автоматически выполнятся doPost после отправки сообщения на @10:47 , а не например getMe. Откуда фунция Webhook знает что надо вызывать doPost?
Это прописано в стандарте. Что post запрос по url запускает функцию doPost.
В функции sendText для примера ты указал чат айди конкретного пользователя прямо в коде (захардкодил). Как сделать чтобы отправка была по разным айди нескольких пользователей. Например при отправке боту сообщения пользователями бот логирует их сообщения+айди и передаёт в гугл таблицу. Надо чтобы возвращал каждому пользователю ответ по его айди из таблицы.
На 17:30 в этом видео я разбираю как ответить на сообщение пользователя. Если же нужна рассылка по id из таблицы, то можно взять в массив все id (getValues) и циклом сделать рассылку.
@@SheetBot нужен пример. У меня из массива всегда отправляет только по первому айди из массива, остальные игнорирует.
Пишите в группу с вашим примером таблицы - поможем!
t.me/googlesheetstelegram
А как прочитать из таблицы, а не записать?
Прочитать данные из таблицы можно методами getValue или getDisplayValue(s).
можно такое же видео или скрипт, только для бота в вк?
С ВК ботами не работал.
Круто только плохо слышно
Понял. В следующих видео стараюсь нормализовывать уровень громкости.
Спасибо большое за видео! Можно ли будет сделать видео создание бота интернет магазин с использованием Google таблицы?
Пожалуйста! Да, есть в планах видео домашнего бюджета и интернет магазина
@@SheetBot с нетерпением будем ждать!!!
На канале вышла серия трансляций по созданию бота учета финансов. Найти можно в Трансляциях.
А как можно привязать Google Scripts к таблице программно? через NodeJS можно? К примеру пользователь создал свою таблицу и предоставил боту ссылку, как боту встроить туда Apps Script?
Через Sheets API от Google.
developers.google.com/sheets/api/guides/concepts
Спасибо за такое интересное видео!
Столкнулся с такой проблемой. При выполнении функции setWebhook по моему боту в логах PyCharm пишет:
(__init__.py:515 MainThread) ERROR - TeleBot: "A request to the Telegram API was unsuccessful. Error code: 409. Description: Conflict: terminated by setWebhook request"
(__init__.py:515 MainThread) ERROR - TeleBot: "A request to the Telegram API was unsuccessful. Error code: 409. Description: Conflict: can't use getUpdates method while webhook is active; use deleteWebhook to delete the webhook first"
А при выполнении doPost, выдаёт:
TypeError: Cannot read property 'postData' of undefined
doPost @ Код.gs:15
doPost у вас должен срабатывать по webhook, эту функцию не нужно выполнять.
Почему не устанавливается webhook не могу сказать. Посмотрите что значит ошибка 409.
Привет! Суперское видео!! У меня ошибка вылетела - проверяю строки, ничего не могу найти:
Exception: Request failed for api.telegram.org returned code 400. Truncated server response: {"ok":false,"error_code":400,"description":"Bad Request: message text is empty"} (use muteHttpExceptions option to examine full response)
sendText @ Код.gs:24
send @ Код.gs:30
у вас в переменной text пусто, нет ничего
@@SheetBot
Добрый день! Такая же проблема. Не понял, где пусто, поясните пожалуйста
Вы пытаетесь отправить пустой текст. Переменная text пустая. Проверьте ,что передаете в нее.