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

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

КОМЕНТАРІ • 114

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

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

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

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

  • @НиколайБелов-с2о
    @НиколайБелов-с2о 2 роки тому +7

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

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

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

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

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

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

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

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

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

  • @dragon1711ytb
    @dragon1711ytb 27 днів тому

    Видео роскошное! Огромное спасибо!

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

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

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

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

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

      пожалуйста!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • @eugenezakhno
    @eugenezakhno 2 роки тому +4

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

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

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

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

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

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

      пожалуйста!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    А можно так делать мини приложения в телеграм?

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

      Да, вполне. Правда на канале еще не было таких видео.

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

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

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

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

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

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

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

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

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

  • @orothoteluman
    @orothoteluman 5 місяців тому

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

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

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

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

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

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

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

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

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

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

      Верно.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • @Pavel-n6r
    @Pavel-n6r 2 місяці тому

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • @ok-master-ok
    @ok-master-ok Рік тому

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • @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  Рік тому

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