Отправка данных из Яндекс.Формы в Telegram

Интеграция Яндекс.Формы и Telegram
Интеграция Яндекс.Формы и Telegram

Всем привет!

Кто-то пользуется в своих рабочих целях Яндекс формы (forms.yandex.ru) и не всегда удобно мониторить почту, особенно рабочую. И тогда я для себя поставил вопрос: "Можно ли отправлять уведомления через Telegram бота из Яндекс Формы?" и первый ответ в поиске дал ответ на мой вопрос: "Да, можно", но эта инструкция немного устарела.

Поэтому я пишу данную статью-инструкцию для других, надеюсь, кому-то помогу, потому что тех поддержка Яндекса говорит, что они не поддерживают такую интеграцию и предлагают использовать внешние сервисы - они лукавят.

Шаг 1. Регистрируем бота

Я не хочу останавливаться на этом шаге, есть очень много инструкций и очень подробных, например, https://habr.com/ru/articles/262247/

Шаг 2. Интеграция с Яндекс.Форма

Я пропущу тот шаг, что нужно добавить поля в саму форму и т.п. Думаю, что с этим не будет у вас проблем.

Главный наш экран - это вкладка "Интеграции"

Экран интеграции
Экран интеграции

Внизу формы есть 2 плитки: Почта и API, жмем на API и выбираем "Запрос JSON-RPC"

Выбрать Запрос JSON-RPC POST
Выбрать Запрос JSON-RPC POST

Далее перед нами откроется форма для добавления URL синхронизации с нашим ботом

Отправка данных из Яндекс.Формы в Telegram

В поле URL нужно внести:

https://api.telegram.org/bot{Токен из BotFather}/sendMessage?chat_id={chat id}&text={Методы}&parse_mode=Markdown

где:

bot{Токен из BotFather} - здесь, после bot вставляем токен, который получили при создании бота;

{chat id} - здесь, вводим свой chat id (его можно получить, если отправить свое сообщение этому боту - @getmyid_bot, если нужно отправлять уведомления в группу, то нужно предварительно добавить вашего бота в группу, дать ему админ права и пройти по этому URL:

https://api.telegram.org/bot{Токен из BotFather}/getUpdates

и ищем "chat":{"id":-999999, ... , как раз -999999 и есть id вашей группы (знак минус перед id обязателен!);

{Методы} - здесь подставляем через плюсик данные, которые будет отправлять бот, для меня идеально - название формы + содержимое всех ответов, если вас это устраивает, то берите копируйте и вставляйте как есть:

Название%0A%0AОтветы на все вопросы

где:

Название - подстановка названия формы в начале сообщения;

%0A - подстановка пробелов между названием формы и ответами;

Ответы на все вопросы - подстановка всех ответов в форме.

После нажимаем сохранить и у вас получиться, что-то подобное:

Вид готовой интеграции
Вид готовой интеграции

Можете заполнять свою форму и отправлять ее, и ваш бот отправит вам уведомление в телеграмм о новом ответе.

Надеюсь, данная статья будет вам полезна!

33
13 комментариев

У меня тоже была проблема с неотправкой. В URL в переменных отправляемых выбрал форматирование ответа с простого текста на JSON, сразу пришло

1

Ура) Благодарю,приходит сразу хоть в личку хоть в чат. Скажите,а у вас тоже весь текст с формы получается в куче?

не работает, наверное что то не так сделал

Скорее всего, метод работает, сам использую сейчас. Если нужна помощь, можно написать в личку

Благодарю. А токен, ID и т.д так же в фигурных скобках или их убирать?

У меня получается что после отправки формы не чего не приходит и выдаёт ошибку, но если перезапустить в ручную отправку то ответ с формы приходит в телеграм. А у вас как сбой происходит?