Яндекс формы интеграция телеграм
Итак, мы сделаем бота, который будет нас снабжать умными мыслями. Точно такого, как на картинке:
Можете испытать его в деле — вот имя: @SmartThoughtsBot. Обратили внимание на кнопочку «Навык Алисы»? Это потому, что бот является своеобразным «компаньоном» для одноименного навыка Алисы, т.е. он выполняет те же функции, что и навык Алисы и, возможно, что они смогут мирно сосуществовать рекламируя друг-друга. О том как создать навык Умные Мысли рассказано в статье Алиса приобретает навык. Сейчас (после внесения некоторых изменений уже после публикации вышеупомянутой статьи) на смартфоне этот навык будет выглядеть примерно так:
Создание бота
Мне бы хотелось, чтобы этот туториал был полезен всем, в т.ч. и начинающим «ботостроителям». Поэтому в этом разделе я довольно подробно опишу как вообще создавать в Telegram'е ботов. Для тех кому эта информация не требуются — переходите к следующим разделам.
Открываем приложение Telegaram, зовём отца всех ботов (у них всё как у людей) — @BotFather — и для начала дадим ему команду /help, чтобы освежить в памяти, что мы можем делать. Сейчас нас будет интересовать команда /newbot.
Поскольку описываемый здесь бот уже создан, для демонстрационных целей я создам на короткое время другого бота (потом его удалю). Назову его DemoHabrBot. Имена (username) всех телеграм-ботов должны заканчиваться на слово bot, например: MyCoolBot или my_cool_bot — это для ботов. Но сначала даём боту название (name) — а это для людей. Название может быть на любом языке, содержать пробелы, не обязано заканчиваться на слово bot, и даже не обязано быть уникальным. В данном примере я назвал этот бот Демо Хабр.
Теперь выбираем боту имя (username, то, которое для ботов). Назовём его DemoHabrBot. Всё что относилось к названию бота (name) совсем не относится к его имени — username (или относится, но с точностью до наоборот). После успешного создания уникального имени бота, нам надо скопировать и сохранить (в строжайшей тайне!) токен, показанный на скриншоте красной стрелкой. С его помощью мы чуть позже установим исходящий из Telegram'а вебхук на нашу Яндекс-функцию.
А сейчас дадим команду отцу всех ботов: /mybots, и он покажет нами список всех созданных нами ботов. Давайте пока оставим в покое свежеиспечённый бот Демо Хабр (он был создан чтобы показать как создавать ботов, но мы ещё им сегодня воспользуемся для других демонстрационных целей), и рассмотрим бот Умные Мысли (@SmartThoughtsBot). Нажимаем в списке ботов кнопку с его именем.
Нам осталось только настроить команды. Для этого нажимаем кнопку Edit Commands. Для стандартизации пользовательской практики Telegram рекомендует всегда использовать две команды: /start и /help, а если боту необходимы настройки — дополнительную команду /settings. Наш бот прост как шар, поэтому настройки ему пока не нужны. Прописываем две первых команды, которые потом мы обработаем в коде. Теперь, если в поле ввода пользователь введёт слеш (знак косой черты: /), появится список команд для их быстрого выбора. Всё как на картинке: слева — устанавливаем команды через бота-отца; справа эти команды уже доступны пользователям в нашем боте.
Яндекс-функция
Теперь, когда наш бот создан, переходим в Яндекс.Облако, чтобы создать функцию, которая будет выполнять код нашего бота. Если вы ещё не работали с Яндекс.Облаком почитайте материал Алиса в стране Битрикс, а затем — Яндекс-функции рассылают почту. Я почти уверен, что двух этих относительно небольших статей вам вполне будет достаточно для базового понимания предмета.
Итак, в консоли Яндекс.Облака в левом навигационном меню выбираем пункт Cloud Functions, и затем нажимаем кнопку Создать функцию. Присваиваем ей имя, а для себя — краткое описание.
После нажатия кнопки Создать и прошествии пары секунд, новая функция появится в списке всех функций. Нажимаем на её имя — это приведёт нас на страницу Обзор нашей функции. Здесь надо включить (On) переключатель Публичная функция, чтобы она стала доступна из внешнего (для Яндекс.Облака) мира, а значение полей Ссылка для вызова и Идентификатор — хранить в глубокой тайне от всех кроме себя самого и Telegram'a, чтобы вашу функцию не могли вызывать различные аферисты.
Теперь с помощью левого меню переходим в Редактор функции. Давайте пока отложим на короткое время в сторону наши Умные Мысли, и создадим минимальную функцию-шаблон для проверки работоспособности нашего бота… Впрочем, в данном контексте эта функция и есть наш бот… Короче говоря, сейчас и прямо вот здесь мы сделаем простейшего бота, который будет «зеркалить» (т.е. отправлять назад) запросы пользователей. Этот шаблон можно использовать всегда при создании новых телеграм-ботов, чтобы убедиться, что связь с Telegram'ом работает нормально. Нажимаем Создать файл, называем его index.js, и в он-лайн Редакторе кода вставляем в этот файл следующий код:
В консоли Яндекс.Облака это должно выглядеть примерно так:
Далее чуть ниже указываем Точку входа — index.bot, где index это имя файла (index.js), а bot — имя функции (module.exports.bot). Все остальные поля оставляем «как есть», и в правом верхнем углу нажимаем кнопку Создать версию. Через несколько секунд эта версия функции будет создана. В скором времени, после тестирования вебхука, мы создадим новую версию — Умные Мысли.
Объектное хранилище
Теперь, когда у нас создана Яндекс-функция, давайте, пока мы находимся в консоли Яндекс.Облака, создадим т.н. бакет (bucket, т.е. ведро по-русски, отнюдь не букет) для хранения файлов изображений, которые будут использоваться в нашем боте Умные Мысли. В левом навигационном меню выбираем пункт Object Storage, нажимаем кнопку Создать бакет, придумываем ему название, например, img-bucket, и, главное, Доступ на чтение объектов делаем публичным — иначе Telegram'у наших картинок не видать. Все остальные поля оставляем без изменений. Нажимаем кнопку Создать бакет.
После этого список всех бакетов может выглядеть примерно так (если это ваш единственный бакет):
Сейчас я предлагаю нажать на имя бакета, и внутри него создать папку, чтобы упорядочить хранение картинок для разных своих приложений. Например, для телеграм-бота Умные Мысли я создал папку под названием tg-bot-smart-thoughts (ничего, я пойму этот шифр). Создайте и вы какую-нибудь.
Теперь можно нажать на имя папки, зайти в неё и загружать файлы:
А нажав на имя файла — получить его URL для использования в нашем боте, и вообще — где либо (но, не публикуйте этот URL без надобности, поскольку трафик с Объектного хранилища тарифицируется).
Вот, собственно, и всё с Объектным хранилищем. Теперь вы будете знать, что делать, когда увидите призыв загрузить туда файлы.
Вебхук
Тестируем. Должно «зеркалить».
Так и есть. Наши поздравления — теперь Яндекс-функция стала Telegram-ботом!
Умные Мысли
А теперь делаем Умные Мысли. Код открыт и и лежит на GitHub. Он довольно хорошо прокомментирован, и в нём всего сотня строк. Читайте его как оперная дива либретто!
Склонируйте проект и установите зависимости:
Внесите необходимые вам изменения в файл index.js (опционально; можно ничего не менять). Создайте zip-архив, с файлом index.js и папкой node_modules внутри, например, под названием smart.zip.
Теперь перейдите в консоле к нашей Яндекс-функции, выберите вкладку ZIP-архив, нажмите кнопку Выбрать файл, и загрузите наш архив smart.zip. Наконец, в правом верхнем углу нажмите кнопку Создать версию.
Через несколько секунд, когда функция обновится, протестируем снова нашего бота. Теперь он уже не «зеркалит», а поставляет умные мысли!
Всем - привет. Давно зрела идея разобраться с отправкой данных из формы на сайте в мессенджер Telegram, но руки не доходили, а моментально получать заявки прямо в телефон, ой как хотелось!
Важно: для отправки файла из формы в Телеграм на вашем сервере должен быть включен cURL. Обратитесь к техподдержке вашего хостинга, они подскажут что делать и как включить. У многих он включен по умолчанию. Например, на моем хостинге Beget - так.
Как связать форму на сайте с Telegram
Итак, давайте приступим. Первое что нам нужно, это создать своего бота. Делается это достаточно просто. В поиске наберите @botfather, откройте родительского бота и нажмите "Start":
- Пишем команду /newbot, для создания нового бота.
- Придумываем имя бота.
- Придумываем ник бота.
Если все прошло успешно, то увидите поздравления и токен вашего бота, в моем случае это:
Теперь нужно найти своего бота в поиске, указав его ник и нажать "Start", чтобы активировать его. В моем случае ник @DWS_MESSAGE_bot.
После этого нужно создать групповой чат, в который будут приходить заявки и пригласить туда нашего бота. Давайте займемся этим.
Зайдите в меню, нажмите "New Group" и задайте имя вашему чату.
Не забываем пригласить своего бота в чат.
На данный момент у нас есть бот, мы знаем его токен, есть чат, в который будут приходить заявки, и нам осталось узнать только id чата. Для этого, напишем в чате:
А затем, в браузере введем:
где, XXXXXXXXXXXXXXXXXXXXXXX - токен вашего бота, полученный ранее.
Если все сделали правильно, то перед вами откроется подобная страница:
Разметка формы
Не стал выдумывать что-то сверхсложное, а просто 2 поля и возможность прикрепить файл. Оставил телефон, ведь у многих возникала проблема с символом "+", а файл добавил, так как меня просили разобраться с этой темой.
Добавил стили - получилось так:
Не забывайте, что форма отправляется без перезагрузки страницы, а значит используется ajax, и, для упрощения, jQuery. Поэтому подключаем сам jQuery, если не подключен, а после, и сам скрипт. Я сделал специальную папку telegramform, которую нужно поместить в корень сайта.
Код с AJAX запросом. Файл - telegramform.js
А теперь сам обработчик нашей формы. Файл - send-message-to-telegram.php:
Во многом он повторяет обработчик из других форм на блоге. Например, в статье "Создание формы обратной связи" используется аналогичный подход, и вы легко сможете осуществить отправку данных как на почту, так и в мессенджер одновременно.
Вот так с файлом:
Не стал делать каких-то серьезных валидаций, так как это просто пример и вам наверняка нужно будет не только отправка текста или картинки в Телеграм, но и на почту, а значит все равно подстраивать под свои нужды. Если будут вопросы - пишите в комментариях.
Всем ку
Комбинация из ТЛГ и ГТ, простота подключения КМК делает из ГТ офигенный инструмент автоматизации.
Тайм-менеджмент, таск-менеджмент, учёт финансов, объявления, пересылка событий - всё это создается и довольно быстро настраивается. Главное - это становится полезным не только в бизнесе, но и для обычных чатлан.
Пост ориентирован прежде всего на людей, которые только познают ГТ и на первых порах не требует знания гугл скриптов. В этом посте будет только первичная настройка и подключение. В следующих постах рассмотрю всё что описал выше (как трекать время, задачи, финансы и т.д. и как это настроить под себя).
Итак, первое что нам нужно - создать себе ТЛГ бота. Обращаемся к @BotFather
Дальше нам нужна пустая ГТ. Создаем, заходим в Инструменты / Редактор скриптов.
Скрин для английской версии.
Выделенное жирным:
1 - ID гугл таблицы, находится после /d/ :
2 - АПИ токен гугл бота, который мы доставали выше.
Важно - поставить доступ для анонимов и для каждой новой версии выставлять Project version новый или new.
При деплое оно запросит разрешение - даём, после чего получаем заветную ссылку:
Хотите отслеживать остаток бюджета рекламного кабинета Яндекс.Директа в Telegram, получать оповещения о состоянии ваших рекламных кампаний и обо всех изменениях статистики? Просто подключитесь к AdPlanner.
С появлением новой функции Оповещения в Telegram в сервисе adplanner.io стало возможным отслеживание общей статистики по аккаунту Яндекс.Директа и ключевых показателей эффективности (KPI). Всего за несколько простых шагов вы можете настроить уведомления с краткой статистикой по вашим рекламным кампаниям (клики, показы, CTR, CPC, конверсии, цена конверсии и т.д.), а также настроить свои собственные оповещения, задав частоту оповещений, параметр, показатель и условие создания.
Уведомления в Телеграм
Чтобы получать автоматические уведомления в Telegram, необходимо сделать следующее:
- зарегистрироваться/войти на AdPlanner.io;
- привязать аккаунт Яндекс.Директа, по которому вы хотите получать оповещения и рекомендации;
- привязать аккаунт Telegram к своей учетной записи AdPlanner;
- включить уведомления по проекту.
Давайте разберем каждый шаг более подробно.
Для того, чтобы войти/зарегистрироваться на сайте, перейдите на adplanner.io и нажмите кнопку Попробовать или Войти.
Ознакомившись с политикой конфиденциальности сервиса, осуществите вход через аккаунт Яндекса. Если вы заходите на AdPlanner впервые, то у вас запросит доступ к вашим данным на Яндексе:
На шаге №1 необходимо привязать аккаунт Яндекс.Директа, по которому вы хотите получать оповещения и рекомендации в Telegram. Если это тот же аккаунт, при помощи которого вы вошли на платформу, то оставьте Шаг 1 без изменений и нажмите Дальше.
Привязка аккаунта Яндекс.Директа
Если для входа в AdPlanner вы использовали один аккаунт Яндекса, а получать уведомления хотите по другому, тогда выберите переключатель Привязать другой аккаунт Яндекс.Директа, добавьте в поле Логин ваш аккаунт логин Яндекс.Директа и нажмите кнопку Привязать.
Подключение аккаунта Яндекс.Директа
Разрешите доступ к вашим данным на Яндексе. На шаге №2 добавьте электронную почту, на которую вы хотите получать критически важные уведомления о состоянии вашего аккаунта.
Добавление e-mail к учетной записи
Нажмите Дальше. Первичная настройка завершена. На заключительном шаге №3 нажмите кнопку Завершить настройку.
Завершение настройки AdPlanner
После этого в правом верхнем углу откройте меню профиля и перейдите в раздел Telegram:
В чате Telegram это выглядит так:
Добавление бота в Telegram
После этого обновите страницу. Рядом с настройками появится таблица с вашими подключенными аккаунтами Яндекс.Директа
Подключенные аккаунты Яндекс.Директа
Все, что осталось сделать - это включить оповещения с помощью переключателя (вкл. - зеленый):
Включение ежедневных оповещений в Telegram
На этом настройка завершена. Со следующего дня вы будете получать ежедневные оповещения о состоянии ваших рекламных кампаний в Telegram, включая текущий остаток бюджета Яндекс.Директа. Пример уведомлений выглядит так:
Читайте также: