бот день рождения телеграмм
Как отслеживать дни рождения коллег в Telegram
Если в вашем коллективе принято отмечать дни рождения или хотя бы поздравлять друг друга, то этот новый бот для вас. Он работает в групповых чатах и помогает отслеживать дни рождения участников группы.
С Собирапом вы не пропустите день рождения коллеги, близкого человека или друга, а усилий на настройку вообще не потребуется. Вот, как он работает.
Запуск и добавления бота
1. Создайте групповой чат «Наши дни рождения» или выберите существующий чат, где нужно отслеживать дни рождения.
2. Перейдите к боту по этой ссылке и запустите его, нажав «Начать».
3. Воспользуйтесь ссылкой для добавления бота в группу. Кликнув по ней, выберите групповой чат.
Добавить бота можно и вручную — тем же способом, как когда добавляете людей в чат.
Активация бота
Чтобы бот заработал, он должен узнать даты рождения участников группы. Поэтому после добавления в группу он предложит всем это сделать, указав уникальную ссылку для активации.
После перехода по ссылке откроется приватный чат с ботом где нужно будет нажать «Начать». Далее Собирап задаст несколько вопросов для определения даты рождения и временной зоны. Только зная временную зону он сможет вовремя отправлять напоминания и поздравления.
Также бот попросит email-адрес, чтобы подтвердить активацию. В результате, пользователь получит сообщение об успешной активации, а в групповой чат поступит сообщение о новой дате в календаре дней рождения.
Функции бота
С участниками чата, чьи дни рождения внесены в календарь, будет происходить следующее:
1) Бот, в тайне от именинников, будет напоминать о приближающихся днях рождения — сначала за несколько дней и затем еще раз, за один день. Это будет происходить в приватном чате с ботом.
2) В день рождения Собирап оригинально поздравит именинника в групповом чате. Это случится в 9 утра по часовой зоне именинника.
Таким образом, участники чата не только не пропустят дни рождения друг друга, но и успеют заблаговременно подготовить сюрприз имениннику.
Подписывайтесь на канал Вам Телеграм — актуальные новости, полезные статьи и советы по работе с Telegram.
Квест на день рождения с помощью чат-бота. Часть 1: как придумали и организовали
руководитель направления международного развития
Квест на день рождения с помощью чат-бота в телеграме делали:
А я менеджерила весь процесс.
25 июля у Вовы и Вани Ильиных, основателей Email Soldiers, день рождения, и мы каждый год готовим для них классные подарки. Например, в прошлом году дарили «Монополию Email Soldiers»:
Ещё раньше — картонные копии Вани и Вовы, халаты с надписью «Идеальный».
Хочется радовать ребят и не дарить шаблонные штуки. В 2020 я была поражена крутотой Монополии, позавидовала, что не приложила к ней руку, и решила: в следующий раз я должна принять участие в подготовке подарка. И — следующий раз настал.
От идеи до начала реализации
За месяц до дня Х мы начали обсуждать предполагаемый подарок в девичьем чатике Дискорда. Голосовали за книгу и видеопоздравление, но вдруг возникла идея — а давайте запилим чат-бота!
Вариант небанальный, инновационный — как близнецы и любят. К тому же — можно включить и частицы других подарков: видео и тексты. Чат-бот сразу набрал в два раза больше голосов.
Классный способ совместить приятное с полезным — прокачать достаточно новое для нас направление на весёлой задаче.
Придумали, что это будет квест на день рождения, обсудили общую канву, локации, онлайн- и офлайн-задания. У ребят в жизни много работы, спорта и кутежей — эти темы и решили использовать в квесте.
Этапы квеста в чат-боте
Определились с этапами чат-бота:
Выбор инструмента для создания чат-бота
В качестве инструмента для чат-бота выбрали Chat2Desk. Почему именно этот? По принципу наименьшего сопротивления. Сразу поняли, что настройкой бота будет заниматься менеджер, которому это в новинку (но жутко интересно), а значит, нужен инструмент, который мы уже знаем — тогда сможем получить консультации и помощь внутри команды. На Chat2Desk реализован наш курс для писателей, у нас уже есть аккаунт в этой системе, поэтому выбрали его.
Подробности механики чат-бота
Дальше определились со всеми заданиями, прописали черновые тексты, создали схему-алгоритм.
Важно было расписать всё подробно, чтобы ничего не забыть.
Кусочек схемы-алгоритма в Miro
Дорабатывали схему на ходу: например, когда были готовы тексты, авторы вписали их прямо в карту, и мы с неё переносили всё в бота.
Рабочий процесс создания бота
Менеджмент проекта пал на меня. К задачам подписали ответственных и дедлайны.
Первоначальная таблица задач и ответственных за них сотрудников
Через пару дней количество задач перевалило за 20. Чтобы легче было всё контролировать, я создала доску в Трелло:
Задач оказалось около 25, и это больше, чем мы думали. Повезло, что в команде уже 100+ человек — несложно было найти тех, у кого горят глаза, и распределить задания.
Проблемы и их героические решения
У нас возникли сложности — расскажем, как выкрутились (или не выкрутились):
Например, мы решили начать квест, вручив открытки каждому из братьев. Для этого их надо было задизайнить, отдать в полиграфию, забрать напечатанные экземпляры, отдать вручающему, проверить, что QR-код считывается (спойлер: со считыванием у ребят всё равно возникли проблемы). Мы справились во многом благодаря ответственности команды и параноидальным пингам друг друга.
Для себя мы нашли решение — писали ребятам в наш внутренний чат в телеграме:
Как работал квест на день рождения
В боте было 3 ветки: «Ваня», «Вова» и «Неильин» (для поздравителей и любопытствующих). В ветке «Неильин» мы предлагали всем желающим присылать поздравления ребятам. А ещё спрашивали, хотят ли поздравляющие узнать кухню бота — те, кто захотел, получат ссылку на эту статью 🙂
Ветки «Вова» и «Ваня» совпадали по структуре. Большинство сообщений в боте для ребят были совсем одинаковые, некоторые были похожи, но персонализированы, например, «Привет,
В среду вечером мы вручили братьям открытки с QR-кодом.
21 июля, среда, 19:00, офис, вручение открыток
Открытки выглядели так:
По QR-коду ребята попадали в канал с ботом.
На этом уровне у нас был единственный неавтоматический кусочек — верификация личности: каждый должен был прислать селфи с открыткой и видео с обещанием не мухлевать, выполнять все задания и кутить, словно в последний раз.
Для проверки в интерфейсе оператора на низком старте была я. Оба близнеца ждали молниеносной реакции, а я увидела их сообщения только через минуту, и они меня немного потроллили. Ваня старался сломать систему, как мог: сделал селфи без открытки, потом прислал фото другого человека с открыткой, писал сообщения и, как мне кажется, ехидно хихикал.
Вы же тоже слышите ехидный смех с первой фотки?
А Вова, кажется, просто хотел поболтать:
Наша автоворонка не была рассчитана на разговоры в тот момент, поэтому оба брата смогли сломать бота, и пришлось перезаводить их в квест.
Вот так в идеале выглядит первый уровень в квесте, если не издеваться над командой и делать всё, что просит бот 🙂
Кстати, Ваня выбрал «Ходить на коньках по Лыбедскому бульвару» и не угадал. А Вова выбрал «Лазать по деревьям», угадал, но в итоге не полез 🙂
22 июля, четверг, 09:00, дом каждого из близнецов, спортивное задание
Первое задание в четверг было связано со спортом. Ваня и Вова много бегают, и мы решили включить локации их бега в квест. Нашли для каждого по дереву, спрятали в ветвях по бутылке вина и сделали несколько подсказок, как эти подарки найти: сначала отправляли три фотографии, потом, если именинник просил помощи, — точные координаты дерева, а последняя подсказка была «Посмотри наверх».
Вино мы прятали утром этого же дня, чтобы подарки не нашёл кто-нибудь ещё 🙂 Задание отправилось обоим в девять утра, и мы стали ждать реакции. В это время одна команда организаторов уже уехала от места, где была спрятана бутылка Вани, а другая ждала в Лесопарке неподалеку от подарка Вовы.
Из-за срочных дел Вова не смог пройти эту часть квеста.
А Ваня с женой объездили все окрестности в Солотче — посёлке недалеко от Рязани, окруженном лесом, где живёт Ваня, — и магическим образом смогли найти дерево, не пользуясь подсказками — только по трём фотографиям!
С использованием всех подсказок вот так выглядел бы первый уровень квеста для Вовы:
22 июля, четверг, 11:30, онлайн, задание с голосовыми сообщениями
Отправлять голосовые сообщения в телеграме очень любит Ваня. Мы решили это обыграть, собрали три истории наших ребят и отправили братьям. Читали истории другие сотрудники, и близнецам нужно было угадать по голосу и того, кто читал, и того, чья история прозвучала.
Ребята угадали и голоса, и авторов с первого раза.
Задание выглядело так:
Так начиналось задание про «голосовухи»
Варианты ответов
Следующий этап задания
Переход к следующей «голосовухе»
История, которую пользователь прошёл, исчезала из списка. Задание завершалось после прохождения всех историй.
22 июля, четверг, 14:30, офис, поездка к первому офису
Мы захотели, чтобы ребята съездили к первому офису компании и немного поностальгировали. У двери старого офиса спрятали конверты с кодовыми словами, а дальше дали братьям задание идти туда, где они начинали работать с email-маркетингом. Сейчас это офис компании Altcraft — маркетинговой платформы, сделанной в Рязани. В офисе Алькрафта братьев ждал торт.
Идея надписи для торта родилась ещё на обсуждении идеи квеста: «Ваша CRM Group никому не нужна». Те, кто видел фото торта, но не знал предысторию, были удивлены: вырванная из контекста фраза выглядит зло. Ваня любит рассказывать эту историю и поделился ею вечером того же дня в своём фейсбуке:
22 июля, четверг, 18:30, онлайн, вопросы
Мы решили чуть расслабить ребят и добавили простенькие и забавные вопросы, чтобы просто подурачиться. И ещё интересно было сравнить, одинаково ли они будут отвечать:
Вопрос | Ответ Вовы | Ответ Вани |
Кто лучше учился в школе: ты или брат? | Вова | Вова |
А кто первый пришёл домой пьяным? | Вова | Вова |
А в каком возрасте? | В 11 лет | В 30 лет |
Кто больше работает? | Вова | Вова |
Сколько раз отожмёшься от пола? | Раз 10 | 5 |
А твой близнец? | Раз 10 | 10 |
А ещё были просьбы прислать дурацкие фото брата и рассказать про него смешные истории. Этот контент мы выкладывать не будем 🙂
Затем мы отправили ребят в новый офис и дали им задание найти два конверта с кодовыми словами. А спрятали мы три — в третьем было слово «Облом», который братья и нашли первым 🙂
Кодовые слова из правильных конвертов, введённые в бот, привели ребят в бар на одной из центральных рязанских улиц.
Одновременно с Ильиными в бар отправились и мы, надеясь, что наши пути не пересекутся, но чуть было не попались. Такой слаженности, как после крика: «Вон они!» — я даже не ожидала. Мы спрятались за верандой кафе неподалеку и умудрились остаться незамеченными:
Дружно прижимаемся к стене здания, чтобы не спалиться
Мы следили за ними из подворотни, перемещались бегом, и всё это напомнило детские игры в прятки и «казаков-разбойников». Такой адреналин!
В баре ребят ждали шоты для храбрости, после чего бармен вручил им гитары — братья должны были спеть перед входом. Тут мы все и высыпали.
Здесь Ваня ни в чём не клянётся, а говорит, что только он стал правильным человеком, а мы опять заставляем его творить дичь
Но всё-таки спели!
Потом, конечно же, были аплодисменты, поздравления, обнимашки, пицца, шампанское и кутёж!
25 июля, воскресенье, 10:00, онлайн, поздравления
А в воскресенье, когда наступил сам день рождения, ребятам стали приходить поздравления: аудио и видео от бывших и действующих членов команды. Мы отправляли по сообщению каждые полчаса, чтобы растянуть удовольствие. Некоторые были персональные, некоторые общие, и каждому из близнецов досталось по 10 поздравлений.
Похоже, им понравилось. Это для нас главная награда:
Советы для тех, кто хочет повторить чат-бота как подарок
Разделить эмоции с нами вы можете в «Чате Солдат». А дополнительные полезности и актуальные новости из мира онлайн-маркетинга в формате постов-трёхминуток выходят в Телеграм-канале «Маркетинг за три минуты».
Узнавайте об обновлениях блога Email Soldiers первым
Спасибо!
Осталось подтвердить подписку — кликнуть по кнопке в письме, которое мы вам отправили.
Следите за обновлениями в соцсетях или получайте их от нашего телеграм-бота
Похожие статьи
Рассказываем, откуда взяли мессенджеры и какими сервисами сегодня пользуются в России и в мире.
Технические подробности сборки бота для квеста на день рождения, нештатные ситуации, нестандартные проблемы и их решения.
Основатель агентства мессенджер-маркетинга Townsend рассказывает о принципах работы чат-ботов, их особенностях в разных мессенджерах и стоимости работы мессенджер-маркетолога
Telegram Bot, напоминающий о Днях Рождения
Я школьник и с недавнего времени интересуюсь программированием. Полученные знания стараюсь закреплять на реальных проектах. В этот раз я написал Telegram бота, который напоминает пользователям о Днях Рождения своих друзей и знакомых. Бота создавал в основном для себя, так как не нашёл рабочих аналогов в интернете, но сейчас решил поделиться им здесь.
Собственно, это очень простой бот, умеющий хранить Дни Рождения и напоминать о них в нужное время. Также есть возможность вывести список Дней Рождения по месяцам.
В боте предусмотрено несколько режимов рассылки уведомлений, а также возможность работы с часовым поясом:
Примерно так выглядит список Дней Рождения, в котором отображаются сами ДР на сегодняшний месяц, включая имя и возраст человека. Дополнительно выводится календарь, где подсвечивается сегодняшнее число.
Если вам интересна данная тема, можете протестировать бота по ссылке. Буду благодарен любым отзывам, предложениям по улучшению бота, сообщениям о найденных багах.
привет. свяжись со мной пожалуйста, мой ник в телеге okeara или на почту напиши сой ватсап okeara369@gmail.com мы хотим подобный бот сделать, ищем разработчика
А импорт списка возможен? Что бы не забивать по одному?
Поюзаю, сегодня др крестницы проебал, стыдно)
Ооо, прекрасный школьник!
А напиши, пожалуйста, бот, который будет напоминать что надо повторить слова.
1. Вводишь дату изучения и тему (можно отдельными шагами)
3. Вводишь 7 (например) раз.
4. Бот просит «Через сколько дней от даты изучения надо напомнить?»
5. Вводишь, например, 1.
6. Бот спрашивает «Через сколько дней от дня предыдущего повторения надо напомнить?»
7. Вводишь, например, 3.
И всё. И добавлять сколько угодно таких напоминашек. И пусть бот сам думает в какие даты напоминать, мне важно чтобы сохранялись нужные интервалы в количестве дней от прошлого повторения.
Сможешь ли, прекрасный школьник? 😊
Ужасно надо заучить 5 тыщ слов, схема повторения рабочая, но возиться с семью напоминашками на каждый блок слов в гугль-календаре ужасно лень.
Миллениалы скоро посрать не смогут сходить, если телеграм бот не напомнит, Дуров не расскажет как срать, чтобы выглядеть круто, а Тинькоф не сделает кешбек.
Команды в телеграм ботах
В ботах часто используются команды вида “/command”, которые провоцируют бота на то или иное действие.
Кто уже создавал ботов мог видеть их в @botfather.
Давайте разберемся как создать этот список команд и присвоить каждой ту или иную функцию.
С созданием списка команд все довольно просто, это реализуется непосредственно в настройках бота через @BotFather:
1) Вводим команду /mybots
2) Видим список наших ботов
3) Выбираем тот бот, которому присвоим список команд
4) Кликаем Edit Bot
5) Кликаем Edit Commands
Далее, следуя формату, отправляем список команд, например:
Теперь если мы введем “/” в чате с нашим ботом, то он предложит список команд. Проверяем, что список есть:
Добавим логику нашим командам
Как уже видно из описания команд, я хочу отправить в чат клавиатуру.
Создам новую ГТ и перейду к написанию скрипта
Назову файл doPost, здесь будет только эта функция
Добавлю следующий скрипт:
let update = JSON.parse(e.postData.contents);
let msg = update.message;
let msg_array = msg.text.split(» «);
let user = msg.from.username;
if (text == «/getkeyboard») <
Demo.send_key(«Галочки», chat_id, API, keyboard)
Demo.send(«Клавиатура сохранена”, chat_id, API)
Все! Для каждой команды теперь добавлен функционал.
Хорошо, расскажу поподробнее))
Итак, если текст сообщения == “/getkeyboard”, мы отправляем в чат некую клавиатуру.
Если мы отправили боту команду “/save”, то он ответит нам сообщением “Клавиатура сохранена”.
Подробно функции send и send_key, а также библиотека Demo рассматривались в постах ранее. Вот ссылки:
Дабы не перегружать дорогого читателя инфой, остановлюсь здесь)
Как всегда жду фидбека и вопросиков ^^ Всегда рады пообщаться!
Типы клавиатур в чат ботах
Сегодня познакомимся с существующими клавиатурами в ботах и тем, как их подключить и настроить.
Всего есть два типа клавиатур:
ReplyKeyboardMarkup используется в случаях, когда вы хотите получить от пользователя конкретный ответ, предоставляя ему возможность не печатать ручками, а выбрать из предлагаемых вариантов. Иными словами, это заготовки текстовых сообщений. Расположены кнопки под полем ввода сообщения
В зависимости от выбранной кнопки могут последовать те или иные действия. Эту логику мы задаем в скрипте для каждой кнопки.
В приведенном примере мы хотим записать пользователя на маникюр и предлагаем ему определиться с днем (в качестве примера приведены только два варианта, но это можно закастомить).
После выбора того или иного дня бот внесет инфу в ГТ, а именно: дату, имя пользователя и ид чата.
Запись через чат имеет следующий вид
Здесь мы выбрали кнопку Сегодня и получили ответ от бота.
В ГТ при этом появилась строчка
Подключение и настройка
Каждая клава (инлайн-клавиатур может быть сколько угодно) записана в соответствующую переменную:
[«Записаться», «Отменить запись»]
Обратите внимание, что синтаксис для инлайн (INLINE_Days) и обычной (KEYBOARD) клавиатур различается.
Клавиатурам можно добавить дополнительные свойства, мы использовали только resize_keyboard со значением true. Их не так много и они есть в документации телеграма.
Далее в коде обращаемся к клавам по имени переменной.
С ReplyKeyboardMarkup все достаточно просто. Она добавляется при первом прогоне скрипта, когда вы отправляете в чат команду /start, например.
Нам нужна функция, которая отправит в чат клавиатуру. Функция та же, что и при отправке сообщения ботом send(), за двумя исключениями:
Ниже скрипт функции отправки обычной клавы в чат:
function send_key (msg, chat_id, api, keyboard)
Вызов функции осуществляется из тела функции doPost(e) одной строкой:
send_key(«Поехали», chat_id, API_TOKEN, KEYBOARD)
Что касается инлайн-клавиатур.
Отправка клавиатуры наступает при определенном условии. Если пользователь отправил в чат слово “Записаться”, то отправляем ему нашу инлайн-клаву:
if (text == «Записаться») <
Demo.send_key(«Выберите день», chat_id, API_TOKEN, INLINE_Days)
Переменная text содержит текст сообщения, которое мы и проверяем на соответствие.
Результатом выполнения функции send_key будет сообщение от бота Выберите день и кнопки под ним.
Далее нужно предусмотреть алгоритм обработки нажатия этих кнопок.
Если мы кликаем на какую-либо из кнопок (“Сегодня” или «Завтра»), то добавляем новую строку в ГТ и отправляем сообщение в чат, что запись создана.
let date = Demo.getNewDate(0);
let ind = get_ind(chat_id);
Demo.send(«Вы успешно записались. «+»Дата визита: «+ date, chat_id, API_TOKEN);
Ниже скрипт полностью (не забываем, что значения глобальных переменных у вас будут свои):
// Объявляем все нужные нам переменные. Док важно открывать именно по ID, а не брать активный док, т.к. запуск кода будет производить бот
const API_TOKEN = «1946675042:AAHg1HTHe42GhR9EEt0EdbR94j1G8pDcTWE«;
const DOC = SpreadsheetApp.openById(«1ALJLtLdt-LT7GEF4hawIizVeJXFnoPZCsC0pw7kcp70«);
const Clients = DOC.getSheetByName(«Clients»);
const Calendar = DOC.getSheetByName(«Calendar»);
var update = JSON.parse(e.postData.contents);
var msg = update.message;
var msg_array = msg.text.split(» «);
var user = msg.from.username;
if (text == «Записаться») <
Demo.send_key(«Выберите день», chat_id, API_TOKEN, INLINE_Days)
if (text == «Отменить запись») <
let ind = get_ind(chat_id);
Demo.send(«Запись отменена», chat_id, API_TOKEN)
var text = update.callback_query.message.text;
var user_name = update.callback_query.from.username;
let date = Demo.getNewDate(0);
let ind = get_ind(chat_id);
Demo.send(«Вы успешно записались. «+»Дата визита: «+ date, chat_id, API_TOKEN);
let date = Demo.getNewDate(1);
let ind = get_ind(chat_id);
Demo.send(«Вы успешно записались. «+»Дата визита: «+ date, chat_id, API_TOKEN);
Отдельно ниже представлена доп функция, которая проверяет наличие ид в ГТ. Если ид уже есть в таблице, мы обновляем данные у строки с этим ид. В противном случае создаем новую строку.
let chat_id = 311157431;
let arr = Clients.getRange(1,2,Clients.getLastRow()).getValues()
let ind = arr.indexOf(chat_id)
ID для подключения библиотеки Demo: 1JkXEW_zfhr6v0TKsvU_ZbygNLpXEczxZcC46fMF_ffk-noMk8UKcMitz
Здесь также заметим, что клик по кнопке в инлайн клавиатуре отправляет боту JSON со свойством callback_query. Это значит, что нам нужны дополнительные переменные, в которые мы запишем значения из этого JSON пакета.
Это краткая вводная в мир клавиатур. Скоро будут посты про простые сервисы, куда будут добавлены и доработаны те же клавиатуры и доп функции.
Чат с прогнозом погоды и триггеры в гугл таблицах (GS6)
Глобально задача в следующем:
Отсюда я забрал прогноз:
Подробнее о том как спарсить данные с сайта в таблицу в этом посте: Парсинг данных с сайтов в гугл таблички (GS1)
Тут приведу только формулу:
Для этого нам необходимо сохранять ид чата отдельно в таблице и обращаться к этому значению как к значению переменной chat_id.
Соответственно, нам нужна функция, которая будет это делать:
//записывает ид чата в таблицу
Demo.send(«ID записан», chat_id, API_TOKEN);
Вызывать ее мы будем из тела функции doPost(e) при условии, что боту отправлена команда /link. В коде это выглядит вот так:
Теперь соберем все вместе и сформируем сообщение для отправки в чат.
Все, что в кавычках, должно быть изменено на ваши значения.
Функция для подключения веб хука:
Функция link(chat_id) для запоминания id чата
Функция daily() для формирования и отправки прогноза в чат:
На данный момент функция daily() не вызывается другой функцией или командой типа /link или /hello.
Мы добавим триггер, который будет вызывать функцию автоматически каждое утро.
Переходим на вкладку Triggers
Добавляем новый триггер
В окне задаем необходимые параметры.
Результат работы скрипта ниже.
Дополнительно: триггеры на то и триггеры, что работают автономно (без участия пользователя или разработчика, с закрытым доком или чатом. В любой ситуации сообщение будет отправлено в чат в установленное время с установленной частотой.
Создание библиотеки в гугл скриптах
В Гугл скриптах, как и в других языках программирования, есть возможность использовать библиотеки.
Что такое библиотека? Это набор функций и методов, которые часто используются программистами в разных программах. Чтобы не создавать одну и ту же функцию дважды или больше раз, достаточно один раз сохранить ее в библиотеку и подключать библиотеку к новому коду с уже написанными стандартными функциями.
В посте про создание телеграм бота мы использовали только три функции, и эти функции стандартные для любого бота. Следовательно, чтобы при создании второго, третьего… десятого бота не переписывать эти функции снова и снова, давайте просто сохраним их в библиотеку.
Создаем новые ГТ и скрипт в ней
Пропишем функцию send(msg, chat_id) :
function send (msg, chat_id, api) <
//Отправляет сообщения в тлг. На вход функции дать сообщение и ID чата, в который нужно провести отправку
UrlFetchApp.fetch(‘https://api.telegram.org/bot’ + api + ‘/’, data);
Сохраняем проект и делаем деплой
Кликаем по шестеренке и выбираем Library
Кликаем Deploy внизу окна и видим ссылку на библиотеку
Создаем новые гугл таблицу и скрипт. В скрипте прописываем глобальные переменные
Помним, что значения этих переменных у вас будут свои.
Попробуем добавить тот же функционал, что и в посте про создание бота, с отправкой сообщения в чат телеграма. Но в этот раз мы не будем создавать функцию send(), а подключим библиотеку, в которой она уже есть.
В открывшемся окне вставляем ID библиотеки (не ссылку, а ид) и кликаем Look up
Если подключение библиотеки прошло успешно, в окне появятся дополнительные поля выбора версии и указания идентификатора.
Название идентификатора меняем на короткое и понятное и кликаем Add.
В результате в списке библиотек видим новую библиотеку
Напоминаю, что в библиотеке у нас 1 функция. К ней можно обратиться следующим образом: имяБиблиотеки.имяФункции
Когда вы прописываете имя библиотеки и ставите точку, вы видите список всех доступных функций. В нашем случае это только функция send. Выбираем ее и прописываем передаваемые параметры:
Demo.send(«Hello World», chat_id, API_TOKEN)
Сохраняем проект, кликаем Deploy, обновляем Api_link, выполняем функцию api_connector и идем тестить работу этого бота (этот алгоритм действий также подробнее описан в статье про создания бота).
Новый бот отправляет сообщение в чат с помощью функции, которая зашита в библиотеке.
Таким образом, в ту же библиотеку можно добавить ряд стандартных функций и к новым скриптам подключать уже написанные функции, не создавая их снова.
Комбинация из ТЛГ и ГТ, простота подключения КМК делает из ГТ офигенный инструмент автоматизации.
Пост ориентирован прежде всего на людей, которые только познают ГТ и на первых порах не требует знания гугл скриптов. В этом посте будет только первичная настройка и подключение. В следующих постах рассмотрю всё что описал выше (как трекать время, задачи, финансы и т.д. и как это настроить под себя).
Для начала находим отца всех ботов @botfather в телеге.
После старта бота botftaher выведет список команд. Здесь нам интересна команда создания нового бота /newbot.
Порядок очень простой: создать бота, назвать его человеческим языком, задать ему username. В результате получаем API токен нашего бота (1860347610:AAH1q6eqTPnVh0qe6mQWidNSTELcprXEfOk). Он-то нам и нужен.
Должно получиться вот это:
Затираем дефолтный код и вставляем следующий скрипт:
const API_TOKEN = ‘1860347610:AAH1q6eqTPnVh0qe6mQWidNSTELcprXEfOk‘
const DOC = SpreadsheetApp.openById(‘10W0T9eOP_NN_6g4qyEJzWjm4nkKRN2vyUOnpx73f-N0’);
var update = JSON.parse(e.postData.contents);
//нам нужен только тип «сообщение»
var msg = update.message;
var msg_array = msg.text.split(» «);
var user = msg.from.username;
if (msg_array[0] == «/hello») <
send(«Hello World», chat_id)
function send (msg, chat_id) <
//Отправляет сообщения в тлг. На вход функции дать сообщение и ID чата, в который нужно провести отправку
UrlFetchApp.fetch(‘https://api.telegram.org/bot’ + API_TOKEN + ‘/’, data);
Обращаем внимание на переменные DOC и API_TOKEN (выделено жирным). Значения переменных необходимо исправить на ваши значения.
1) меняем ID гугл таблицы (находится в строке адреса после /d/)
2) меняем токен бота, который мы получили при его создании выше
Круто! Львиная доля работы уже проделана.
Следующим важным моментом является регистрация вебхука (webhook).
Добавим следующий код к нашему скрипту:
Сохраняем наш код и кликаем Deploy.
В открывшемся окне кликаем по шестеренке и выбираем Web app
В поле Who has access выбираем Anyone
При первом запуске приложение попросит авторизации. Проделываем это упражнение.
Здесь нам нужен URL в самом конце. Копируем его и вставляем в качестве значения переменной App_link.
Теперь функция должна выглядеть следующим образом:
Снова сохраняем код и запускаем функцию api_connector:
И наконец переходим к боту в телеге! Запускаем, отправляем команду /hello и видим результат.
Теперь подробно по коду. В коде всего 3 функции:
В нашем случае, если мы отправляем команду /hello, бот отвечает Hello World, вызывая функцию send. Это все его действия.
Делюсь своим погодным ботом без уведомлений
Последние полгода в свободное время писал погодного бота.
Возможно, бот будет полезен на устройствах с небольшим количеством памяти.
Основная идея была в том чтобы бот не присылал ни одного уведомления,
вместо этого он обновляет сообщения с прогнозом.
Интересно ваше мнение, предложения, критика.
Ключевые особенности бота:
✅ Присылает 3 сообщения с погодой (на 7 дней, сегодня, сейчас)
✅ Редактирует сообщения («7 дней» и «сегодня» раз в сутки; «сейчас»: каждый час)
✅ В любой момент можно отправить название города,
бот пришлет погоду в этом городе
✅ Если населенных пунктов с таким названием несколько,
бот пришлет варианты с мини картой на выбор
✅ Можно создать виджет на рабочем столе
Так выглядит прогноз:
🪁- ветер и его направление
Себе добавил вот такой удобный виджет.
Работает как на Android так и на iOS.
1) Долгий тап по пустому месту на рабочем столе
2) Появляются доп. настройки
3) Нажать «виджеты», найти раздел «Telegram»
4) Выбрать виджет 4×2
5) В настройках виджета выбрать чат с ботом
Благодарю за внимание!
Ps: готов к критике, отзывам, улучшениям
Можно также писать на почту: weatherisbot@gmail.com
Дописал бота для скачивания с Youtube, Instagram, Spotify, SoundCloud и тд
Недавно дописал бота, который был у меня в долгом ящике, надеюсь будет кому-то полезен
Бот может скачивать:
1️⃣Видосы из TikTok(без ватермарок).
2️⃣Посты, стори, IGTV, Reels с Instagram.
3️⃣Плейлисты, Shorts, видео(до 10 часов) с Youtube.
4️⃣Треки, плейлисты, альбомы, лайки по профилю SoundCloud.
5️⃣Треки, плейлисты, альбомы YouTubeMusic и Spotify.
6️⃣Голосовые сообщения, стикеры, видеосообщения Telegram.
Буду рад любому фидбеку\предложению\пожеланию\(может даже багу)
Список для добавления в бота(по запросу пользователей):
1. Выбор качества, и формата скачивания с ютуба
2. Скачивание с ВК
3. Скачивание с сервисов Яндекса
4. Скачивание Торрентов
5. Скачивание с Пикабу
6. Скачивание с Реддита
7. Предлагайте своё
Бот (гусь) в телеграмм, который мониторит цены на акции
Привет! Расскажу вам про своего telegram бота, которого я недавно сделал.
Зовут его Инвест Гусь 🦢. Он своевременно оповестит тебя, когда цена акции достигнет заданного значения. Это поможет заходить в сделку в максимально подходящий момент, а так же вовремя фиксировать прибыль или убытки.
Задачей было сделать инструмент, который поможет максимально быстро и удобно создавать новые оповещения, а так же легко управлять их списком. Я пробовал искать других ботов, которые могли бы делать что-то похожее, но к сожалению выбор был небольшой и по функционалу они решали немного другие задачи.
Пуши из приложенек тоже не зашли, как минимум потому что я их всегда выключаю, иначе завалят «супер выгодными предложениями только сегодня».
Как создать оповещение
— Запустить сценарий добавления через команду /add
— Добавить оповещение одной командой /add yndx 5000 (yndx — тикер ценной бумаги, 5000 — цена на которой придет уведомление)
— Так же можно добавлять несколько оповещений одной командой, перечисляя цены через пробел, а так же цены могут ставиться через +/- относительно текущей цены
* Если добавить один алерт, то бот предложит добавить к нему комментарий. Это может быть полезно, когда есть какая-то отложенная стратегия по акции.
Все фичи можно найти по команде /help
Сейчас у меня есть довольно большой бэклог для новых фичей, которые хочется внедрить, по этому буду рад фидбеку, который мне помог бы расставить приоритеты и понять, что важнее для пользователей.
Так же будет интересно, если вы поделитесь другими инструментами, которые используете для получения оповещений.
1. Котировки берутся пока что только у Тинькофф Инвестиций