В этой серии заметок хотел бы немного коснуться данной темы. Серия будет включаться в себя три раздела:
- Разработка бота на Go для поиска заклинаний для Dungeon And Dragons
- Публикация бота на платформе heroku
- Добавление аналитики использования бота
Итак, начнём!
Во-первых, нам потребуется сам список заклинаний DnD. Найти его можете в моём bitbucket-репозитории этого бота.
Во-вторых, создать новую папку. Например, dndspellsbot.
В-четвертых, чтобы не изобретать велосипед, добавить библиотеку telegram-bot-api:
go get gopkg.in/telegram-bot-api.v4
И, наконец-то, в-пятых, написать код самого бота.
config.json
Создадим пустой Go-файл dndspellsbot.go в папке dndspellsbot. Туда же добавим конфигурационный файл config.json со следующим содержимым:
Конечно же, можно обойтись без этих усложнений и зашить токен прямо в коде бота, но в случае, если вы случайно зальетё код вашего бота в какой-то публичный репозиторий на github/bitbucket/whatever, то утечёт и токен, а это, согласитесь, неприятно. И это только сейчас у нас такой простой конфиг — в дальнейшем будут добавляться новые свойства и всё будет храниться в одном месте. Удобно, согласитесь?
Как открыть/запустить телеграм аккаунты в формате tdata
Получить этот токен из конфигурационного файла довольно просто стандартными средствами Go:
package main import ( «fmt» «gopkg.in/telegram-bot-api.v4» «log» «os» «encoding/json» ) type Config struct < TelegramBotToken string >func main() < file, _ := os.Open(«config.json») decoder := json.NewDecoder(file) configuration := Config<>err := decoder.Decode( log.Panic(err) >fmt.Println(configuration.TelegramBotToken) >
Теперь при добавлении в config.json новых свойств и модификации структуры Config можно получать необходимые параметры конфигурации.
ping?
В репозитории telegram-bot-api есть пример echo-бота — бота, который отвечает вам те же сообщением. Возьмём его за основу:
bot, err := tgbotapi.NewBotAPI(configuration.TelegramBotToken) if err != nil < log.Panic(err) >bot.Debug = false log.Printf(«Authorized on account %s», bot.Self.UserName) u := tgbotapi.NewUpdate(0) u.Timeout = 60 updates, err := bot.GetUpdatesChan(u) if err != nil < log.Panic(err) >// В канал updates будут приходить все новые сообщения. for update := range updates < // Создав структуру — можно её отправить обратно боту msg := tgbotapi.NewMessage(update.Message.Chat.ID, update.Message.Text) msg.ReplyToMessageID = update.Message.MessageID bot.Send(msg) >
Вы уже добавила вашего бота в свой список контактов? Если нет — сейчас самое время.
Теперь самое интересное — запускаем наше приложение командой go run dndspellsbot.go и пишем что-нибудь нашему боту. Если всё сделано правильно, то бот ответит вам вашим же сообщением:
Однако, мы хотели не этого.
Опустим подробности парсинга XML — пост не об этом (полный код можно будет найти по ссылке в конце статьи).
Будем считать, что у нас есть слайс всех заклинаний и любой запрос пользователя к боту — это запрос на поиск подходящего заклинания по его имени (усложнять можно бесконечно, но на данный момент этого достаточно):
. query := update.Message.Text // Получим те заклинания, в имени которых есть искомое слово или фраза filteredSpells := Filter(spells.Spells, func(spell Spell) bool < return strings.Index(strings.ToLower(spell.Name), strings.ToLower(query)) >= 0 >) // Если не нашлось ни одного заклинания — скажем об этом пользователю if len(filteredSpells) == 0 < msg := tgbotapi.NewMessage(update.Message.Chat.ID, «No one spells matches») bot.Send(msg) >// Каждое заклинание отправляем отдельным сообщением for _, spell := range(filteredSpells) < text := «» for _, t := range(spell.Texts) < text = text + t + «n» >msg := tgbotapi.NewMessage(update.Message.Chat.ID, fmt.Sprintf(«%sn%s», spell.Name, text)) bot.Send(msg) > . // Функция фильтрации слайсов func Filter(spells []Spell, fn func(spell Spell) bool) []Spell < var filtered []Spell for _, spell := range(spells) < if fn(spell) < filtered = append(filtered, spell) >> return filtered >
Теперь, при любом запросе от пользователя, бот будет возвращать все подходящие заклинания из phb.xml .
В следующей статье немного улучшим нашего бота: добавим форматирование сообщений, inline-режим и добавим пару команд.
Код бота можно найти на bitbucket.
Источник: ashirobokov.wordpress.com
Инструкция по созданию Telegram ботов. Часть 2. Регистрация аккаунтов Telegram ботов в картинках
Регистрацией новых, равно как и редактированием существующих, аккаунтов ботов занимается главный бот, именуемый BotFather. Зарегистрировать через него бота можно следующим образом:
Картинка под катом
Картинка под катом
Картинка под катом
Картинка под катом
Картинка под катом
Картинка под катом
В принципе, всё, что нужно для функционирования аккаунта бота у нас есть, но можно использовать ещё несколько команд для придания этому аккаунту большей информативности. Например:
- /setdescription — позволяет добавить описание, которое выводится в окне добавления бота
- /setabouttext — позволяет добавить описание, отображаемое в окне информации о боте
- /setuserpic позволяет установить нашему боту аватарку
- Первое. У BotFather есть команда /setcommands. Нужно понимать, что она не создаёт для бота никаких команд. Команды для бота содержатся только в программе-операторе (она и есть сам бот), подключенной к аккаунту бота в Telegram. /setcommands позволяет всего лишь сообщить мессенджеру в виде листинга, какие команды понимает наш бот. Это делается для того, чтобы в дальнейшем, когда пользователи будут общаться с ботом в чатах, Telegram мог давать им подсказки при наборе команд. Сообщать ли Телеграму о командах своего бота или нет, или может сообщать только о части команд, — полностью наше право и наш выбор, который абсолютно никак не повлияет на работоспособность этих команд.
- Второе. Как вы уже, наверное, заметили, — все команды в Telegram начинаются со слэша: «/». Это не догма, а просто так принято. Это правило связано с тем, о чём я говорил выше. Telegram, видя слэш в начале сообщения, думает, что пользователь хочет ввести команду и выдаёт ему для подсказки всплывающий список, в котором перечислены все команды о которых мы ранее сообщили мессенджеру командой /setcommands. То есть это всё сделано исключительно для удобства.
- И, наконец, третье. Ещё одним негласным правилом для ботов является обязательное наличие команд /start и /help, которые должны выдавать пользователю список команд бота с описанием для чего эти команды нужны.
- Часть 1. Что такое Telegram боты и как они работают
- Часть 2. Регистрация аккаунтов Telegram ботов в картинках
- Часть 3. Пишем простого чат-бота для Telegram на чистом php (webhook)
- Часть 4. Прикручиваем MySQL к чат-боту для Telegram на php (webhook)
- Часть 5. Пишем Telegram бота на php для работы через longpolling
- Часть 6. Делаем пользовательскую клавиатуру для бота
- Дополнение. Как отправлять правильные https-запросы через curl и при чём здесь SSL-cертификаты
Понравилась статья? Поделись с друзьями!
Post Views: 3 113
Источник: radiohlam.ru
Как создать бота в телеграмме и настроить работу команд
Что такое Telegram знает каждый пользователь соцсетей. Это один из самых популярных мессенджеров в России, с помощью которого можно не только переписываться с друзьями, но и продвигать различные бизнес-проекты.
Чат-бот — это программа, которая имитирует реальный диалог с клиентом в различных мессенджерах. На сегодняшний день — это один из успешных инструментов рекламного продвижения. В статье мы разберёмся, как создать чат-бот в телеграмме самостоятельно бесплатно, не прибегая к услугам программистов.
Содержание статьи скрыть
Что такое чат-бот и для чего он нужен
На сегодняшний день, на рынке товаров и услуг большая конкуренция. Очень важно не только привлечь клиента, но и удержать его. По статистике, клиенты делают покупки там, где оперативно отвечают на их вопросы, и покупка совершается сразу.
Ещё несколько лет назад на все вопросы отвечал менеджер и время ожидания было долгим, поэтому клиент мог просто уйти. Теперь для ответов на самые популярные вопросы создаются виртуальные помощники, которые предоставляют клиенту всю необходимую информацию в течение пару минут.
Чат-бот — это виртуальный помощник, который запрограммирован выполнять определённые задачи. Такой помощник есть практически у каждой крупной компании, обучающей платформы или новостного канала.
Основные функции чат-бота:
- ответы на самые часто задаваемые вопросы;
- создание меню с командами для дальнейшей работы;
- создание рассылок для подписчиков;
- ведение статистики подписчиков;
- развлекательный контент;
- показ новостной ленты.
Чат-бот посылает запрограммированную информацию в зависимости от тематики канала. Это может быть график работы магазина, стоимость услуг, курс валют и так далее. В названии такого аккаунта всегда есть слово bot.
Основными преимуществами создания такого помощника является:
- круглосуточная работа — чат-бот предоставит информацию для клиента 24/7;
- клиент может моментально получить ответ на интересующий вопрос;
- для работы с роботом не требуется установка дополнительных программ.
Сегодня все, кто занимается продвижением своего бизнеса, устанавливают чат-боты, чтобы клиент мог получить информацию сразу по запросу. Ниже будет представлена актуальная информация, как создать бота в телеграмме для канала.
Ежедневные советы от диджитал-наставника Checkroi прямо в твоем телеграме!
Подписывайся на канал
Подписаться
Создание чат-бота в телеграме
Для начала необходимо зайти в свой аккаунт в телеграмме или скачать приложение через App Store или Play Маркет. Для установки приложения на компьютер необходимо скачать установочный файл с официального сайта.
Следующий шаг как создать бота в телеграмме самостоятельно бесплатно — создание своего помощника с помощью специальных сервисов-конструкторов. Самые популярные:
- Puzzlebot;
- Manybot;
- Botobot;
- Bottap;
- BotFather.
У каждого сервиса есть платные и бесплатные версии работы, также будет отличаться функциональные возможности будущего помощника. Разберем как создавать ботов в телеграме на телефоне.
Создаём чат-бот через сервис BotFather
Открываем приложение телеграма и в поисковой строке набираем имя «BotFather». Это официальный системный бот приложения, который помогает с регистрацией других ботов в мессенджере. Обратите внимание, что у данного сервиса есть официальное подтверждение — синяя галочка.
Шаг 1. Бот запрограммирован давать ответы, поэтому он никогда не начинает диалог. Чтобы получить информацию об установке вашего помощника, необходимо дать системному боту команду. Напишите в диалоговое окно /newbot. Далее бот будет задавать вопросы или давать инструкции.
Шаг 2. Необходимо придумать имя боту — оно будет отображаться в поисковой строке в списке контактов. Как правило, существующему названию компании или профиля в соцсети дописывают приставку bot. Если имя занято, то будут приходить системные сообщения — необходимо придумать другое. Для названия помощника можно использовать от 5 до 32 символов.
Шаг 3. После успешной регистрации бота появится следующее системное сообщение, в котором есть личный токен для последующих интеграций с различными сервисами.
Чат-бот готов. Для дальнейшей работы необходимо будет скопировать токен и вставлять на рабочие платформы для перехода в чат-бот. Также токен необходимо скопировать и вставить в диалоговое окно и после того придёт системное сообщение, что бот принят и готов к дальнейшей работе.
Настраиваем чат-бот
Для более полной информации необходимо настроить описание чат-бота — вставить аватар, написать информацию о компании.
Для этого нужно в диалоговом окне нажать команду /mybots. Появится меню настроек и редактирования.
И далее по очереди делаем описание каждого необходимого пункта. В любой момент можно редактировать описание и менять информацию.
Создаём команды для чат-бота
Далее необходимо прописать необходимые команды, которые будет выполнять бот. Необходим начать с ним диалог — для этого нажимаем команду «нажать» внизу чата.
Ниже отобразится список команд, которые можно использовать в работе с ботом:
- /newpost — отправка сообщений подписчикам;
- /schedule — посмотреть отложенные посты;
- /subscrlbers — посмотреть количество подписчиков;
- /commands — создание собственных команд и настройка бота;
- /botlang — установка языка бота
- /setdescription — возможность отредактировать описание бота;
- /channels — настройка автоматической выкладки постов в Телеграм;
- /admins — управление администраторами бота;
- /tutorials — ответы на вопросы, связанные с созданием и настройкой бота;