# Управляем Notion и Google сервисами через Телеграм без программирования (сервис n8n)

## Метаданные

- **Канал:** School of Practical Skills
- **YouTube:** https://www.youtube.com/watch?v=xP_YiBn1ITc
- **Дата:** 25.02.2022
- **Длительность:** 55:01
- **Просмотры:** 11,052

## Описание

Мои новый курс по автоматизации и AI 👉 https://artemdzyuba.ru

Присоединяйся, чтобы оставаться на связи:
Телеграм: https://t.me/practicalskills
Инстаграм: https://www.instagram.com/practical_skills01/

Исходник рабочего процесса из видео: https://artemdzyuba.notion.site/Notion-Google-1788cccde0d24415b0f49b4df275fe8a

Основной канал — в телеграме: https://t.me/practicalskills

Видео с установкой n8n:  https://www.youtube.com/watch?v=w3ysUTJoRJ4

Таймкоды:
00:00 Начало
01:28 Телеграм-бот и его учетные данные
17:49 Гугл-календарь
20:08 Гугл-почта
26:50 Notion
30:42 Гугл-таблицы
45:50 Гугл-диск

Наши социальные сети:
Facebook: https://www.facebook.com/PracticalSkillsSchool
ВКонтакте: https://vk.com/practicalskillsschool

## Содержание

### [0:00](https://www.youtube.com/watch?v=xP_YiBn1ITc) Начало

в одном из недавних видео я показал Telegram Бота которого собрал сам без программирования он умеет отправлять тексты картинки в notion Google календарь Google почту Google Диск и Google Таблица в этом видео как и обещал Я построю этого Бота Шаг за шагом и научу вас вы можете легко повторить мои действия с нуля или использовать уже готовый сценарий скачав его по ссылке в описании если вам понравится то что вы здесь увидите вы сможете научиться этому на моих курсах водном и основном ссылки Я оставил в описании есть Три разных способа начать работать с ней проще всего зарегистрироваться в их облачном сервисе nitem. cloud и во время тестового периода который сейчас составляет 30 дней попробовать собрать какие-то свои рабочие процессы второй вариант который лично Я рекомендую больше всего запустить nation на своём сервере такое решение называется salhost то есть хостинг у себя Это совершенно несложно Если Вы посмотрите мой ролик об остановке ссылка на него также будет в описании вы сможете завести себе такое мини Облако которое будет онлайн 24/7 и платить придётся только за хостинг и домен А это совсем недорого и наконец есть ещё десктопное приложение но я не стану его рекомендовать на данный момент оно может выдавать ошибки и подвисать так что лучше начать с облачной или сел в хостверсии Итак заведём учётные данные

### [1:28](https://www.youtube.com/watch?v=xP_YiBn1ITc&t=88s) Телеграм-бот и его учетные данные

для нашего телеграм-бота но перед этим создадим самого Telegram Бота переходим в Telegram и ищем специального Бота вот файзер у меня он уже есть в списке вот так вот он находится и с помощью этого Бота Давайте создадим себе нового идём в меню newbot задаём ему какой-нибудь имя любое Артём с newbot теперь нас просят завести ему уникальный username он обязательно должен заканчиваться на слово бот в конце давайте я заведу такой простое имя Артем сегодняшняя дата 17. 02. 202 и в конце бот Enter Отлично всё у нас уже есть личный бот мы копируем его секретный epi ключ далее переходим к самому бота запускаем диалог с ним Ну и Давайте его ещё закрепим Вот такой вот у нас получился бот А мы можем перейти обратно и завести учётные данные для него идём в ключ New находим здесь Telegram здесь можно как-нибудь задать по умолчанию там Telegram аккаунт можете так и оставить если у вас один аккаунт Я например назову Telegram API и вставляем наш токен то есть наш ключ жмём Save и видим вот это вот зелёное сообщение Это означает что мы Великолепный ключ всё в порядке соединения будет установлено оно уже установлено закрываем И теперь мы можем создать нашего telegram-бота уже в нейтен ищем здесь Telegram и выбираем Trigger этот узел будет ловить сигналы от нашего бота здесь указываем наши credancials то есть учётные данные мы сейчас завели телеграмма API А здесь выбираем на Какие действия наш telegram-бот будет реагировать если выберем звёздочку то это будут все действия но я выберу только message то есть сообщение Теперь если я запущу этот узел мой telegram-бот будет ожидать от меня каких-нибудь действий и я могу написать например Привет видите в наш узел Пришли данные вот так вот они выглядят ещё раз закроем снаружи это выглядит вот так получен получено одна единица данных галочка что всё корректно отработано а сами данные можно посмотреть вот в этом узле у нас здесь интересует лишь несколько данных а именно текст то что было в сообщении дата оно указана здесь в миллисекундах и ID во-первых ID отправителя вот здесь а во-вторых ID чатов в котором всё происходило эти данные могут не совпадать если например вы с Ботом общались где-то внутри группы Обратите внимание если я сейчас отправлю в Бота картинку то у нас данные будут совсем другие вот я запускаю наш бот он в режиме ожидания находится и теперь уже давайте я отправлю в него картинку видите данных уже достаточно много в частности вот это вот информация по картинке а текст находится уже не в слове текст а в слове Caption то есть подпись эту разницу нам придётся учитывать в дальнейшем пока же мы будем строить нашего Бота для текстовых сообщений без картинок еще пара слов о том как работают триггеры бывают разной природы некоторые Когда вы запускаете такие вот как телеграмм или как webhuk они будут находиться в режиме ожидания и ждать так 2 минуты каких-нибудь входящих данных которые вы отправите в них по истечении двух минут этот режим ожидания пропадет то есть вот он сейчас находится Я иду пишу Привет отправляю и узел как раз срабатывает другие триггеры например Давайте календарь покажу вам от Google календарь Триггер работает немного по-другому Когда вы его запускаете в тестовом режиме то есть принудительно жмете execute workflow или execute Note то он не будет ждать каких-то данных которые должны в него прийти А Он возьмёт посмотрит на событие кто уже которые уже происходили и возьмёт одно из них и поместит эти данные в себя то есть вот такая разная природа триггеров Вейн вообще когда вы работаете в intern ваш рабочий процесс может запуститься двумя разными способами один - это принудительный Когда вы жмёте на exect workflow Или например на экзотикют ноут то есть запуск одного узла тогда ваш процесс оказывается в неком таком тестовом режиме вы его отлаживаете а можете видеть все данные которые бегают и по ним настраивают рабочий процесс но зато эти данные не попадут эти выполнения не попадут вот в этот список э исполняемых рабочих процессов как только вы решите что ваш рабочий процесс уже готов его можно запускать в бой в продакшн вы активируете вот здесь рабочий процесс и он начинает работать в автоматическом режиме то есть уже тогда Все что вы будете отправлять него будет обрабатываться вы не увидите как данные будут бегать зато все выполнения уже попадут вот в этот список выполнений Ну пока деактивируем наш рабочий процесс Итак давайте научим нашего Бота разговаривать С незнакомцами То есть я не хочу чтобы мой бот производил какие-то операции если к нему обращается Чужак человек не с моим ID проверить мы это сможем с помощью узла If нажимаю например сюда и пишу их вот Обратите внимание как это выглядит такой вот узел условия я сразу переименую узел рекомендую это делать для всех промежуточных узлов потому что вам может понадобиться обращаться к этим узлам в дальнейшем по списку и говорящее имя очень Вам сильно сэкономит время Поэтому я просто напишу их ми кстати Давайте сразу назовём и рабочий процесс как-нибудь тоже чтобы не забыть снимаем workflow допустим Telegram пусть будет and Old и все Итак мы хотим здесь проверить Действительно ли человек отправивший сообщение в Бота является мной это проще всего сделать и пожалуй единственное правильный способ Это проверка по ID номеру один номер у нас находится во-первых вот здесь вот он во-вторых вот здесь Но это ID отправителя А это ID чата где было отправлено сообщение Ну поскольку у нас сейчас личное общение с Ботом то это чат именно мой личный Итак давайте зададим условие которое будет проверять условия задаются вот здесь а здесь указывается сколько условий должно выполниться какое-нибудь одно или все All означает все any - это одно через эту кнопку добавим условие их может быть несколько разных типов мы зададим числовое условие поскольку ID у нас в виде номера смотрите здесь у нас указано вылью один в котором мы должны сравнить с V2 вот один как правило мы указываем какой-нибудь динамическое выражение а были два можем как раз указать статическое здесь у нас указан ноль мы его сразу удалим и добавляем через эти шестерёнки выражения то есть динамические данные здесь почему-то у нас опять стоит ноль удаляем и Теперь смотрите данные которые могут использовать узлы ноушен они прибывают в двух видах это текущий узел и просто узлы так вот в текущем узле мы как раз можем найти данные которые приходят к нам по стрелочке непосредственно из предыдущего узла в цепочке как правило в узел приходят лишь одна Стрелка и только в отдельных случаях в узел может приходить две или даже более стрелок Итак мы выбираем здесь Input Data Jones и дальше мы доходим ты здесь нам надо указать ID вот так вот мы указали ID про вот эти вот узлы исходящих данных мы поговорим позже у нас ближе к концу этого туториала будет Как раз раздел Где нам придется воспользоваться вот этим списком всех узлов пока что можем посмотреть что их здесь очень мало Итак мы скопировали HD Здесь нам надо установить qual равный А сюда мы как раз впечатаем Мой ID и поэтому здесь будут проверка здесь берётся ID написавшего и сравнивается на равенства с моим ID я запускаю этот узел и вот мы видим наверху У нас два возможных аутпута то есть выхода есть тот который идёт на True истина то есть вверх и есть который идёт вниз на false То есть сейчас идёт как раз Натру потому что это действительно я написал в бота Теперь давайте сделаем что-нибудь чтобы остановить выполнение процессов в случае если написал Чужак проверка у нас идёт по верхнему уровню сейчас потому что это я всё-таки пишу поэтому пока что давайте мы известного узла сделаем вот такой выход и напишем Telegram найдём обычный регулярный узел Telegram Здесь нам надо опять указать нашу учётные данные message мы оставляем то есть будем работать с сообщениями действия это отправится сообщение и здесь нам нужно указать какой чат кидать это самое сообщение Правильно указать чат ID потому что в моём случае в принципе чат ID From ID а не совпадают но здесь всё-таки видимо идеи направлена В каком чате с Ботом взаимодействовали в тот чат и кинуть а здесь пишем текст например вы не можете пользоваться этим Ботом Давайте запустим и вот как раз приходит сообщение что вы не можете пользоваться этим Ботом То есть если мы сейчас просто запустим процесс и попробуем что-то кинуть год в бота то бот нам сразу заявляет вот такое Это потому что у нас это действие подключено к вертному выходу правильному для нас сейчас мы его подключим к нижнему и Забудем про него теперь Давайте займёмся как раз верхним выходом перед тем как создавать всякие события в календарях и письма и так далее нам нужно немножко поработать над датой потому что дата У нас сейчас в виде миллисекунд дату можно преобразить с помощью узла Date and Time этот узел выполняет две функции он либо переформатирует дату в нужном формате либо вычисляет новую дату на основе имеющейся мы оставляем формат edate и Давайте сразу здесь поменяем название на формат Date жмем Enter или галочку не забываем потому что иначе у нас название не сохранится видите не сохранилось формат и теперь нам надо указать value то есть принимаемые значения даты выражение и мы принимаем конечно же из предыдущего узла Ту самую дейт Вот это значение миллисекундах дальше у нас идет название свойства которое будет создано здесь написано Data Но вообще вы nintenn обычно под этим словом подразумевается кое-что другое именно бинарные данные то есть где лежат там ваши картинки а я назову это дэйта а теперь если я запущу то ко всем имеющимся данным у нас добавится ещё вот такая вот величина Data в виде даты честно говоря для моих нужд это Маловато и я предпочитаю другой формат записи поэтому мы Конечно можем Тут повыбирать какие-то ещё форматы но я лучше задам формат сам я жму Вот это переключатель И теперь я могу сам завести нужно формат в котором Будут ещё и часы минуты и секунды четыре игры обозначают год MM обозначает месяц если большими набраны означает день дальше пробел и H крупными это часы А в 24 часовом формате мало ли буквами набрали то в 12:00 дальше MM мало это минуты и вот теперь давайте запустим и посмотрим мы видим вот здесь такие данные здесь указано 17 часов 37 минут на самом деле это время отстаёт на 3 часа от моего То есть можно догадаться что здесь время выставлено универсальное UFC и мой часовой пояс который прописан в ней тем Почему ты не учтён когда эти данные дадут до узла Google календаря он корректно всё поймёт и прибавит сам нужный часовой пояс так что не надо здесь ничего подстраивать а немножко дальше нам всё-таки придётся именно вот на этом этапе переопределить дату и учесть часовой пояс пока что мы этого дела здесь не будем оставим -3 часа универсальное время Отлично вот наш данные путешествуем дальше вы видите Теперь мы добавляем ещё один узел Data in Time чтобы задать начало нашего мероприятия здесь мы выбираем уже calcolate найти назовём здесь старт укажем входящие данные Вот она Date далее добавить Ну пусть у нас мероприятие начинается через сутки and один И дэйс мы оставим здесь есть разные варианты свойства назовём старт запускаем и вот у нас появляется такое свойство Теперь давайте продублируем этот узел назовём его Date and и нам надо здесь поменять во-первых входящую дату поскольку мы уже отстраиваемся от начала мероприятия нам нужно выбрать ноут Data gson и здесь старт и теперь надо добавить два часа ровно столько будет длиться наше мероприятие здесь мы конечно зовем and Всё эти данные появились Теперь наконец

### [17:49](https://www.youtube.com/watch?v=xP_YiBn1ITc&t=1069s) Гугл-календарь

мы можем завести события в Google календаре пишем календарь чтобы найти регулярный узел Google календарь не Триггер находим выбираем указываем наши учётные данные события создать выбираем календарь и дальше нам нас просят установить начало и конец мероприятия можно выбрать статичные какие-то данные Но на самом деле нас интересует конечно динамище динамические данные которые пришли из предыдущих узлов выбираем здесь старт а здесь выбираем End Кроме этого нас ещё интересует название мероприятия название описание цвет Всё это находится вот в этом поле edfield собственно название находится вот здесь в Самаре сюда мы вкладываем текст который пришёл к нам от Telegram триера вот это вот слово и теперь если мы запустим Кстати мы можем Давайте еще цвет какой-нибудь description нам не надо Давайте цвет мы допустим вот такой выберем Теперь мы запускаем узел и смотрим Что произошло видите через сутки от нынешней даты появилось мероприятие Привет Не оно идёт 2 часа и всё строго в моём часовом поясе то есть с узлом Google календарь мы достаточно быстро разобрались хотите можем ещё попробовать с другим цветом Но это иногда обновлять чтобы мероприятие появилось вот оно Ну ведь это тот самый цвет отлично идём дальше И теперь давайте

### [20:08](https://www.youtube.com/watch?v=xP_YiBn1ITc&t=1208s) Гугл-почта

научимся отправлять письма с данными из телеграма письма будем отправлять из Google почты они будут приходить мне на Яндекс. Почту ищем здесь узел Gmail Обратите внимание здесь мы уже можем выбирать какой тип аутентификации использовать но нас всегда будет интересовать стул здесь он стоит по умолчанию поэтому мы просто здесь выбираем Gmail аккаунт один из выбираем учётных данных которые у вас есть для Google почта и идём дальше ресурс нас интересует нет драфт а message операция нас интересует Send Всё верно и теперь нам надо написать тему письма мы Давайте зададим так будет написано тема двоеточие и дальше текст нашего сообщения в телеграме сначала словами пишем тема двоеточие и потом и потом мы просто выбираем из входящих данных сообщения вот так будет выглядеть заголовок письма а что будет в самом сообщении в самом письме Ну давайте просто статический текст здесь выберем у меня уже тут записан типа вам отправлено письмо если было то если была картинка то она попадёт в атачмент Всё Давайте попробуем запустить Так у нас ошибка не найден адрес получателя да на самом деле всё просто мы не указали кому отправляем письмо добавляем вот по этой кнопке свой адрес он конечно тоже может быть динамическим если в узел пришло например 10 данных с почтовыми адресами то конечно будет сделана рассылка по 10 адресам но здесь у нас приходит только одни данные Так что рассылка будет сделана один раз я ввел свою почту Давайте запустим еще раз Мы видим что здесь написано Send то есть отправлено поэтому сюда в мою почту сейчас скоро должны упасть должно упасть письмо Ну это не мгновенно происходит но спустя там несколько секунд Вот видите Все пришло всё как надо Всё как написано работает в ожидаемом режиме так хорошо теперь у нас стоит задача поместить данный о сообщении в таблице во-первых в Google таблицу А во-вторых в ноушен таблицу Давайте посмотрим С какими данными мы будем работать перейдём во-первых в Google таблицу здесь у нас есть дата Обратите внимание что она сразу у неё есть особый тип дата и время потом есть сообщение и ссылка на изображение здесь будет здесь же в ноушен у нас просто текст сообщения дата будет выставляться автоматически Ну и также есть ссылка на изображение значит возвращаемся в наши niten и мы понимаем что нужно подготовить дату Вот для этого столбца потому что здесь дата должна быть с учётом часового пояса А значит нам надо сначала адаптировать нашу дату мы можем просто здесь создать ещё один узел datan Time но я на самом деле просто скопирую этот узел потому что нам очень мало что нужно поменять ним так соединяю здесь я напишу название Давайте Set Times Zone то есть установка часового пояса и здесь я установлю вот такую опцию смотрите здесь нас интересует Из какого часового пояса и в какой часовой пояс я вот выбираю из и здесь автоматически по умолчанию восстанавливаются универсальное время сейчас если я запущу то время как раз старта то есть наоборот дата будет уже с учётом моего часового пояса видите 20 часов Это действительно верно потому что используют мочевой пояс указанный в настройках вот здесь внв точка NV файл Но если допустим вы хотите указать какой-то другой часовой пояс не Ваш локальный а какой-то другой вы просто добавляете сюда ту тайм-зонд и он будет смотреть на разницу этих двух часовых поясов то есть смотрите здесь два одинаковых поэтому сейчас будет 17 часов вот здесь если я например Здесь добавлю не UTC Berlin то будет 18 часов потому что там разница 1 час видите 18 Ну я буду просто опираться на свои системные данные с записью часового пояса поэтому у меня будет 20 часов кстати Обратите внимание Вот мой бот работает очень Шустро Вы когда будете запускать своего Бота возможно увидите что он работает знаете там полсекунды секунды Ну то есть не так быстро как вы привыкли в работе с Telegram ботами это не бак а фича Дело в том что у niten есть два режима работы и по умолчанию у него Стоит немножко медленный Но более стабильный то есть рассчитанные на большие нагрузки очереди и так далее Вы можете добавить одну строчку как у меня я вам покажу сейчас файле докер там это есть такая строчка в разделе инвайромент которая говорит exection process Main вот если этой строчки не будет то она будет в другом режиме в более устойчивом но который чуть-чуть с большим временем обрабатывается Если же у вас не так много операций и каких-то бутылочных горлышек не ожидается то вы можете просто поставить Main и не думать об этом и наслаждаться быстрой работой ваших процессов в том числе и ботов отлично Итак время мы подготовили и

### [26:50](https://www.youtube.com/watch?v=xP_YiBn1ITc&t=1610s) Notion

теперь именно на этом этапе Я предпочту закинуть данные в ноушен потом вы увидите Почему я делаю Это на этом этапе мы будем этот процесс немножко размножать когда дойдём до Google диска сейчас же мы добавим узел Motion регулярный опять же не триггер вот выберем здесь учетные данные ресурс Выбери мне page а не страницу просто страницу базы данных и создать по умолчанию здесь стоит дальше нам нужно выбрать нашу базу данных вот я убираю сообщение Вот это поле в данном случае когда вы работаете со страницами базы данных можно игнорировать оно ни на что не влияет Вот этот значок означает что когда вы всё провернете у вас здесь будет отклик от ноушен он будет в простом виде то есть такая плоская структура Если вы отщёлкните его то вам придёт такая достаточно вложенная система - Это стандартный ответ API notion он может быть достаточно такой витиеватый и непонятный Не так легко читаем и поэтому оставляйте просто simplify но тут есть маленький нюанс что в упрощённом режиме пока что он работает для некириллических для латиницы потому что там кириллические символы он терял возможно этот баг пофиксили я его репортил но Поэтому если вы используете э упрощённые показ полей обязательно Убедитесь что здесь будет корректно отображение кириллических э свойств иначе лучше использовать тогда обычные варианты Итак Мы двигаемся дальше и добавляем здесь одно свойство это сообщение Как вы помните дата будет проставлена Аналогично автоматически всё как обычно Я просто Вставляю входящие данные и запускаю этот узел смотрю что происходит вот всё появилось всё очень просто а вот для Google таблицы нужно немножечко наши данные настроить а именно назвать их ровно теми самыми названиями которыми они названы в самой таблице то есть Для этого нам пригодится узел либо ремень либо сет Я лучше буду использовать Set потому что опять же нам его более широкое функциональность пригодится чуть позже смотрите давайте взглянем у нас здесь есть дата и есть сообщение изображение пока трогать не будем поскольку у нас еще нет изображения то есть Нам нужно аккуратно скопировать название свойства даты потом свойства изображения и потом свойств сообщения поэтому мы добавляем строковую строковые свойства и называем его дата сюда кладём конечно же дату которая пришла из предыдущего узла это дейт Теперь мы создаём ещё одну строковое свойство сообщение и сюда кладём опять же содержимое текстового поля Давайте запустим Всё отработалось у нас теперь есть много самых разных свойств честно говоря это можно в принципе дальше не тащить Поэтому нам пригодится вот такой вот здесь переключатель Он сохраняет только те свойства которые мы ввели в этом узле и теперь всё намного проще отлично

### [30:42](https://www.youtube.com/watch?v=xP_YiBn1ITc&t=1842s) Гугл-таблицы

Давайте теперь мы наконец закинем наши данные в Google таблицу пишем sheets и быстренько настроим Обратите внимание здесь по умолчанию вот если вы сюда кнёте ничего не увидите потому что по умолчанию стоит тип аутентификации сервисный аккаунт Нам нужен дальше ресурс нас интересует щит то есть лист а не набор листов операция не прочитать а apend добавить дальше здесь нужно указать ID нашего листа точнее один нашей таблице всего этого файла она находится вот здесь между разделами ID слэш и Слэш Edit это мы аккуратненько выделяем всё вот это вот Ну конечно можете выделить двойным щелчком Но если там будут какие-то особые символы они вполне могут быть то выделиться не весь ID вставляем его сюда отлично А дальше у нас диапазон от А до F то есть на какие Столбцы смотреть чтобы поместить данные в принципе у нас здесь всего три столбца от А до C Но ничего страшного что мы смотрим немного шире это нам не повредит гораздо хуже было бы если бы сузили диапазон и смотрели например вот ада а или ада до б тогда бы некоторые данные просто не закачались и наконец вот такое свойство kirol это на какой строчке находится название наших колонок они находятся на первой строчке здесь Но для инейтен - это нулевая строчка запускаем видите все отлично получилось здесь дата А здесь ваше сообщение теперь отмечу пару нюансов во-первых мы здесь скопировали как вы видите в первый лист А что если вам нужно скопировать на какой-нибудь другой лист тогда вы просто берёте название этого листа копируйте его и вставляете в диапазон вот здесь и с восклицательным знаком То есть как будто вы цитируете форму он цитируете ячейку в самом Google Щит и тогда если вы сейчас запустите то ваши данные появятся уже на этом листе видите Ну давайте вернемся на первый лист здесь Мы удалим и второй важный нюанс Обратите внимание у нас весь столбец помечен типом дата datan Time то есть по-хорошему вот это вот должно быть датой Но на самом деле она сейчас выглядит строковой переменной Ну то есть строго выглядит текстом Как с датой с ней здесь работать нельзя Если я вот возьму сейчас И опять на сильном назначу здесь тип дата то вот это переменная Вот это выражение станет датой если я нажму то у нас появится здесь календарь но если я снова запущу наш рабочий процесс здесь появится снова запись и она опять будет текстом почему так происходит потому что nintend по умолчанию помещает данные как бы сырые не адаптированные к пользовательским настройкам и если вы хотите адаптировать для пользовательских настроек то надо добавить специальную опцию Вот здесь она одна пока что value input и вместо ru то есть сырого вида указать пользовательский И вот теперь Если вы запустите ваш узел это новые данные Уже придут в пользовательском режиме то есть приходит текстовая строка и она будет смотреть на тип ячейки который стоит если ячейка например числовая и пришли числа то соответственно в эксель в Google таблицу будут помещено уже число то же самое с датой если тип дата стоит вот пришла дата то она будет в таком виде причём видите даже не важно что у нас запись числа была Немножко по-другому там с дефисами Это совершенно не важно вот так у нас выглядела дата она всё равно будет корректно записана в нашу таблицу Ну так что вы можете здесь настроить свой тип как хотите и это будет корректно перетащена в Google chits а мы идем дальше пока что это был процесс отладки Бота То есть она даже еще не работает в автоматическом режиме чтобы он начал работу нам надо его активировать Я удалил данные которые циркулировали по нему это ничего не означает для дальнейшей работы просто чтобы освободить немножко визуального пространства и теперь я активирую нашего бота возникает Вот такая вот табличка Я говорю Да я понял и всё наш бот находится в боевом на боевом дежурстве Теперь мы можем его так сказать заставить работать обрабатывать наши текстовые сообщения давайте что-нибудь ему прикажем я напишу покормить кота например ну покормить собаку и смотрим появилось событие в Google календаре пришло письмо неожиданно быстро обычно С небольшой задержкой Вот появилась запись покормить собаку И в ноушен тоже появилась запись то есть наш бот как минимум с текстовыми сообщениями уже работает отлично переходим к работе с картинками там наш бот немножко усложнится К сожалению во-первых Давайте просто пока потушим эти узлы то есть поставим их на паузу чтобы нас наши Google там чтобы наши службы не обрабатывали наши тестовые запросы и отправим У нашего Бота он может находиться в активном режиме То есть когда мы запускаем exe exect workflow мы всё равно переходим в тестовый режим ну давайте я его всё равно Уберусь сейчас мы запускаем тестовый запрос и передаём сюда картинку Обратите внимание картинка может быть сжатая может быть не сжатая это имеет свою разницу Я просто напишу там книга например и пока что будем работать со сжатой картинкой жму Send наши данные получены и теперь мы видим вот такую вот простыню данных здесь у нас вот в разделе фото четыре варианта изображения нашей фотографии здесь я остановлюсь немножко поподробнее Когда вы отправляете фотографии в Telegram сжатом виде то она приходит в Telegram сразу в нескольких вариантах конкретно сейчас я показываю на самый большой вариант - это 1. 280 пикселей по длинной стороне на серверах Telegram ваши сжатое изображение будет храниться в четырёх видах от самого маленького до самого большого 1. 280 по длинной стороне которая будет загружена по вашему запросу чтобы загрузить файл вам надо нажать на эту кнопку и выбрать download имиджес файлс и жмём вот эту галочку мы сейчас запустим этот узел снова и просто перешлём наше сообщение кинем опять же в нашего бота и Теперь смотрите у нас все то же самое но здесь появилась дополнительная вкладка binary это как раз информация о нашей картинке это эти данные называются Data здесь а посмотреть на картинку или файл можно вот здесь это может быть и видео epdf и что угодно какой угодно файл Вот это первый нюанс второе важное на что я уже обращал Внимание это то что текст у нас уже находится в поле не текст аcaption то есть подпись картинки это важно из-за разница в этом наименовании У нас многие вещи сейчас поломаются но не критично Итак смотрите если мы откроем наш узел google-календарь то он будет выглядеть следующим образом с датами всё в порядке с датами ничего не изменилось но вот текст заголовка он пропал Мы открываем видим здесь красное Почему красное потому что этого свойства у нас нет больше нет здесь написано текст а нам нужен Вы можете просто поместить курсор справа от этого выражения и здесь найти уже слово Caption и вот здесь вы увидите что всё пишется как надо Обратите внимание здесь ещё появилась папка binary эта информация о нашем загруженном файле пока она нам не нужна она потом пригодится вот сейчас мы закрываем и видим что здесь появилась книга то есть в зависимости от того будет у нас просто текст или будет фотография у нас будет активно то или иное выражение а второе не будет считаться ошибкой то есть наш рабочий процесс не будет обрываться из-за ошибки Это очень хорошо Теперь если я сейчас давайте запущу этот процесс точнее узел у нас появилось вот книга то самое мероприятие супер идём дальше и смотрим на почту в почте Мы видим что пропала тема пропала по той же самой причине Обратите внимание что вы можете не только Выбирать из левого меню А можете руками внести исправления то есть Мы помним что там называется Caption и Нам надо просто слово текст здесь заменить на слово Caption Мы видим что здесь появилась книга точно так же это мы закроем мы видим тема книга далее У нас же теперь есть картинка и мы можем ею воспользоваться в виде тачта поэтому добавим вот здесь оттачиваются нам нужно указать свойства бинарных данных оно у нас называется Data Теперь мы запускаем этот узел видим что всё отправлено как надо И сейчас к нам приходит письмо за таджментом который мы можем посмотреть скачать и еще как-либо использовать видим что всё отработано корректно Идем дальше дальше у нас нам надо поработать как раз таки с ссылкой то есть сложить нашу картинку на Google Диск и отправить эту ссылку в наши таблицы но здесь есть как раз нюанс мы не можем просто так вставить куда-то Google Диск посередине и мол попытаться с ним как-то работать Потому что если в сообщений не будет картинки то Google Диск Тогда просто сломает там весь процесс и выдаст ошибку нам нужно знать если в наших данных картинка и Если есть то идти по пути где есть Google Диск А если картинки нет то и вот по этому пути Поэтому нам здесь надо посередине установить логический узел всё тот же Иф Давайте мы его установим назовём его имидж вот он здесь появился и он нас будет Как раз осуществлять такую развилку пока что берем эти связи этот узел должен нам сказать если это свойство а именно свойства Caption это можно сделать разными способами но я предпочитаю такой небольшой трюк из языка программирования JavaScript буквально одно слово нам надо добавить логическое свойство здесь логические условия и вместо первого пункта вылью один надо добавить выражение мы будем составлять из свойства Caption то есть нам надо дойти до свойства Caption например и то что находится в квадратных скобках именно квадратные скобки и Caption нам надо удалить видите внизу появилась Вот такая простынка разных данных это объект message потому что месячные у нас был на уровне выше теперь нам надо поставить точку и написать has с маленькой буквы потом поставить круглые скобки открывающие закрывающие перевести курсор во внутрь этих скобок между этими скобками поставить двойные кавычки и вот внутри этих кавычек начать печатать слово Caption пока что видите у нас написано в false внутри но по мере того как я закончу печатать слово Caption оно исправится на True то есть что говорится он смотрит на объект message вот этот набор всяких данных а метод Property спрашивает А есть ли у тебя такой вот свойство под названием и говорит Да есть действительно отлично дальше нам нужно посмотреть на условия Здесь оно equal то есть то что нам надо и нам нужно чтобы это условие если мы хотим идти в Верхний выход чтобы оно равнялось истине поэтому мы жмём на этот переключатель Вот запускаем и мы видим что действительно верхний выход True отправились наши данные а Фолс fulls пустует Вот теперь мы Нижний выход Когда у нас нету свойства Caption То есть у нас просто текстовое сообщение мы Соединяем с нашей уже готовой конструкцией а вот наверху как раз настало время для Google диска мы знаем что здесь есть свойства Caption поэтому на него можно ссылаться и ошибки уже не будет пишем Drive нам опять же нужен не Триггер а регулярный узел и здесь снова Обратите внимание selectridentials у нас будет пустым поскольку Скорее всего вы также не используете сервисный аккаунт как и я А он здесь стоит по умолчанию выбираем All stu и здесь уже готовый учётные данные дальше ресурс нас интересует файл действительно оплот всё так и данные он берёт из бинарных данных поэтому мы ставим здесь галочку и указываем Data Отлично вот здесь вот Будут наши э-э использовать вот эти данные бинарные которые тоже путешествовали по узлам будет загружена

### [45:50](https://www.youtube.com/watch?v=xP_YiBn1ITc&t=2750s) Гугл-диск

на нашей картинка теперь нам надо составить имя файла То есть как именно файл будет выглядеть вот здесь с каким именем Давайте составим его из сообщений и расширения картинки которая была загружена мы Составляем здесь выражение здесь мы берём сообщение Caption здесь ставим точку и дальше указываем уже в папке баннере указываем вот этот вот ресурс файл extension всё книга. gpg и еще перед тем как запускать нам нужно указать в какой именно папке должен появиться этот файл вот он появится в корневой папке для этого мы кликаем вот на эту кнопку здесь появляется поле и Нам надо просто взять ID нашей папки ID находится в самом конце вот здесь копирую Вставляю и запускаю узел видите у нас здесь появились полностью новые данные а файл закачался на нашу папку супер то что надо вот этот ID нам пригодится дальше это ID созданного файла Давайте сохраним теперь по-хорошему нам надо после этого файла после этого диска проделать всё то что мы проделали здесь только добавить ещё свойства с ссылкой на изображение Control V я сейчас просто выделил их рамкой и скопировал и вставил но бывает что в энэйтене - это операция почему-то недоступна Тогда просто сохранитесь и обновите страничку и тогда вы сможете И выделить и сделать Control V смотрите здесь сразу скажу что ссылку на изображение мы будем задавать вот здесь вот в этом узле поэтому сюда нам сложить эту ещё не созданную ссылку не получится поэтому я сразу Перенесу вот этот ноушен подальше всё отлично Давайте Теперь попробуем Запустить вот этот узел с этой тайм-зон один посмотреть что получится можете видеть что здесь нет никакого вылью и почему потому что в этом узле использовались данные которые приходили в него из предыдущего узла вот Карен ноут и поскольку у нас Google Диск создал новый файл и создал вот эти Новые данные вот они то все нужные нам данные с текстом например так далее они уже не проходят и теперь нам нужно вот эти данные брать не из предыдущего узла вот Карен ноут а брать из как исходящие данные из узла то есть мы удаляем Вот это выражение и уже идём вот в этот вот список всех наших узлов и вот здесь важно чтобы ваши узлы были названы как-то говорящими именами во всяком случае промежуточные узлы на которые вы будете ссылаться в данном случае мне достаточно например выбрать Telegram output Data здесь видите уже не Input Data output исходящие данные и дойти здесь до даты Теперь если я запущу то у нас всё корректно отрабатывается всё нормально К данным из Google Drive добавились данные по дате то же самое в сет дата-то уже передаётся А вот сообщение оно потерялось по пути оно споткнулось узел Google диска Поэтому нам здесь тоже надо ввести уже новую формулу и воспользуемся снова узлом telegram-трингерсон message и Caption Вот и Кроме этого нам ещё надо создать ссылку на файл который находится на Google диске Это ссылка создаётся с помощью специальной процедуры во-первых Я добавляю новое свойство называю его как у нас называется здесь изображение И как я формирую ссылку Я открываю пять выражение здесь у меня уже сохранена специальная добавочка такой префикс пишу Вот так и после знака равно мне надо указать ID созданного файла а он находится как раз во входящих данных Видите вот этот вот ID Вот она ссылка запускаю этот сет вот так у нас выглядит набор наших свойств И теперь наконец-таки я могу Без особых подготовлений сразу запустить и узел Google щитс Давайте запустим посмотрим что произойдёт Вот так вот она наша ссылка на изображение я навожу и могу сразу видеть по предпросмотру наш файл Если я например нажму на него я попаду сразу на файл кстати можно было сделать эту ссылку и другую чтобы я попал на просмотрщик Google мне не очень нравится просмотрщик Google Поэтому я решил сделать ссылку которая будет вести сразу на файл отлично это отработано корректно У нас остался последний узел а именно здесь на самом деле всё просто мне во-первых нужно здесь опять же поменять входящие данные То есть я опираюсь на узел сет иду сюда Input Data gson сообщение процесс немного подтормаживает потому что я его случайно запустил нажав на кнопку осталось завести ещё одно поле которое будет содержать ссылку на изображение эту ссылку мы получим как входящие данные из предыдущего узла изображение Обратите внимание видите после proпорте здесь ничего не стоит это как раз означает что они еще не пофиксили с кириллицей Поэтому если хотите такого избежать то можно например нажать сюда Я вот сейчас запущу это дело всё видите такой вот длинный ответ получается но зато проблем не будет скорее с кодировкой иду сюда и вижу что у меня появилась вот такой вот сообщение книга полностью ссылка на файл Ну и наша дата Теперь давайте запустим наш Telegram бот уже полностью боевом режиме активируем посмотрим как он будет справляться без нашей помощи сейчас здесь не надо вот это вот так так и так наш бот активен мы создаём новое сообщение и допустим напишем купить эту книгу создалось мероприятие прилетело письмо купить эту книгу с картинкой в Google таблице также появилась строчка в notion точно также появилась строчка со ссылкой на изображение и конечно же в Google диске у нас все здесь появляется все оно лежит вот так вот и строится этот телеграм-бот Может конечно показаться что он такой громоздкий строить его долго Но на самом деле вам во-первых вряд ли понадобится кидать сразу по всем службам и как вы можете видеть э соединить Telegram бот с какой-то одной службы это дело там пяти- десяти может быть 15 минут и всё Вы можете наслаждаться такой вот полной связкой Конечно я продемонстрировал только очень простые вещи э которые можно делать с помощью телеграма и сервиса intern если вам интересно узнать больше проходите По ссылкам на мои курсы на вводный и основной занимаетесь строите свои рабочие процессы комментируйте эти видео Мне будет очень интересно почитать ваши комментарии ну и увидимся в следующих видео

---
*Источник: https://ekstraktznaniy.ru/video/15290*