Телеграм бот и гугл таблица: создание, webhook, логгирование

Поділитися
Вставка
  • Опубліковано 2 жов 2024

КОМЕНТАРІ • 111

  • @YouGreed88
    @YouGreed88 2 роки тому +8

    Проклятье, сколько не копировал разные тексты с сайтов, для написания простого бота, все время ничего не происходило. Благодаря тебе, бот ожил! Спасибо!

  • @olegsirenko7231
    @olegsirenko7231 3 роки тому +7

    Дружище, ты просто крут! Очень полезный контент... Делай больше роликов

  • @eugenezakhno
    @eugenezakhno Рік тому +4

    Внимание! Важное Замечание! После каждого нового деплоя (развертывания), где меняется ссылка гугл скрипта (а именно webAppUrl) необходимо заново выполнить метод setWebhook() установить новый, иначе бот реагировать не будет либо будет отвечать кодом от старого деплоя.

    • @SheetBot
      @SheetBot  Рік тому +3

      Совершенно верно. Поэтому лучше делать новую версию развертывания (а не новое рзавертывание). Делается это в Управлении развертываниями. Там же не должно быть более одного активного развертывания.

  • @______9152
    @______9152 3 роки тому +7

    Спасибо за годный контент) подача на высоте! продолжай, друг

  • @Daniel.41
    @Daniel.41 2 роки тому +10

    Спасибо тебе большое за урок! Сделай урок пожалуйста, что бы в ексель сохранялась еще и дата отправки, ну и что бы на нескольких листах от разных людей сохранялось=)

    • @SheetBot
      @SheetBot  2 роки тому +8

      дату можно легко добавить создав объект:
      let new = new Date()
      и добавив его в строку с данными.
      А сохранение на разных листах разных пользователей часто не обязательно. Обычно лучше вести базу данных на одном листе, а потом функционалом формул Гугл Таблиц распределять эти данные как угодно.

  • @НиколайБелов-с2о

    Лучшее видео на сегодня из просмотренных. Однозначно палец вверх. Не понял на каком языке был написан скрипт, но всё было до ужаса понятно) Всё работало как и в видео. Понятно, куда дальше копать. Пойду прогуляюсь по каналу. Огромное спасибо за проделанную работу!

    • @SheetBot
      @SheetBot  Рік тому +3

      Язык программирования называется Google Script. Аналог JavaScript.

  • @alexeynovikov1232
    @alexeynovikov1232 3 роки тому +8

    Видео шикарное, спасибо большое, здоровья Вам и Вашим близким!

  • @ОлександрПархоменко-г4й

    Спасибо за видео. Все остальные видео на ютубе пытаются продать свои конструкторы ботов, а тут просто инструкция

  • @eooa403
    @eooa403 3 роки тому +6

    Большое спасибо за видео. Буквально вчера возникла потребность реализовать подобный функционал.
    Очень наглядно и лаконично.
    С нетерпение буду ждать новые видео.

    • @SheetBot
      @SheetBot  3 роки тому

      Спасибо за отзыв.

  • @teatrshine6900
    @teatrshine6900 3 роки тому +4

    Здорово очень здорово! Спасибо 🙏

  • @Дмитрий-в4е3в
    @Дмитрий-в4е3в Рік тому +1

    Бро, самый лучший контент по этому вопросу. Спасибо!)

  • @Pavel-n6r
    @Pavel-n6r 5 днів тому

    таблицах в меню "Инструменты" отсутствует функция "Редактор скриптов"

    • @SheetBot
      @SheetBot  5 днів тому

      Да. Видео уже почти 3 года. Сейчас этот пункт Меню теперь называется: Расширения - Apps Script

  • @Timamesh
    @Timamesh 3 роки тому +2

    Лучшее видео по теме webhook и логгирование!

  • @3broalimovs921
    @3broalimovs921 Місяць тому

    Здравствуйте, подскажите, пожалуйста, как сделать так, чтобы новые сообщения в гугл таблице записались не сверху вниз, а снизу вверх?

    • @SheetBot
      @SheetBot  Місяць тому

      Т.е. новое сообщение всегда попадало, например, во вторую строку и все заполненные строки смещались вниз?
      В таком случае нужно добавить строку и записать в нее данные. Используемые методы можно посмотреть если записать Макрос.
      Пишите в группу телеграм в описании, если не получится.

  • @1caktobe585
    @1caktobe585 2 місяці тому

    Добрый день! Все делаю также как вы показываете и при выполнений функции doPost выскакивает ошибка Cannot read properties of undefined (reading 'postData') , до вставки let contetns все работало

    • @SheetBot
      @SheetBot  2 місяці тому

      Добрый день! Вы не должны выполнять функцию doPost. Создал специальное видео по разбору частых ошибок. Эта ошибка разбирается тут:
      ua-cam.com/video/vLOeassegL0/v-deo.htmlsi=xOsahyhwrvP4UXo1&t=686

  • @onlyzyanon6775
    @onlyzyanon6775 3 роки тому +8

    Я столько мучилась чтоб в эту таблицу все сохранялось и только ты помог)Низкий поклон,Вам,сударь 🙇‍♀️

  • @orothotel8044
    @orothotel8044 3 місяці тому

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

    • @SheetBot
      @SheetBot  3 місяці тому

      Пишите в группу телеграм (в описании к видео) и прикладывайте пример

  • @ЕфимГасилов
    @ЕфимГасилов Місяць тому

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

    • @SheetBot
      @SheetBot  Місяць тому

      На канале есть трансляция на тему создания бота учета финансов. А также видео по созданию команд. Там разбирается этот функционал.
      Также можете написать в группу телеграм, где мы обсуждаем различные вопросы и помогаем с проблемами
      t.me/googlesheetstelegram

  • @Cocalexa
    @Cocalexa Рік тому +1

    Огромное спасибо за видео, помогла во всем разобраться!

  • @ВасилийФам
    @ВасилийФам 2 роки тому +1

    все полезли почту проверять ?😆

  • @gromovdenis7
    @gromovdenis7 10 місяців тому +1

    Всё заработало с первого раза! Спасибо за материал! 👍

  • @pvm1221
    @pvm1221 Рік тому +1

    Спасибо ! То что нужно!

  • @SunshineSunshinee
    @SunshineSunshinee 11 місяців тому +1

    Огромнейшее спасибо за подробное видео. Не зная программирования, буквально за вечер создала бота, пусть простейшего, но это очень классно, когда всё работает. До этого прошерстила весь ютуб, везде только платные конструкторы. Так что ваше объяснение очень помогло. Благодарю!

    • @SheetBot
      @SheetBot  11 місяців тому

      Пожалуйста, очень рад! На канале много полезных видео. А сейчас провожу онлайн трансляции по созданию бота учета финансов, где можно задать вопросы по ходу процесса. Вся информации в группе телеграм (в описании к видео).

  • @ok-master-ok
    @ok-master-ok 10 місяців тому

    у меня ощибки выходит Код gs;24 b 30

    • @SheetBot
      @SheetBot  10 місяців тому

      Пишите в группу телеграм и прикладывайте пример кода.
      t.me/googlesheetstelegram

  • @Vovca_213
    @Vovca_213 2 роки тому +2

    Видео на 20 минут, которое я 3 дня пересматривал пересматривал, пока все не сошлось. Спасибо, выручили и научили!

    • @SheetBot
      @SheetBot  2 роки тому

      пожалуйста!

    • @multigallery8271
      @multigallery8271 2 роки тому

      @@SheetBot с ватсапом такое работает?

    • @SheetBot
      @SheetBot  10 місяців тому

      У WhatsApp скудное API и нет настоящих ботов.

  • @SCREECHfun
    @SCREECHfun 3 роки тому +1

    Бро, очень круто! Спасибо!

  • @yauhenizakhno8510
    @yauhenizakhno8510 Рік тому

    Почему у меня не выполняется doPost(e) {} ? Я пишу из бота, но ничего в ячейку не попадает. Там пусто

    • @SheetBot
      @SheetBot  Рік тому +1

      Посмотрите здесь
      ua-cam.com/video/vLOeassegL0/v-deo.html

  • @Kvinya1
    @Kvinya1 2 роки тому +1

    Спасибо большоеее! !!!!! Будьте счастливы!!!! Спасибо еще раз

  • @gera_cl4219
    @gera_cl4219 3 роки тому +1

    спасибо, очень в тему

  • @АлексейАлексей-я6и8э

    одно из лучших видео на планете!) а что ещё можно взять из сообщения, кроме меседж айди и меседж текст? может небольшое видео о том, как понимать справочник по телеграм API? я смотрю на этот справочник и не могу понять, например, почему именно "chat_id = contents.message.chat.id" написано. как из справочника к этому можно прийти? скорее всего это достаточно глупый вопрос, но лучше показаться глупым, чем им остаться ))

    • @SheetBot
      @SheetBot  2 роки тому +1

      У вас отличные вопросы для новичка. contents.message.chat.id - это путь к ключу в объектах. Рекомендую почитать про объекты и массивы. Останутся вопросы пишите в группу
      t.me/googlesheetstelegram

  • @gorgulij
    @gorgulij Рік тому

    Пожалуй лучший контент по теме! Насколько я далек от JS и программирования и то справился. Продолжайте, у канала большое будущее! Я теперь с вами, готов делиться мыслями и результатами.
    Создал бота, связал с таблицей, упражняюсь с клавиатурой. Если получится идентифицировать юзеров и по каждому сохранять некие настройки -- вообще огонь. А еще мне нужно как-то фотки, отправленные юзером хранить на гугл диске в определенной иерархии.
    Кстати выводить красиво данные можно с помощью Google Data Studio

  • @ol_k_p_87
    @ol_k_p_87 Рік тому

    Добрый денью Большое спасибо за обучающее видео! Но, после выполнения получил такую ошибку, может подскажите, что не так: 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

    • @SheetBot
      @SheetBot  Рік тому

      Зачем выполняете getUpdates? У вас конфликт этого метода при установленном вебхуке.

  • @tiufanoff
    @tiufanoff 2 роки тому

    Спасибо за урок!
    Как можно сделать, чтобы невыполненные заказы отправлялись в общий чат на следующий день?

    • @SheetBot
      @SheetBot  Рік тому

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

  • @BogMediaSchool
    @BogMediaSchool 3 роки тому +1

    Как связаться с создателем админом ?

  • @ravkhatshikhov
    @ravkhatshikhov 3 роки тому +1

    Покажите как отправлять клиенту чат ботом картинки видео и аудио, пожалуйста!

    • @SheetBot
      @SheetBot  3 роки тому +1

      Это будет в будущих видео. Подписывайтесь на канал, чтобы не пропустить!

    • @Vovan_Sergeevih
      @Vovan_Sergeevih 3 роки тому

      @@SheetBot Вместо Console.log() для отображения Можно вот отображать Logger.log(response); короче вроде.

    • @SheetBot
      @SheetBot  10 місяців тому

      Верно.

  • @al_fm94
    @al_fm94 11 місяців тому

    Добрый день! А какой аналог функции register_next_step_handler в Google Apps Script? Необходимо, чтобы бот задал вопрос, дождался ответа от пользователя, получил его, записал в таблицу и опять задал другой вопрос.

    • @SheetBot
      @SheetBot  11 місяців тому

      Мы пишем код самостоятельно, без библиотек. Используйте if () для поиска нужного состояния пользователя.

    • @al_fm94
      @al_fm94 11 місяців тому

      @@SheetBot подскажите, гугл-скрипт, где на видео Вы пишите бота, бесплатный ? Написал свой код, бот работает даже когда закрыта страница скрипта. Или в гугл есть ограничения ?

    • @SheetBot
      @SheetBot  10 місяців тому

      Бесплатный и работает 24/7 даже когда закрыт.

  • @NobelRiesen36
    @NobelRiesen36 2 роки тому

    а у меня postData=FileUpload...
    как это развернуть до полного варианта, который можно распарсить?

    • @SheetBot
      @SheetBot  2 роки тому

      напишите в группу с примером таблицы t.me/googlesheetstelegram

  • @lenaavramchuk1672
    @lenaavramchuk1672 Рік тому

    Привет, у меня есть готовый бот на питоне и надо чтобы после выполнения команд (например нажатия кнопки) данные пользователя (по типу имя и юзернейм) записывало в таблицу (я задолбалась вручную переносить). Благодаря видео я их связала, но теперь команды не работают (в пайчарме по кд ошибку дает), так понимаю только с нуля все на JS писать надо? (от JS вообще далека, питон понимаю и азы плюсов)

    • @SheetBot
      @SheetBot  Рік тому +1

      Добрый день! Нет, не обязательно все переписывать на JS. У гугл таблиц есть API, с помощью которого вы можете добавлять данные в таблицы.

    • @lenaavramchuk1672
      @lenaavramchuk1672 Рік тому

      @@SheetBot да, уже нашла по запросу "связать таблицы и питон", так как все запросы с связать бота и таблицы давали только ваш метод

  • @Kvinya1
    @Kvinya1 2 роки тому

    подскажите почему в этой функции function doPost(e) в скобках именно е?

    • @SheetBot
      @SheetBot  2 роки тому

      е - общепринятая переменная, "event". Может быть любая другая.

  • @progm493
    @progm493 3 роки тому

    Доброго времени суток, а как сохранить Имя, Имя пользователя и дату время? Пробовал, поле выходить пустым...

    • @SheetBot
      @SheetBot  3 роки тому

      Напишите в группу t.me/googlesheetstelegram. Там оперативно помогут.

  • @МРТММЦ
    @МРТММЦ 2 роки тому

    спасибо, скажите пожалуйста, насколько такой бот в связке с гуглтаблицей производительный? если в бот придет 1000 пользователей он не перестанет работать?

    • @SheetBot
      @SheetBot  2 роки тому +2

      все зависит от сложности функционала бота и от реализации. Также как часто будут писать ему пользователи. Есть боты (к примеру для такси), где одновременно и часто пишут большое количество пользователей. Одновременно - значит в одну секунду много запросов. Тут скрипту сложно отработать корректно, однако есть методы стабильной реализации таких ботов.
      Важно понимать, что гугл предоставляет определенные лимиты на свои сервисы. Конкретно на время работы скриптов.

  • @ez_yer4672
    @ez_yer4672 Рік тому

    у меня вообще не хочет в таблицу выводить(

    • @SheetBot
      @SheetBot  Рік тому

      Напишите в группу в описании к видео. Обязательно поможем!

  • @inilim
    @inilim 3 роки тому

    не могу понять что вызывает функцию doPost?

    • @SheetBot
      @SheetBot  3 роки тому +2

      внешнее обращение телеграма по ссылке webAppUrl

  • @ДенисШаймарданов-ф3ф

    Огромное спасибо)

    • @SheetBot
      @SheetBot  2 роки тому

      пожалуйста!

  • @ДиамондКарбонов
    @ДиамондКарбонов 2 роки тому

    Это получается на языке джава спринт?

    • @SheetBot
      @SheetBot  2 роки тому +1

      язык google apps script, который практически полностью копирует JS

  • @mx420
    @mx420 3 роки тому

    Добрый день. Ваше видео очень полезное, но я хочу развить свой Телеграм бот чуть больше, чем показано в этом видео. Хотел добавить кнопки (ReplyKeyboardMarkup). Понял что их нужно добавлять через reply_markup: и строка должна быть подобного вида reply_markup:{"ReplyKeyboardMarkup":{"keyboard":[[{"KeyboardButton":{"text":"test"}}]]}}. Но как я не старался, не выходит подружить эту строку со всей функцией sendText(). Буду вам очень благодарен за помощь в моём вопросе. Может у вас будет минутка добавить решение моей проблемы на github и поделиться ссылкой. Спасибо за уделённое время. Удачи!

    • @SheetBot
      @SheetBot  2 роки тому

      напишите в группу телеграм или мне в личку ( в описании)

    • @mx420
      @mx420 2 роки тому

      @@SheetBot проблема уже решена.

  • @АлександрПавленко-е7е

    у меня сообщения не добавляются в таблицу пишет "Ошибка
    TypeError: Cannot read property 'postData' of undefined". Как это исправить?

    • @SheetBot
      @SheetBot  2 роки тому

      скорее всего вы пытаетесь выполнить функцию doPost вручную в редакторе скриптов. Это не верно. Она выполняется автоматически при выставлении вебхука

    • @ypcyc
      @ypcyc 2 роки тому

      @@SheetBot вот этот момент я так и не понял, почему автоматически выполнятся doPost после отправки сообщения на @10:47 , а не например getMe. Откуда фунция Webhook знает что надо вызывать doPost?

    • @SheetBot
      @SheetBot  10 місяців тому

      Это прописано в стандарте. Что post запрос по url запускает функцию doPost.

  • @venzeldv
    @venzeldv Рік тому

    В функции sendText для примера ты указал чат айди конкретного пользователя прямо в коде (захардкодил). Как сделать чтобы отправка была по разным айди нескольких пользователей. Например при отправке боту сообщения пользователями бот логирует их сообщения+айди и передаёт в гугл таблицу. Надо чтобы возвращал каждому пользователю ответ по его айди из таблицы.

    • @SheetBot
      @SheetBot  Рік тому

      На 17:30 в этом видео я разбираю как ответить на сообщение пользователя. Если же нужна рассылка по id из таблицы, то можно взять в массив все id (getValues) и циклом сделать рассылку.

    • @venzeldv
      @venzeldv Рік тому

      @@SheetBot нужен пример. У меня из массива всегда отправляет только по первому айди из массива, остальные игнорирует.

    • @SheetBot
      @SheetBot  10 місяців тому

      Пишите в группу с вашим примером таблицы - поможем!
      t.me/googlesheetstelegram

  • @ДмитрийСергеевич-я2ш

    А как прочитать из таблицы, а не записать?

    • @SheetBot
      @SheetBot  2 роки тому

      Прочитать данные из таблицы можно методами getValue или getDisplayValue(s).

  • @Тест-ы9у
    @Тест-ы9у 3 роки тому

    можно такое же видео или скрипт, только для бота в вк?

    • @SheetBot
      @SheetBot  3 роки тому

      С ВК ботами не работал.

  • @jene155
    @jene155 Рік тому

    Круто только плохо слышно

    • @SheetBot
      @SheetBot  Рік тому

      Понял. В следующих видео стараюсь нормализовывать уровень громкости.

  • @TheSgeleta
    @TheSgeleta 3 роки тому

    Спасибо большое за видео! Можно ли будет сделать видео создание бота интернет магазин с использованием Google таблицы?

    • @SheetBot
      @SheetBot  3 роки тому +1

      Пожалуйста! Да, есть в планах видео домашнего бюджета и интернет магазина

    • @TheSgeleta
      @TheSgeleta 3 роки тому

      @@SheetBot с нетерпением будем ждать!!!

    • @SheetBot
      @SheetBot  7 місяців тому

      На канале вышла серия трансляций по созданию бота учета финансов. Найти можно в Трансляциях.

  • @modjaid3907
    @modjaid3907 Рік тому

    А как можно привязать Google Scripts к таблице программно? через NodeJS можно? К примеру пользователь создал свою таблицу и предоставил боту ссылку, как боту встроить туда Apps Script?

    • @SheetBot
      @SheetBot  Рік тому

      Через Sheets API от Google.
      developers.google.com/sheets/api/guides/concepts

  • @AlniyatStar
    @AlniyatStar 3 роки тому

    Спасибо за такое интересное видео!
    Столкнулся с такой проблемой. При выполнении функции 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

    • @SheetBot
      @SheetBot  3 роки тому +1

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

  • @EmmanuilMard
    @EmmanuilMard 3 роки тому

    Привет! Суперское видео!! У меня ошибка вылетела - проверяю строки, ничего не могу найти:
    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

    • @SheetBot
      @SheetBot  3 роки тому

      у вас в переменной text пусто, нет ничего

    • @СтаниславБанк
      @СтаниславБанк 2 роки тому

      @@SheetBot
      Добрый день! Такая же проблема. Не понял, где пусто, поясните пожалуйста

    • @SheetBot
      @SheetBot  10 місяців тому

      Вы пытаетесь отправить пустой текст. Переменная text пустая. Проверьте ,что передаете в нее.