Проклятье, сколько не копировал разные тексты с сайтов, для написания простого бота, все время ничего не происходило. Благодаря тебе, бот ожил! Спасибо!
Лучшее видео на сегодня из просмотренных. Однозначно палец вверх. Не понял на каком языке был написан скрипт, но всё было до ужаса понятно) Всё работало как и в видео. Понятно, куда дальше копать. Пойду прогуляюсь по каналу. Огромное спасибо за проделанную работу!
Огромнейшее спасибо за подробное видео. Не зная программирования, буквально за вечер создала бота, пусть простейшего, но это очень классно, когда всё работает. До этого прошерстила весь ютуб, везде только платные конструкторы. Так что ваше объяснение очень помогло. Благодарю!
Пожалуйста, очень рад! На канале много полезных видео. А сейчас провожу онлайн трансляции по созданию бота учета финансов, где можно задать вопросы по ходу процесса. Вся информации в группе телеграм (в описании к видео).
Большое спасибо за видео. Буквально вчера возникла потребность реализовать подобный функционал. Очень наглядно и лаконично. С нетерпение буду ждать новые видео.
Пожалуй лучший контент по теме! Насколько я далек от JS и программирования и то справился. Продолжайте, у канала большое будущее! Я теперь с вами, готов делиться мыслями и результатами. Создал бота, связал с таблицей, упражняюсь с клавиатурой. Если получится идентифицировать юзеров и по каждому сохранять некие настройки -- вообще огонь. А еще мне нужно как-то фотки, отправленные юзером хранить на гугл диске в определенной иерархии. Кстати выводить красиво данные можно с помощью Google Data Studio
Спасибо тебе большое за урок! Сделай урок пожалуйста, что бы в ексель сохранялась еще и дата отправки, ну и что бы на нескольких листах от разных людей сохранялось=)
дату можно легко добавить создав объект: let new = new Date() и добавив его в строку с данными. А сохранение на разных листах разных пользователей часто не обязательно. Обычно лучше вести базу данных на одном листе, а потом функционалом формул Гугл Таблиц распределять эти данные как угодно.
Внимание! Важное Замечание! После каждого нового деплоя (развертывания), где меняется ссылка гугл скрипта (а именно webAppUrl) необходимо заново выполнить метод setWebhook() установить новый, иначе бот реагировать не будет либо будет отвечать кодом от старого деплоя.
Совершенно верно. Поэтому лучше делать новую версию развертывания (а не новое рзавертывание). Делается это в Управлении развертываниями. Там же не должно быть более одного активного развертывания.
В функции sendText для примера ты указал чат айди конкретного пользователя прямо в коде (захардкодил). Как сделать чтобы отправка была по разным айди нескольких пользователей. Например при отправке боту сообщения пользователями бот логирует их сообщения+айди и передаёт в гугл таблицу. Надо чтобы возвращал каждому пользователю ответ по его айди из таблицы.
На 17:30 в этом видео я разбираю как ответить на сообщение пользователя. Если же нужна рассылка по id из таблицы, то можно взять в массив все id (getValues) и циклом сделать рассылку.
Подскажите а как научить бота наоборот, читать из гугл таблиц определенные ячейки ? Например повесить значения ячейки на определенную кнопку в боте ну или определенный вопрос. Спасибо огромное за видео и ответ если будет
На канале есть трансляция на тему создания бота учета финансов. А также видео по созданию команд. Там разбирается этот функционал. Также можете написать в группу телеграм, где мы обсуждаем различные вопросы и помогаем с проблемами t.me/googlesheetstelegram
Добрый день! Все делаю также как вы показываете и при выполнений функции doPost выскакивает ошибка Cannot read properties of undefined (reading 'postData') , до вставки let contetns все работало
Добрый день! Вы не должны выполнять функцию doPost. Создал специальное видео по разбору частых ошибок. Эта ошибка разбирается тут: ua-cam.com/video/vLOeassegL0/v-deo.htmlsi=xOsahyhwrvP4UXo1&t=686
Добрый день! А какой аналог функции register_next_step_handler в Google Apps Script? Необходимо, чтобы бот задал вопрос, дождался ответа от пользователя, получил его, записал в таблицу и опять задал другой вопрос.
@@SheetBot подскажите, гугл-скрипт, где на видео Вы пишите бота, бесплатный ? Написал свой код, бот работает даже когда закрыта страница скрипта. Или в гугл есть ограничения ?
Т.е. новое сообщение всегда попадало, например, во вторую строку и все заполненные строки смещались вниз? В таком случае нужно добавить строку и записать в нее данные. Используемые методы можно посмотреть если записать Макрос. Пишите в группу телеграм в описании, если не получится.
Добрый денью Большое спасибо за обучающее видео! Но, после выполнения получил такую ошибку, может подскажите, что не так: 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
Привет, у меня есть готовый бот на питоне и надо чтобы после выполнения команд (например нажатия кнопки) данные пользователя (по типу имя и юзернейм) записывало в таблицу (я задолбалась вручную переносить). Благодаря видео я их связала, но теперь команды не работают (в пайчарме по кд ошибку дает), так понимаю только с нуля все на JS писать надо? (от JS вообще далека, питон понимаю и азы плюсов)
спасибо, скажите пожалуйста, насколько такой бот в связке с гуглтаблицей производительный? если в бот придет 1000 пользователей он не перестанет работать?
все зависит от сложности функционала бота и от реализации. Также как часто будут писать ему пользователи. Есть боты (к примеру для такси), где одновременно и часто пишут большое количество пользователей. Одновременно - значит в одну секунду много запросов. Тут скрипту сложно отработать корректно, однако есть методы стабильной реализации таких ботов. Важно понимать, что гугл предоставляет определенные лимиты на свои сервисы. Конкретно на время работы скриптов.
Добрый день. Ваше видео очень полезное, но я хочу развить свой Телеграм бот чуть больше, чем показано в этом видео. Хотел добавить кнопки (ReplyKeyboardMarkup). Понял что их нужно добавлять через reply_markup: и строка должна быть подобного вида reply_markup:{"ReplyKeyboardMarkup":{"keyboard":[[{"KeyboardButton":{"text":"test"}}]]}}. Но как я не старался, не выходит подружить эту строку со всей функцией sendText(). Буду вам очень благодарен за помощь в моём вопросе. Может у вас будет минутка добавить решение моей проблемы на github и поделиться ссылкой. Спасибо за уделённое время. Удачи!
одно из лучших видео на планете!) а что ещё можно взять из сообщения, кроме меседж айди и меседж текст? может небольшое видео о том, как понимать справочник по телеграм API? я смотрю на этот справочник и не могу понять, например, почему именно "chat_id = contents.message.chat.id" написано. как из справочника к этому можно прийти? скорее всего это достаточно глупый вопрос, но лучше показаться глупым, чем им остаться ))
У вас отличные вопросы для новичка. contents.message.chat.id - это путь к ключу в объектах. Рекомендую почитать про объекты и массивы. Останутся вопросы пишите в группу t.me/googlesheetstelegram
@@SheetBot вот этот момент я так и не понял, почему автоматически выполнятся doPost после отправки сообщения на @10:47 , а не например getMe. Откуда фунция Webhook знает что надо вызывать doPost?
А как можно привязать 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
Проклятье, сколько не копировал разные тексты с сайтов, для написания простого бота, все время ничего не происходило. Благодаря тебе, бот ожил! Спасибо!
Спасибо за видео. Все остальные видео на ютубе пытаются продать свои конструкторы ботов, а тут просто инструкция
Лучшее видео на сегодня из просмотренных. Однозначно палец вверх. Не понял на каком языке был написан скрипт, но всё было до ужаса понятно) Всё работало как и в видео. Понятно, куда дальше копать. Пойду прогуляюсь по каналу. Огромное спасибо за проделанную работу!
Язык программирования называется Google Script. Аналог JavaScript.
Огромнейшее спасибо за подробное видео. Не зная программирования, буквально за вечер создала бота, пусть простейшего, но это очень классно, когда всё работает. До этого прошерстила весь ютуб, везде только платные конструкторы. Так что ваше объяснение очень помогло. Благодарю!
Пожалуйста, очень рад! На канале много полезных видео. А сейчас провожу онлайн трансляции по созданию бота учета финансов, где можно задать вопросы по ходу процесса. Вся информации в группе телеграм (в описании к видео).
Я столько мучилась чтоб в эту таблицу все сохранялось и только ты помог)Низкий поклон,Вам,сударь 🙇♀️
Видео роскошное! Огромное спасибо!
Лучшее видео по теме webhook и логгирование!
Видео на 20 минут, которое я 3 дня пересматривал пересматривал, пока все не сошлось. Спасибо, выручили и научили!
пожалуйста!
@@SheetBot с ватсапом такое работает?
У WhatsApp скудное API и нет настоящих ботов.
Большое спасибо за видео. Буквально вчера возникла потребность реализовать подобный функционал.
Очень наглядно и лаконично.
С нетерпение буду ждать новые видео.
Спасибо за отзыв.
Бро, самый лучший контент по этому вопросу. Спасибо!)
Дружище, ты просто крут! Очень полезный контент... Делай больше роликов
Видео шикарное, спасибо большое, здоровья Вам и Вашим близким!
Всё заработало с первого раза! Спасибо за материал! 👍
Спасибо за годный контент) подача на высоте! продолжай, друг
Спасибо ! То что нужно!
Здорово очень здорово! Спасибо 🙏
Спасибо большоеее! !!!!! Будьте счастливы!!!! Спасибо еще раз
спасибо
Огромное спасибо за видео, помогла во всем разобраться!
Пожалуй лучший контент по теме! Насколько я далек от JS и программирования и то справился. Продолжайте, у канала большое будущее! Я теперь с вами, готов делиться мыслями и результатами.
Создал бота, связал с таблицей, упражняюсь с клавиатурой. Если получится идентифицировать юзеров и по каждому сохранять некие настройки -- вообще огонь. А еще мне нужно как-то фотки, отправленные юзером хранить на гугл диске в определенной иерархии.
Кстати выводить красиво данные можно с помощью Google Data Studio
Спасибо тебе большое за урок! Сделай урок пожалуйста, что бы в ексель сохранялась еще и дата отправки, ну и что бы на нескольких листах от разных людей сохранялось=)
дату можно легко добавить создав объект:
let new = new Date()
и добавив его в строку с данными.
А сохранение на разных листах разных пользователей часто не обязательно. Обычно лучше вести базу данных на одном листе, а потом функционалом формул Гугл Таблиц распределять эти данные как угодно.
Бро, очень круто! Спасибо!
Внимание! Важное Замечание! После каждого нового деплоя (развертывания), где меняется ссылка гугл скрипта (а именно webAppUrl) необходимо заново выполнить метод setWebhook() установить новый, иначе бот реагировать не будет либо будет отвечать кодом от старого деплоя.
Совершенно верно. Поэтому лучше делать новую версию развертывания (а не новое рзавертывание). Делается это в Управлении развертываниями. Там же не должно быть более одного активного развертывания.
Огромное спасибо)
пожалуйста!
спасибо, очень в тему
В функции sendText для примера ты указал чат айди конкретного пользователя прямо в коде (захардкодил). Как сделать чтобы отправка была по разным айди нескольких пользователей. Например при отправке боту сообщения пользователями бот логирует их сообщения+айди и передаёт в гугл таблицу. Надо чтобы возвращал каждому пользователю ответ по его айди из таблицы.
На 17:30 в этом видео я разбираю как ответить на сообщение пользователя. Если же нужна рассылка по id из таблицы, то можно взять в массив все id (getValues) и циклом сделать рассылку.
@@SheetBot нужен пример. У меня из массива всегда отправляет только по первому айди из массива, остальные игнорирует.
Пишите в группу с вашим примером таблицы - поможем!
t.me/googlesheetstelegram
Спасибо за урок!
Как можно сделать, чтобы невыполненные заказы отправлялись в общий чат на следующий день?
Создать функцию по отправке сообщения с невыполненными заказами в общий чат и установить на нее триггер по времени.
Подскажите а как научить бота наоборот, читать из гугл таблиц определенные ячейки ?
Например повесить значения ячейки на определенную кнопку в боте ну или определенный вопрос.
Спасибо огромное за видео и ответ если будет
На канале есть трансляция на тему создания бота учета финансов. А также видео по созданию команд. Там разбирается этот функционал.
Также можете написать в группу телеграм, где мы обсуждаем различные вопросы и помогаем с проблемами
t.me/googlesheetstelegram
Добрый день! Все делаю также как вы показываете и при выполнений функции doPost выскакивает ошибка Cannot read properties of undefined (reading 'postData') , до вставки let contetns все работало
Добрый день! Вы не должны выполнять функцию doPost. Создал специальное видео по разбору частых ошибок. Эта ошибка разбирается тут:
ua-cam.com/video/vLOeassegL0/v-deo.htmlsi=xOsahyhwrvP4UXo1&t=686
Спасибо большое за видео! Можно ли будет сделать видео создание бота интернет магазин с использованием Google таблицы?
Пожалуйста! Да, есть в планах видео домашнего бюджета и интернет магазина
@@SheetBot с нетерпением будем ждать!!!
На канале вышла серия трансляций по созданию бота учета финансов. Найти можно в Трансляциях.
Добрый день! А какой аналог функции register_next_step_handler в Google Apps Script? Необходимо, чтобы бот задал вопрос, дождался ответа от пользователя, получил его, записал в таблицу и опять задал другой вопрос.
Мы пишем код самостоятельно, без библиотек. Используйте if () для поиска нужного состояния пользователя.
@@SheetBot подскажите, гугл-скрипт, где на видео Вы пишите бота, бесплатный ? Написал свой код, бот работает даже когда закрыта страница скрипта. Или в гугл есть ограничения ?
Бесплатный и работает 24/7 даже когда закрыт.
подскажите почему в этой функции function doPost(e) в скобках именно е?
е - общепринятая переменная, "event". Может быть любая другая.
Здравствуйте, подскажите, пожалуйста, как сделать так, чтобы новые сообщения в гугл таблице записались не сверху вниз, а снизу вверх?
Т.е. новое сообщение всегда попадало, например, во вторую строку и все заполненные строки смещались вниз?
В таком случае нужно добавить строку и записать в нее данные. Используемые методы можно посмотреть если записать Макрос.
Пишите в группу телеграм в описании, если не получится.
А можно так делать мини приложения в телеграм?
Да, вполне. Правда на канале еще не было таких видео.
Добрый денью Большое спасибо за обучающее видео! Но, после выполнения получил такую ошибку, может подскажите, что не так: 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? У вас конфликт этого метода при установленном вебхуке.
Привет, у меня есть готовый бот на питоне и надо чтобы после выполнения команд (например нажатия кнопки) данные пользователя (по типу имя и юзернейм) записывало в таблицу (я задолбалась вручную переносить). Благодаря видео я их связала, но теперь команды не работают (в пайчарме по кд ошибку дает), так понимаю только с нуля все на JS писать надо? (от JS вообще далека, питон понимаю и азы плюсов)
Добрый день! Нет, не обязательно все переписывать на JS. У гугл таблиц есть API, с помощью которого вы можете добавлять данные в таблицы.
@@SheetBot да, уже нашла по запросу "связать таблицы и питон", так как все запросы с связать бота и таблицы давали только ваш метод
спасибо за видео. связь установлена но информация не попадает в гугл таблицу. пока не разобрался почему
Пишите в группу телеграм (в описании к видео) и прикладывайте пример
Покажите как отправлять клиенту чат ботом картинки видео и аудио, пожалуйста!
Это будет в будущих видео. Подписывайтесь на канал, чтобы не пропустить!
@@SheetBot Вместо Console.log() для отображения Можно вот отображать Logger.log(response); короче вроде.
Верно.
спасибо, скажите пожалуйста, насколько такой бот в связке с гуглтаблицей производительный? если в бот придет 1000 пользователей он не перестанет работать?
все зависит от сложности функционала бота и от реализации. Также как часто будут писать ему пользователи. Есть боты (к примеру для такси), где одновременно и часто пишут большое количество пользователей. Одновременно - значит в одну секунду много запросов. Тут скрипту сложно отработать корректно, однако есть методы стабильной реализации таких ботов.
Важно понимать, что гугл предоставляет определенные лимиты на свои сервисы. Конкретно на время работы скриптов.
Добрый день. Ваше видео очень полезное, но я хочу развить свой Телеграм бот чуть больше, чем показано в этом видео. Хотел добавить кнопки (ReplyKeyboardMarkup). Понял что их нужно добавлять через reply_markup: и строка должна быть подобного вида reply_markup:{"ReplyKeyboardMarkup":{"keyboard":[[{"KeyboardButton":{"text":"test"}}]]}}. Но как я не старался, не выходит подружить эту строку со всей функцией sendText(). Буду вам очень благодарен за помощь в моём вопросе. Может у вас будет минутка добавить решение моей проблемы на github и поделиться ссылкой. Спасибо за уделённое время. Удачи!
напишите в группу телеграм или мне в личку ( в описании)
@@SheetBot проблема уже решена.
Как связаться с создателем админом ?
t.me/andreintys
а у меня postData=FileUpload...
как это развернуть до полного варианта, который можно распарсить?
напишите в группу с примером таблицы t.me/googlesheetstelegram
Доброго времени суток, а как сохранить Имя, Имя пользователя и дату время? Пробовал, поле выходить пустым...
Напишите в группу t.me/googlesheetstelegram. Там оперативно помогут.
Почему у меня не выполняется doPost(e) {} ? Я пишу из бота, но ничего в ячейку не попадает. Там пусто
Посмотрите здесь
ua-cam.com/video/vLOeassegL0/v-deo.html
таблицах в меню "Инструменты" отсутствует функция "Редактор скриптов"
Да. Видео уже почти 3 года. Сейчас этот пункт Меню теперь называется: Расширения - Apps Script
одно из лучших видео на планете!) а что ещё можно взять из сообщения, кроме меседж айди и меседж текст? может небольшое видео о том, как понимать справочник по телеграм API? я смотрю на этот справочник и не могу понять, например, почему именно "chat_id = contents.message.chat.id" написано. как из справочника к этому можно прийти? скорее всего это достаточно глупый вопрос, но лучше показаться глупым, чем им остаться ))
У вас отличные вопросы для новичка. contents.message.chat.id - это путь к ключу в объектах. Рекомендую почитать про объекты и массивы. Останутся вопросы пишите в группу
t.me/googlesheetstelegram
все полезли почту проверять ?😆
у меня сообщения не добавляются в таблицу пишет "Ошибка
TypeError: Cannot read property 'postData' of undefined". Как это исправить?
скорее всего вы пытаетесь выполнить функцию doPost вручную в редакторе скриптов. Это не верно. Она выполняется автоматически при выставлении вебхука
@@SheetBot вот этот момент я так и не понял, почему автоматически выполнятся doPost после отправки сообщения на @10:47 , а не например getMe. Откуда фунция Webhook знает что надо вызывать doPost?
Это прописано в стандарте. Что post запрос по url запускает функцию doPost.
не могу понять что вызывает функцию doPost?
внешнее обращение телеграма по ссылке webAppUrl
Это получается на языке джава спринт?
язык google apps script, который практически полностью копирует JS
у меня ощибки выходит Код gs;24 b 30
Пишите в группу телеграм и прикладывайте пример кода.
t.me/googlesheetstelegram
А как прочитать из таблицы, а не записать?
Прочитать данные из таблицы можно методами getValue или getDisplayValue(s).
можно такое же видео или скрипт, только для бота в вк?
С ВК ботами не работал.
Круто только плохо слышно
Понял. В следующих видео стараюсь нормализовывать уровень громкости.
у меня вообще не хочет в таблицу выводить(
Напишите в группу в описании к видео. Обязательно поможем!
А как можно привязать 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 пустая. Проверьте ,что передаете в нее.