Как сделать первое сообщение в боте

Обновлено: 05.07.2024

Falcon Space - это платформа для создания веб-решений с управлением через SQL. Все создается и управляется на SQL. Телеграм бот управляется полностью 1 хранимой процедурой на SQL!

2. В web.config / AppSettings настраиваем следующие параметры:

3. В таблице as_users добавляем 2 поля:

4. Создаем хранимую процедуру такого вида (в разделе Системный SQL / Telegram Bot):

  • SELECT 1 - Result и Msg
  • SELECT 2 - набор команд для telegram (актуально если SELECT1.Result=1). Type, Text, ChatID, replyMessageID, DisableNotification, Channel, ButtonsJSON, parseMode

5. Проверяем, что работает бот. Подписываемся на него в telegram и выполняем /start (при этом мы получим отклик Привет. ). Если нет отклика, значит бот не запущен. Попробуйте его перезапустить в разделе Системный SQL (Старт телеграм бот).

6. Чтобы подписать пользователя на некие действия, необходимо сначала чтобы он указал свой телеграм в профиле (поле as_users.telegram). Затем он должен сделать любую команду в телеграме, отправив боту к примеру /start

Хранение привязки чата к пользователю системы

Использование бота

  • В телеграм находим бота (например, наш бот FalconSpaceBot)
  • Пишем ему /start для инициализации (осуществляется привязка вашего пользователя к чату).
  • Выполняем различные команды, например /getupdates - если команда прописана в чате, то она будет обработана и выдан ответ.

Включение/выключение бота

Бот включается при запуске всего веб приложения (Global.asax/app_start).

Чтобы его выключить в вручную можно из-под админа использовать команду (перейти на URL) /Controls/Stuff/StopTelegramBot

Для включения - /Controls/Stuff/StartTelegramBot

Детали реализации бота

Howto по Telegram боту

Не работает бот Telegram. Что делать?

  1. Проверьте что прокси прописан в web.config
  2. Проверьте что прокси не просрочен
  3. Проверьте что бот в целом отвечает.на ваши команды в телеграм (если не отвечает)
  4. Попробуйте запустить заново бота /Controls/Stuff/StartTelegramBot (либо перезапустите пул приложения в IIS)
  5. Проверьте as_trace (коды TG и Exception). В нем пишутся ошибки и инициализация и завершение потока бота.
  6. Сделать as_print в процедуре и посмотреть попадает ли туда бот.
  7. Бот может остановиться если вы запущена локальная отладка (в этом случае возникает конфликт обновлений, поэтому необходимо отключать бота при локальном запуске - в web.config убирать токен).
  8. Бот может падать если выключается автоматически пул IIS. Необходимо его настроить так, чтобы он не отключался при простое.

Для этого используем Внешнее действие (в формах и др элементах) с кодом telegram.

У пользователя должны быть корректно проставлены поля telegram (заносится сначала вручную для пользователя его логин) и telegramChatID(проставляется автоматически при первом обращении юзера к боту через Телеграм) в as_users. Также можно указать имя в виде '@username' - тогда отправка будет по логину телеграма (если он есть в tg_settings).

buttonsJSON задает настройки кнопок.

ВАЖНО! Необходима реализация процедуры tg_getChatID:

Для этого используем символ "-" и chatID в параметре to

Примечание: бот необязательно должен быть администратором группы.

Для этого используем Внешнее действие (в формах и др элементах) с кодом telegram.

Бот должен быть добавлен администратором в канал при этом.

ВАЖНО! Необходима реализация процедуры tg_getChatID

Как сделать рассылку пользователям при сохранении формы.

Как работать с кнопками Телеграм

Кнопки могут быть либо Inline (в чате при ответе), либо Reply(внизу под чатом).

Кнопки передаются в виде JSON в параметре SELECT 2 ButtonsJSON:

Для Inline кнопок указываем:

  • Text - название кнопки.
  • CallbackData - данные для передачи в процедуру
  • Url - если указан, то кнопка будет открывать указанный адрес. ВАЖНО! Вводите корректный URL, иначе будет исключение и вся исходная команда не будет работать.

Для reply кнопок команда используется в поле text. Также для них есть 2 настройки:

  • ResizeKeyboard - Requests clients to resize the keyboard.
  • OneTimeKeyboard - Requests clients to hide the keyboard as soon as it’s been used.

В процедуру для инлайн кнопок будет передаваться как команда поле callbackData, а для reply кнопок - поле text.

Дополнительная информация о кнопках Телеграм:

Выбираем символ, на страницу символа берем его код UTF16 LE

В SQL используем этот код следующим образом:

Для этого используется параметр paseMode='html' (это значение используется по умолчанию).

Есть альтернативные способы разметки - default, markdown, markdownv2.

Как быстро подписать пользователя на телеграм бота

Пользователь переходит на бота и нажимает там кнопку Запустить. При этом ваша команда /start должна учитывать что в этом случае придет она как /start 1

Т.е. используем left () для определения команды start, а не точное соответствие.

Многоступенчатые команды в боте

Для этого используются следующие поля в tg_settings:

  1. currentCommand - текущая рабочая команда (в рамках которой пользователь вводит данные).
  2. currentCommandStep - текущий шаг в команде (для определения какой текст вывести в рамках команды).
  3. currentCommandData - здесь накапливаются данные по выполнению команды.

Пример кода такой команды:

В примере указан полный код процедуры бота с обработкой start, меню и бизнес-логикой ступенчатой команды. Также в коде есть пример как использовать Эмоджи в боте.

Falcon Space - функциальная веб-платформа разработки на узком стеке MS SQL/Bootstrap. Вводная по Falcon Space

SQL-инструмент для создания личных кабинетов на сайте

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

Платформа Falcon Space

Это снижение стоимости владения

за счет меньшего количества людей для поддержки

Это быстрое внесение изменений

по ходу эксплуатации программы

Это современный интерфейс

полная адаптация под мобильные устройства

Веб-приложения на MS SQL. Партнерская программа для разработчиков и веб-студий

Вы можете разрабатывать самостоятельно или сотрудничать с нами в плане веб-разработки на платформе Falcon Space, используя только SQL и HTML.


В этой главе мы разберёмся как создать телеграм бота, и отправлять с его помощью уведомления в telegram.

1.1 Создание телеграм бота

Для начала нам необходимо создать бота. Делается это с помощью специального бота BotFather, переходим по ссылке и пишем боту /start .

Для создания нового бота отправляем команду /newbot .

BotFather попросит вас ввести имя и логин бота.

Имя вы можете ввести произвольное, а логин должен заканчиваться на bot .

Далее вам понадобится полученный API токен, в моём примере это 123456789:abcdefghijklmnopqrstuvwxyz .

Более подробно о возможностях BotFather можно узнать из этой публикации. На этом шаге подготовительные работы по созданию бота завершены.

1.2 Установка пакета для работы с телеграм ботом на R

Я предполагаю, что у вас уже установлен язык R, и среда разработки RStudio. Если это не так, то вы можете посмотреть данный видео урок о том, как их установить.

Для работы с Telegram Bot API мы будем использовать R пакет telegram.bot.

Установка пакетов в R осуществляется функцией install.packages() , поэтому для установки нужного нам пакета используйте команду install.packages("telegram.bot") .

Более подробно узнать об установке различных пакетов можно из этого видео.

После установки пакета его необходимо подключить:

Созданного вами бота можно найти в Telegram по заданному при создании логину, в моём случае это @my_test_bot .

Теперь в R пишем следующий код.

Изначально мы создаём экземпляр нашего бота функцией Bot() , в качестве аргумента в неё необходимо передать полученный ранее токен.

Хранить токен в коде считается не лучшей практикой, поэтому вы можете хранить его в переменной среды, и считывать его из неё. По умолчанию в пакете telegram.bot реализована поддержка переменных среды следующего наименования: R_TELEGRAM_BOT_ИМЯ_ВАШЕГО_БОТА . Вместо ИМЯ_ВАШЕГО_БОТА подставьте имя которое вы задали при создании, в моём случае будет переменная R_TELEGRAM_BOT_My Test Bot .

Создать переменную среды можно несколькими способами, я расскажу о наиболее универсальном и кроссплатформенном. Создайте в вашей домашней директории (узнать её можно с помощью команды path.expand("~") ) текстовый файл с названием .Renviron. Сделать это также можно с помощью команды file.edit(path.expand(file.path("~", ".Renviron"))) .

И добавьте в него следующую строку.

Далее вы можете использовать сохранённый в переменной среды токен с помощью функции bot_token() , т.е. вот так:


Соответвенно, к id 012345678 вам необходимо добавить -100, в таком случае в chat_id надо указать -100012345678.

Основы форматирования Markdown разметки:

  • Жирный шрифт выделяется с помощью знака *:
    • пример: *жирный шритф*
    • результат: жирный шритф
    • пример: _курсив_
    • результат: курсив
    • пример: `моноширинный шрифт`
    • результат: моноширинный шрифт

    Основы форматирования HTML разметки:

    В HTML вы заворачиваете часть текста, которую надо выделать, в теги, пример текст .

    Теги HTML разметки

    • - жирный шрифт
      • пример: жирный шрифт
      • результат жирный шрифт
      • пример: курсив
      • результат: курсив
      • пример: моноширинный шрифт
      • результат: моноширинный шрифт

      Помимо текста вы можете отправлять и другой контент используя специальные методы:

      К сожалению на момент написания книги telegram не поддерживает полноценные таблицы в HTML или Markdown, но вы можете иметировать подобие таблицы. Для этого воспользуйтесь кодом представленной ниже функции to_tg_table() :


      В telegram это буедет выглядеть так:

      У функции to_tg_table() есть несколько дополнительных аргументов:

      • align - выравнивнивание столбцов, тектовая строка, каждая буква соответвует одному столбцу, пример 'llrrc' :
        • l - выравнивание по левой стороне
        • r - выравнивание по правой стороне
        • c - выравнивание по центру

        Пример с выравниванием столбцов:


        Получить полный список доступных смайлов можно по этой ссылке.



        Результат:

        1.6 Проверка планировщика задач Windows, и отправка уведомления о задачах, работа которых была завершена аварийно

        Для работы с планировщиком заданий Windows вам необходимо установить пакет taskscheduleR , и для удобства работы с данными установим пакет dplyr .

        Далее с помощью функции taskscheduler_ls() мы запрашиваем информацию о задачах из нашего планировщика. С помощью функции filter() из пакета dplyr мы убираем из списка задач те, которые были успешно выполненны и имеют статус последнего результата 0, и те, которые ещё ни разу не запускались и имеют статус 267011, выключенные задачи, и задачи которые выполняются в данный момент.

        Если рассмотреть каждую команду подробнее, то:

        • filter() - фильтрует список задач, по описанным выше условиям
        • select() - оставляет в таблице только одно поле с названием задач
        • unique() - убирает дубли названий
        • unlist() - переводит выбранный столбец таблицы в вектор
        • paste0() - соединяет названия задач в одну строку, и ставит в качестве разделителя знак перевода строки, т.е. \n .

        Итак, на данный момент код бота выглядит вот так:

        При использовании приведённого выше примера подставьте в код токен вашего бота и ваш идентификатор чата.

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

        Так же вы можете вынести различные настройки в отдельный файл конфигурации, и хранить в нём id чата и токен. Читать конфиг можно например с помощью пакета configr .

        1.7 Настраиваем расписание запуска проверки задач

        Наиболее подробно процесс настройки запуска скриптов по расписанию описан в этой статье . Тут я лишь опишу шаги, которые для этого необходимо выполнить. Если какой-то из шагов вам не понятен, то обратитесь к статье на которую я указал ссылку.

        Предположим, что мы сохранили код нашего бота в файл check_bot.R . Для того, что бы запланировать регулярный запуск этого файла выполните следующие шаги:

        1. Пропишите в системную переменную Path путь к папке в которой установлен R, в Windows путь будет примерно таким: C:\Program Files\R\R-4.0.2\bin .
        2. Создайте исполняемый bat файл, в котором будет всего одна строка R CMD BATCH C:\rscripts\check_bot\check_bot.R . Замените C:\rscripts\check_bot\check_bot.R на полный путь к вашему R файлу.
        3. Далее настройте с помощью планировщика задач Windows расписание запуска, например на каждые пол часа.

        1.8 Заключение

        В этой главе мы разобрались с тем, как создать бота, и отправлять с его помощью различные уведомления в telegram.

        Я описал задачу контроля планировщика заданий Windows, но вы можете использовать материал этой главы для отправки любых уведомлений, от прогноза погоды до котировок акций на фондовой бирже, т.к. R позволяет вам подключиться к огромному количеству источников данных.

        1.9 Тесты и задания

        1.9.1 Тесты

        Для закрепления материла рекомендую вам пройти тест доступный по ссылке.

        1.9.2 Задания

        1. Создайте с помощью BotFather бота.
        2. Перейдите к диалогу с ботом, и узнайте идентификатор вашего с ботом чата.
        3. Отправьте с помощью созданного бота в telegram первые 20 строк из встроенного в R набора данных ToothGrowth .


        Если вы всё сделали правильно то результат будет следующим:

        Привет, друзья! На волне тренда мессенджеров и чат-ботов, наконец, добралась до создания своего бота в Телеграме. Реализовала простенького бота-помощника, а заодно решила поделиться с вами инструкцией, как я это сделала. Кроме того, в мой адрес звучали вопросы такого типа: как через бота отдавать подарок новым подписчикам. В общем-то, я этим тоже озадачилась.

        На самом деле, здесь нет ничего сложного. Главное продумать действия (команды) для бота.

        Для своего я сделала небольшое меню из 3 пунктов — где можно забрать полезный подарок, получить доступ к моему бесплатному курсу по партнеркам и связаться со мной в личке.

        Выглядит эта менюшка следующим образом:

        Пример создания своего чат-бота для Телеграм

        Самого бота я создала через платформу Manybot. Сделать это можно бесплатно, однако в диалоге с вашим ботом пользователи будут видеть ссылку на разработчика.

        Какие возможности есть у бота?

        2) Создание меню из команд. Это удобно, так как пользователям не надо вводить команды, а можно использовать для навигации готовое меню.

        4) Несколько языков интерфейса, в том числе русский.

        5) Можно настроить автопостинг в бота из rss блога или сайта, а также с YouTube-канала, ВК, Твиттер.

        Как создать своего Телеграм-бота?

        Я записала пошаговую видеоинструкцию — пример создания простого бота с меню:

        Пример создания своего чат-бота для Телеграм

        Пример создания своего чат-бота для Телеграм

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

        Пример создания своего чат-бота для Телеграм

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

        Пример создания своего чат-бота для Телеграм

        Следующим шагом нужно напечатать в диалоге с BotFather команду /newbot и следовать дальнейшим подсказкам. А именно:

        1) На английском нам предлагают указать название (имя) своего будущего бота. Я его назвала ViktoriaHelps и отправила это название в диалоге BotFather.

        2) Далее указываем логин для бота. Обязательное условие, чтобы логин оканчивался на bot. Можно написать концовку слитно или через нижнее подчеркивание: _bot.

        Пример создания своего чат-бота для Телеграм

        Пример создания своего чат-бота для Телеграм

        Пример создания своего чат-бота для Телеграм

        Кстати, описание бота в любое время можно отредактировать. Делается это через команду /setdescription в диалоге с Manybot.

        Пример создания своего чат-бота для Телеграм

        Настраиваем команды и меню в боте

        Пример создания своего чат-бота для Телеграм

        Давайте для примера создадим несколько своих команд в боте и затем встроим их в меню, чтобы новые подписчики могли взаимодействовать с вашим ботом.

        Пример создания своего чат-бота для Телеграм

        Пример создания своего чат-бота для Телеграм

        Указываем название нашей команды – оно должно быть латиницей и без пробелов. Название может содержать цифры и нижнее подчеркивание (для разделения слов). Перед командой используем значок слеш (косую черту) /.

        Пример создания своего чат-бота для Телеграм

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

        Пример создания своего чат-бота для Телеграм

        Пример создания своего чат-бота для Телеграм

        Кстати, при создании команды мы можем добавить вопрос – обычный, развернутый, с вариантами ответа. Чтобы добавить вопрос, следуйте подсказкам бота.

        Пример создания своего чат-бота для Телеграм

        Пример создания своего чат-бота для Телеграм

        Если вы хотите отредактировать или удалить команду, кликните по ней в меню.

        Пример создания своего чат-бота для Телеграм

        Откроется новое меню, в котором вы сможете выбрать желаемое действие.

        Пример создания своего чат-бота для Телеграм

        Например, выбираем редактирование. Здесь действия будут следующими:

        1) Сначала нам нужно удалить предыдущий ответ на команду и подтвердить действие.

        Пример создания своего чат-бота для Телеграм

        Пример создания своего чат-бота для Телеграм

        Пример создания своего чат-бота для Телеграм

        3) Вводим новый ответ, отправляем боту, сохраняем.

        Пример создания своего чат-бота для Телеграм

        Пример создания своего чат-бота для Телеграм

        Как добавить команду в меню бота?

        Теперь покажу, как добавить команду в меню. Это меню делается для удобства пользователя в диалоге с ботом, чтобы ему не приходилось вбивать команды вручную.

        Пример создания своего чат-бота для Телеграм

        Пример создания своего чат-бота для Телеграм

        Выбираем нашу ранее созданную команду.

        Пример создания своего чат-бота для Телеграм

        Пример создания своего чат-бота для Телеграм

        Видим, что новый пункт добавился в меню!

        Пример создания своего чат-бота для Телеграм

        Далее, если проскроллим эту менюшку вниз, увидим кнопки для добавления нового пункта меню. Все точно также – сначала создаем команду, затем добавляем ее в меню.

        А также кнопку возврата на предыдущее меню.

        Как удалить команду из меню?

        Если вы хотите удалить пункт меню или поменять его название, просто кликните по нему.

        У вас откроется другое меню с доступными действиями. Здесь много настроек, в частности можно менять расположение пунктов, создавать многоуровневые меню. Но сейчас не об этом…

        Пример создания своего чат-бота для Телеграм

        Пример создания своего чат-бота для Телеграм

        Вернуться к главному меню и настройкам бота

        Пример создания своего чат-бота для Телеграм

        Пример создания своего чат-бота для Телеграм

        Пример создания своего чат-бота для Телеграм

        Пример создания своего чат-бота для Телеграм

        Пример создания своего чат-бота для Телеграм

        Пример создания своего чат-бота для Телеграм

        Пример создания своего чат-бота для Телеграм

        Как увидеть меню своего бота и покликать по нему в качестве нового пользователя?

        Здесь вам понадобится другой аккаунт Телеграм. Вы можете создать его на другой номер телефона. Выйти из аккаунта под одним логином и зайти уже под новым. Далее переходите по ссылке на своего бота и тестируете его, как новый пользователь.

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

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

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

        Немного статистики мессенджеров

        Мессенджеры стали главным каналом общения с клиентами. Почему? Да потому, что почти у каждого второго человека установлен на телефон хотя бы один мессенджер. По версии Twilio, 85% людей предпочитают общаться с брендами именно там. А там, где клиент — должен быть и бизнес.


        Чат-боты для бизнеса

        8 статистических данных о чат-ботах, которые должен знать каждый владелец бизнеса

        Чат-бот VS Менеджер

        Как чат-бот может заменить менеджера?

        Прежде чем приступить к созданию чат-бота, который будет продавать, нужно разработать стратегию и ответить на 4 главных вопроса:

        Стратегия. Подготовка к созданию чат-бота

        1. Как выбрать мессенджер, в котором будет работать чат-бот?

        Сначала вы должны определиться с целью создания чат-бота: вы хотите продать или проинформировать аудиторию о чём-то? Кто является целевой аудиторией конкретно этого чат-бота и почему они начинают общение с ним?

        Определившись с ответами на эти вопросы, выберете подходящий мессенджер. Можно опираться на его функционал и возможности, популярность среди пользователей или предпочтения ваших клиентов.

        2. Как привлекать трафик в мессенджер с чат-ботом?

        Чтобы привлечь аудиторию в выбранный мессенджер, можно использовать виджеты на сайте: виджет подписок в мессенджеры, виджет чата. Можно создавать мини-лендинги и использовать их в таргетированной и контекстной рекламе.


        Пример как работает виджет чата на сайте


        Мини-лендинг, сделанный на TextBack
        Более подробно про особенности мессенджеров и способы сбора подписчиков в них мы говорили в другой нашей статье. или смотрите видео на нашем YouTube канале

        Прогрев — это путь знакомства клиента с вашей компанией и наращивание лояльности, готовности к покупке. Чтобы не превращать общение с клиентом в спам, нужно понимать кто ваш пользователь, зачем он пришёл, какие у него боли, как вы можете ему помочь.

        Мы предлагаем следующие варианты прогрева аудитории:

        4. Как продавать в чат-боте?

        Рекомендации, которые помогут эффективно продать в чат-боте:

        Создаем чат-бота: переходим от теории к практике

        Шаг 1. Проектируем схему чат-бота

        Спроектировать схему можно в любом удобном для вас формате: на майндкарте, например, в Miro, или прописать логику в Google Docs. Тут уже дело удобства.


        Пример схемы чат-бота в Miro

        Шаг 2. Проектируем структуру чат-бота и собираем в визуальном редакторе


        Пример структуры чат-бота в Miro
        Многим достаточно пропустить этот этап и уже сразу собирать чат-бота в визуальном редакторе.

        Визуальный редактор — это инструмент для создания и редактирования чат-ботов на визуальной карте. Создавать чат-ботов стало проще и быстрее, собирая их из блоков и устанавливая связи между ними.

        Благодаря визуальному редактору любой маркетолог или менеджер без знаний программирования может собрать чат-бота за 5-10 минут.

        Визуальный редактор чат-ботов в TextBack

        Оцениваем эффективность чат-бота

        Заключительным этапом будет оценка эффективности чат-бота. Пока что оценить эффективность можно только навесив на кнопки теги. Тег — это метка, по которой вы отслеживаете нажатие на кнопку. Аналитику обычно выгружается через платформы мессенджер-маркетинга или СRM-системы, в которых вы работаете.

        Протестируйте нашего чат-бота

        Попробуйте посмотреть, как работает наш чат-бот. Все, что описано выше, мы применяем в нашей работе, убедитесь сами, насколько это просто!
        Переходите по ссылке, там вас ждут бонусы. :)

        Надеемся, статья была для вас полезна. Будем рады обратной связи. Успехов в создании чат-ботов!

        Читайте также: