Создание Telegram bot ставки

Лояльность клиентов – важный показатель в деятельности любой организации. Чтобы покупатель оставался доволен продукцией, важно внимание и забота со стороны компании. Бизнес должен быть в курсе, какой товар понравился клиенту, а что вызывает неприятные ощущения.

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

Технологии не стоят на месте, и сейчас необязательно человеку делать все самому. Решение – чат-бот в Telegram. Клиенты пользуются Telegram, и его аудитория стремительно растет. Это легкий и простой мессенджер, который подходит для общения с коллегами и друзьями.

В статье Разработка чат-бота федеральной сети аптек мы уже рассказывали о том, как создавали чат-бота и с какими трудностями столкнулись. Здесь пойдет речь о том, как мы разрабатывали Telegram-бота для развития системы лояльности.

КАК СДЕЛАТЬ БОТ ДЛЯ СТАВОК В ТЕЛЕГРАМ?

Особенности ботов платформы Telegram

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

Забавно, что для создания чат-бота используется чат-бот BotFather. После создания бот становится доступным всем пользователям в Telegram.

image6.png

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

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

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

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

За решением к нам обратилась вендинговая компания, которая занимается установкой и оборудованием микромаркетов для общественного питания.

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

Вот так выглядит микромаркет:

image9.png

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

Главная задача чат-бота – развитие системы лояльности компании.

  • Рассылка новостей и проведение опросов среди подписчиков чат-бота
  • Получение жалоб и отзывов пользователей
  • Сбор статистики
  • API для сбора отзывов в 1С и обновления терминалов

Помимо этих требований есть важный момент – у каждого микромаркета имеется терминал оплаты с собственным идентификационным QR-кодом. Этот код клиент сканирует с помощью камеры и у него открывается диалог с ботом в Telegram. Так определяется, каким терминалом пользуется клиент и где он расположен.

Подходы к созданию чат-ботов

Прежде чем рассказать о решении задачи, мы расскажем о двух способах создания чат-бота и преимуществах этих подходов.

Визуальный конструктор

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

image13.png

Пример конструктора

Есть много таких конструкторов, между собой они отличаются набором функции и стоимостью. Но кастомизация и добавление задумок труднореализуемо из-за ограничений самого конструктора.

Программирование ботов

Другой способ разработки – создание чат-бота на любом серверном языке программирования (PHP, Python, Java) со своей базой данных (MySQL, PostgreSQL), в которой можно хранить статистику пользователей, настройки чат-бота, диалоги пользователей, товары и т.п.

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

Еще можно реализовать такие интересные вещи, как:

  • API для обмена данными с учетными системами
  • Вывод и поиск товаров из каталога сайта
  • Прием заказов и заявок через бота
  • Создание виртуального собеседника с искусственным интеллектом
  • Реализация автоворонки продаж
  • и т.п.

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

Разработка Telegram-бота для Программы Лояльности

Для решения задачи мы использовали бесплатную библиотеку для создания чат-ботов – BotMan на языке программирования PHP. Это фреймворк, который позволяет создавать полноценных ботов на популярных мессенджерах.

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

Концепция задачи

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

Еще по теме:  Могут ли удалить Телеграмм канал

image7.png

Пояснения по схеме:

  • Приветствие, новость и опрос – автоматические действия, которые запускают диалог с пользователем и по окончанию возвращают пользователя в главное меню
  • Привязать номер, управление оповещениями и оставить отзыв – команды, которые доступны пользователю
  • Неизвестная команда – логика обработки неизвестных команд

Для хранения данных на сайте созданы хранилища:

  • Новости
  • Статистика новостей
  • Опросы
  • Статистика опросов
  • Отзывы
  • Терминалы
  • Пользователи

В качестве требований к API для обмена с системой 1С:

  • Выгрузка терминалов из 1С
  • Выгрузка новых отзывов с сайта в 1С

image3.jpg

Общая архитектурная схема бота программы лояльности

Теперь перейдем к обзору реализованных функции

Регистрация и первый вход

Первый вход пользователя происходит посредством сканирования QR-кода терминала, по которому открывается чат-бот в Telegram. По этому коду определяется терминал для дальнейшей идентификации пользователя.

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

Рассылка новостей и опросов

Рассылка новостей и опросов производится через административную панель Битрикса. Контент-редактору это не доставляет большого труда — нужно добавить новость, указать планируемую дату рассылки и выбрать микромаркеты, клиенты которых получат оповещение.

image11.png

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

image15.png

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

Подписка на новости и опросы происходит автоматически после регистрации. Если пользователя что-то не устраивает, он имеет право отписаться – для этого нужно нажать кнопку “Управление оповещениями” и отключить нужную рассылку.

Статистика новостей и опросов

На сайте предусмотрены хранилища для сбора статистики по рассылкам. Это происходит автоматически при отправки рассылки новостей и опросов пользователям.

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

image8.png

image14.png

Оставить отзыв

Функция задумывалась, как диалог клиента с чат-ботом. Логика работает следующим образом – пользователь нажимает кнопку “Оставить отзыв”, а бот в ответ просит указать категорию отзыва и уточнить адрес терминала. После уточняющих вопросов, чат-бот предлагает пользователю подробно описать проблему и прикрепить файлы.

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

image2.png

Ответ уходит пользователю в течение минуты:

image12.jpg

Интеграция с 1С

В админке Битрикса есть необходимые средства, для управления и скачивания данных чат-бота. Но гораздо удобнее настроить интеграцию с учетной системой, чем выполнять однотипные действия, перетаскивая данные вручную. Кроме того, наш клиент – вендинговая компания, а в таких организациях микромаркеты могут открываться каждый день и информация о новом пункте должна быть известна чат-боту.

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

В результате на сайте было создано API с методами обновления информации по новым терминалам и получения отзывов пользователей. API реализовано в формате json, а инициатором выступает учетная система – 1С.

image10.png

Заключение

ИНТЕРВОЛГА успешно выполнила задачу, а Заказчик достиг целей проекта. Чат-бот Программы Лояльности помогает взаимодействовать с пользователями, собирать обратную связь и собирать статистику.

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

Разработка такого бота – это прототип для дальнейшего развития системы лояльности. Идеи для дальнейшего развития:

  • накопление баллов за отзывы,
  • геймификация в виде квестов,
  • поощрения за посещения микромаркетов и т.п.

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

Для сложных и интеграционных задач – обращайтесь к нам в ИНТЕРВОЛГУ. Мы поможем создать бота, который станет виртуальным сотрудником вашего бизнеса и избавит от части трудоемкой рутины. Готовы? Форма для связи – внизу страницы.

Источник: www.intervolga.ru

Создаем бот для Телеграм-канала быстро, легко и просто

Превью к статье

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

Уголок Админа — авторский блог о Телеграм. Только качественная и полезная информация о продвижении и развитии Телеграм-каналов.

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

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

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

Небольшой список таких конструкторов:

  1. Menu Builder Bot
  2. PuzzleBot
  3. Botmother
  4. Chatforma
  5. Manybot
  6. Bottap
  7. Telegrambot
  8. Aimylogic
  9. Fleepbot подробный обзор.
  10. WinWinbot подробный обзор.

Ниже я разберу пример создания бота в Телеграм через конструктор Fleep.

Создаем бот с помощью конструктора Fleepbot

Fleepbot — конструктор умных чат-ботов для бизнеса. В нем возможно создавать боты для отложенных постов и умных чат-ботов под разные цели и задачи.

У сервиса есть несколько преимуществ, хороший функционал, техподдержка, он стабилен и обновляется. Бот возможно создать бесплатно. В бесплатной версии в созданном боте будет небольшая пометка о том, где он создан (вотермарка).

Для примера я создам простой прайс-бот (бот для продажи рекламы в Телеграм-каналах) с двумя кнопками.

Создаем бот

Чтобы создать бот для Телеграм-канала через Fleepbot, работаю по следующему плану:

Еще по теме:  Как назвать свою группу в Телеграмме

Бот для Телеграм-канала через конструктор fleep

2. Бот отправляет краткую информацию и подсказки по работе.

Бот для Телеграм-канала, подсказки по работе в конструкторе

Бот для Телеграм-канала, инструкция по созданию

Создаем бот для Телеграм-канала в BotFather

5. Ввожу команду /newbot, бот просит придумать название. Назову просто «Прайс».

Команда /newbot

6. Название дано, выбираю юзернейм (на окончании обязательно должно быть слово «bot»). Даю юзернейм «price15_bot». Если бот ругается, значит юзернейм занят и следует попробовать другой.

Токен бота в Телеграм

Бот готов, получаю поздравления и токен. Теперь проработаю внешний вид и описание бота.

7. Использую команду /setuserpic для добавления аватарки и отправляю фото. Отправляю команду, выбираю бот и присылаю фото для аватарки.

Бот для Телеграм-канала, установка аватарки

8. Аватарка сделана, добавляю описание. Есть две команды: /setdescription и /setabouttext. Команда /setabouttext дает возможность установить описание бота в шапке. Команда /setdescription дает возможность установить описание бота при старте.

9. Ввожу /setabouttext и даю описание бота в шапке. Например «Прайс-бот с рассылкой выгодных предложений».

Добавляем описание бота

10. Ввожу /setdescription и отправляю текст для описания бота при старте. Сделаю текст таким же как и в шапке бота «Прайс-бот с рассылкой выгодных предложений».

Добавляем описание бота

Подключение бота к Fleepbot

Все готово, теперь создаю кнопки в боте.

Создаем кнопки

1. Захожу в созданный бот и запускаю его.

Создаем кнопки в боте

2. Запустил бот, теперь настраиваю его. Нажимаю «Настройки».

Создаем кнопки в боте шаг 2

3. Я делаю простой бот с двумя кнопками. Нажимаю «Меню», затем «Главное меню».

Создаем кнопки в боте шаг 3

И нажимаю на значок плюса.

Создаем кнопки в боте шаг 4

4. Выбираю тип кнопки «Обычная».

Создаем кнопки в боте шаг 5

5. Бот просит ввести название для кнопки. Называю ее «Цена на рекламу».

Создаем кнопки в боте шаг 6

6. Ввожу ответ — текст, который получит пользователь, нажав на кнопку в боте. Я ввожу, например, такой: «Реклама в канале стоит 1000 руб.» и нажимаю «Готово».

Создаем кнопки в боте шаг 6

Кнопка готова, бот отправляет сообщение о ее успешном создании.

По инструкции выше я создаю и вторую кнопку в боте, назвав ее «Статистика».

Проверяем бот

Бот создан, пора найти и проверить его.

1. С другого аккаунта Тг ищу в поиске свой созданный бот.

Находим бот в поиске

Созданный бот

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

Запускаем созданный бот

Статистика и рассылка

Проверяю, как работает рассылка через бот.

1. Захожу с аккаунта создателя в бот (того, на котором создавал бот) и жму «Статистика», получаю данные о пользователях, запустивших бот.

Статистика пользователей бота

2. Теперь попробую разослать сообщение пользователям бота. В настройках выбираю «Рассылка».

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

Рассылка пользователям бота

Выберу «Все пользователи» и введу такой текст «Сегодня скидка на рекламу 10%», затем нажимаю «Готово» и «Да». Все ок, рассылка прошла успешно, бот отправил статистику.

Проводим рассылку пользователям бота

А на второй аккаунт, с которого я запускал бот для проверки, пришло сообщение.

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

Все отлично, бот для Телеграм-канала получился рабочим и удобным.

Заключение

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

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

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

Успехов вам! До новых встреч в следующих статьях. С уважением, Дмитрий Толстой.

Источник: blogger-tolstoy.ru

Телеграм-бот криптовалютного кошелька на основе php-telegram-bot

Телеграм-бот криптовалютного кошелька на основе php-telegram-bot

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

Для быстрого создания сервиса будем использовать PHP, возьмем одну из библиотек с core.telegram.org (https://core.telegram.org/bots/samples) php-telegram-bot (https://github.com/php-telegram-bot/core/). Эта библиотека часто обновляется и подходит для дальнейшего масштабирования бота.

В свободном доступе есть несколько API-сервисов для работы с криптовалютами:

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

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

Итак, наш бот будет уметь:

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

Вся обработка колбэков от телеграма уже реализована в php-telegram-bot .

< «require»: < «longman/telegram-bot»: «^0.74.0», «monolog/monolog»: «^2.2» >, «autoload»: < «classmap»: [«Classes»] >>

Запускаем composer update для создания базовой структуры. Создаем ее и добавляем туда папку Apirone и в нее файл ApironeWallet.php, в котором реализуем класс взаимодействия с криптопроцессингом.

В нем реализованы следующие функции:

getWallets($user_id, $currencyId = null) //получить кошельки для telegram Пользователя addWallet($user_id, $wallet, $address) //add generated wallet into DB postWallet($user_id, $currency) //get wallet from Apirone createWallets($user_id) //create all available wallets getCurrencyId($currency,$units = null) //get currency id from DB getAddress($chat_id, $user_id, $currency) //outputs wallet from DB getAvailableCurrencies() //collect available currencies from DB getCurrencyById($id, $units = null) // return currency by Id getBalance($chat_id, $user_id, $wallet_id = null) // get wallet or wallets balance checkAddress($currency, $address) // validate crypto address estimate($user_id, $currencyName, $address, $amount) // pre-calculation of crypto transaction transfer($user_id, $currencyName, $address, $amount) // transfer funds explorerUrl($currency, $tx) // get explorer link

Подробно работу этих функций смотрим в примере. Создадим MySQL базу данных, она будет нужна для работы интерактивных диалогов. В нее требуется добавить три таблицы: apirone_currencies, apirone_transactions и apirone_users.

С телеграмом будем общаться с помощью вебхуков (Webhook). Для этого set.php и unset.php — включение и отключение колбэков. hook.php принимает сами колбэки из телеграма:

Еще по теме:  Сгрузить Телеграмм что это

$telegram->handle();

Установка и удаление вебхука выполняются в две функции:

$result = $telegram->setWebhook($config[‘webhook’][‘url’]); $result = $telegram->deleteWebhook();

В корне проекта нужна папка Commands, в нее запишем наши кастомные команды и изменим существующие. Из изменений в базовых классах нас интересует взаимодействие с меню не только через команды, начинающихся со слэша, но и просто текстовые команды. Для этого в папке Commands добавляем папку ServiceMessages и в ней создаем GenericmessageCommand.php , в который путем перечисления вносим нужные команды и реакции на них:

// Fetch conversation command if it exists and execute it. if ($conversation->exists() $command = $conversation->getCommand()) < return $this->telegram->executeCommand($command); > if($type === «text») < $text = $message->getText(true); if (stripos($text, ‘Receive’) === 0) < return $this->telegram->executeCommand(‘receive’); > if (stripos($text, ‘Menu’) === 0) < return $this->telegram->executeCommand(‘menu’); > if (stripos($text, ‘Balance’) === 0) < return $this->telegram->executeCommand(‘balance’); > if (stripos($text, ‘Send’) === 0) < return $this->telegram->executeCommand(‘send’); > return $this->replyToChat( ‘Command not found’ ); >

Также добавляем наши четыре кастомные команды BalanceCommand.php , MenuCommand.php , ReceiveCommand.php и SendCommand.php.

Каждой команде делаем описание, использование по умолчанию, присваиваем версию.

protected $name = ‘balance’; protected $description = ‘Show balance of wallet’; protected $usage = ‘/balance’; protected $version = ‘1.2.0’;

Сам код команды закладывается в функцию execute(). В ней происходит выполнение операций. Например, вот команда, которая смотрит баланс

$message = $this->getMessage(); $text = $message->getText(true); $chat = $message->getChat(); $user = $message->getFrom(); $chat_id = $chat->getId(); $user_id = $user->getId(); $sql = ‘ SELECT * FROM `apirone_currencies` ‘; $pdo = DB::getPdo(); $sth = $pdo->prepare($sql); $sth->execute(); $result = $sth->fetchAll(PDO::FETCH_ASSOC); foreach ($result as $currency) < if (stripos($text, $currency[‘name’]) === 8) < $response = new ApironeWallet; $response->getAddress($chat_id,$user_id,$currency[‘name’]); return Request::emptyResponse(); > > if ($text === ‘Balance’ || $text ===») < $response = new ApironeWallet; $response->getBalance($chat_id, $user_id); > return Request::emptyResponse();

SendCommand.php будет интерактивным. В нем бот спросит криптовалюту, адрес для перевода средств и сумму платежа.

$this->conversation = new Conversation($user_id, $chat_id, $this->getName()); // Load any existing notes from this conversation $notes = conversation->notes; … // Every time a step is achieved the state is updated if($text === ‘Cancel’) < $state = 4; $notes[‘answer’] = ‘Cancel’; >if($text === ‘Send’) < $text = »; >switch ($state) < case 0: $currencies = $apirone->getAvailableCurrencies(); if ($text === » || !in_array(strtoupper($text), $currencies, true)) < . $data[‘reply_markup’] = (new Keyboard( [$currencies[0],$currencies[1]], [$currencies[2],$currencies[3],$currencies[4]], [‘Cancel’])) ->setResizeKeyboard(true) ->setOneTimeKeyboard(true) ->setSelective(true); $result = Request::sendMessage($data); break; > $notes[‘currency’] = strtolower($text); $text = »; case 1: if ($text === »|| !$apirone->checkAddress($notes[‘currency’], $text)) < $notes[‘state’] = 1; $this->conversation->update(); $data[‘text’] = ‘Type address for transfer:’; if ($text !== ») < . break; >$notes[‘address’] = $text; $text = »; // No break! case 2: … case 3: if ($text === » || !in_array($text, [‘Ok’, ‘Cancel’], true)) < $notes[‘state’] = 3; $this->conversation->update(); $currency = $apirone->getCurrencyId($notes[‘currency’], true); $estimate = $apirone->estimate($user_id, $notes[‘currency’], $notes[‘address’], $notes[‘amount’]); if(isset($estimate[‘message’])) < $data[‘text’] = ‘Message from Apirone:’. PHP_EOL. ‘*’.$estimate[‘message’].’*’ .PHP_EOL. ‘Operation cancelled.’; $data[‘parse_mode’] = ‘markdown’; $data[‘reply_markup’] = (new Keyboard([‘Receive’, ‘Send’], [‘Balance’])) ->setResizeKeyboard(true) ->setOneTimeKeyboard(true) ->setSelective(true); $this->conversation->stop(); > else < $data[‘reply_markup’] = (new Keyboard([‘Ok’, ‘Cancel’])) ->setResizeKeyboard(true) ->setOneTimeKeyboard(true) ->setSelective(true); $data[‘text’] = ‘Please double check that all data correct. Send «Ok» message in answer. If you want to stop sending type «Cancel»‘. PHP_EOL; . if ($text !== ») < $data[‘text’] = ‘Simply type Ok or Cancel.’; >> $result = Request::sendMessage($data); break; > $notes[‘answer’] = $text; // No break! case 4: $this->conversation->update(); unset($notes[‘state’]); if($notes[‘answer’] === ‘Ok’) < $transfer = $apirone->transfer($user_id, $notes[‘currency’], $notes[‘address’], $notes[‘amount’]); if(isset($transfer[‘message’])) < $data[‘text’] = ‘Message from Apirone:’. PHP_EOL. ‘*’.$transfer[‘message’].’*’ .PHP_EOL. ‘Operation cancelled.’; . $this->conversation->stop(); > else < $data[‘text’] = ‘Transfer successfully complete.’.PHP_EOL. ‘Transactions:’. PHP_EOL ; foreach ($transfer[‘txs’] as $tx) < $data[‘text’].= $tx .PHP_EOL. $apirone->explorerUrl($notes[‘currency’], $tx).PHP_EOL; >; > > . $result = Request::sendMessage($data); $this->conversation->stop(); break; > return $result;

Создаем StartCommand.php И в нем при первом обращении генерируем данные для нашей базы данных

$message = $this->getMessage(); $user_id = $message->getFrom()->getId(); $apirone = new ApironeWallet; $apirone->createWallets($user_id); return $this->replyToChat( ‘Welcome to Apirone wallet bot! You are ready to use BTC,BCH,DOGE and LTC wallets right now’ . PHP_EOL . ‘Type /menu to start using it now!’ );

В корне проекта создаем callback.php . Здесь будет приниматься колбэк от процессинга:

require_once __DIR__ . ‘/vendor/autoload.php’; use LongmanTelegramBotRequest; use ClassesApironeApironeWallet; $config = require __DIR__ . ‘/config.php’; $telegram = new LongmanTelegramBotTelegram($config[‘api_key’], $config[‘bot_username’]); $apirone = new ApironeWallet; $telegram->enableMySql($config[‘mysql’]);; $apironeData = file_get_contents(‘php://input’); if ($apironeData) < $params = json_decode($apironeData, true); // check your secret code if ($params[«data»][«secret»] !== $config[‘apirone_secret’]) die(); $user_id = $params[«data»][«user_id»]; $input_address = $params[«input_address»]; $input_transaction_hash = $params[«input_transaction_hash»]; $value_in_satoshi = $params[«value»]; $wallets = $apirone->getWallets($user_id); foreach ($wallets as $wallet) < if($wallet[‘wallet_id’] === $params[‘wallet’]) < $currency = $apirone->getCurrencyById($wallet[‘currency’], true); > > //Save unconfirmed transactions and data to your Database. $data[‘chat_id’] = $user_id; $data[‘parse_mode’] = ‘markdown’; if ($params[«confirmations»] < 2 ) < $data[‘text’] = ‘*’.strtoupper($currency[‘name’]) .’ wallet*: ‘. PHP_EOL . «Transaction «. $input_transaction_hash . PHP_EOL. ‘Waiting *’. number_format($value_in_satoshi/pow(10, $currency[‘units-factor’]), 8, ‘.’, »). strtoupper($currency[‘name’]) .’*’. PHP_EOL . $params[«confirmations»].’ of 2 confirmations received’. PHP_EOL . $apirone->explorerUrl($currency[‘name’], $input_transaction_hash); > if ($params[«confirmations»] >= 2) < $balance = $apirone->getBalance($user_id, $user_id, $params[‘wallet’]); $data[‘text’] = ‘*’.strtoupper($currency[‘name’]) .’ wallet*: ‘. PHP_EOL . «Transaction «. $input_transaction_hash . PHP_EOL. ‘Payment successfully received!’. PHP_EOL .’Amount: *’. number_format($value_in_satoshi/pow(10, $currency[‘units-factor’]), 8, ‘.’, »). strtoupper($currency[‘name’]) .’*’. PHP_EOL. ‘Current balance:’. PHP_EOL . $balance . PHP_EOL. $apirone->explorerUrl($currency[‘name’], $input_transaction_hash); echo «*ok*»; > return Request::sendMessage($data);

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

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

Источник: unetway.com

Рейтинг
( Пока оценок нет )
Загрузка ...