Комментарии, вопросы, пожелания приветствуются.
Буду рад ответить на ваши вопросы: alimbekovr@hotmail.com.

Telegram бот — Виртуальный помощник для банков

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

Бот в течении нескольких секунд может ответить на простейшие вопросы клиентов о курсах валют, ближайших банкоматах, офисах банка и многом другом. Попробовать функционал бота вы можете добавив @sberbankkztestbot в Telegram.

Что сейчас реализовано

  • Местоположение ближайшего отделения или банкомата
  • Курс валют
  • Информация для клиента

Технологии

  • Язык программирования — PHP
  • База данных — MySQL
  • API Telegram

Немного технических деталей.
Структура Базы данных крайне простая:

Telegram бот - Виртуальный помощник для банков

Таблица message_queue — содержит так сказать очередь сообщений для каждого чата.
Таблица markers — содержит контактные данные и координаты (долгота и широта) отделения банка.
Таблица markers_schedule — содержит расписание работы отделений по дням.
Таблица text — содержит заголовок и текст факты или совета, поле type определяет тип текста.
Таблица atm — содержит данные и координаты (долгота и широта) банкоматов.

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

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

$emoji = array(
    'thumbsup' => json_decode('"\uD83D\uDC4D"'),
    'smilingface' => json_decode('"\uD83D\uDE03"'),
    'whiteheavycheckmark' => json_decode('"\u2705"'),
    'envelope' => json_decode('"\u2709"'),
    'smiling' => json_decode('"\uD83D\uDE0A"'),
    'star' => json_decode('"\u2B50"'),
    'telephone' => json_decode('"\uD83D\uDCDE"'),
    'officebuilding' => json_decode('"\uD83C\uDFE2"'),
    'atm' => json_decode('"\uD83C\uDFE7"'),
    'exchange' => json_decode('"\uD83D\uDCB1"'),
    'charttrend' => json_decode('"\uD83D\uDCC8"'),
    'paperclip' => json_decode('"\uD83D\uDCCE"'),
    'clock' => json_decode('"\uD83D\uDD52"'),
    'calendar' => json_decode('"\uD83D\uDCC5"'),
    'banknoteusd' => json_decode('"\uD83D\uDCB5"'),
    'banknoteeuro' => json_decode('"\uD83D\uDCB6"'),
    'ok' => json_decode('"\uD83D\uDC4C"'),
    'idea' => json_decode('"\uD83D\uDCA1"'),
    'video' => json_decode('"\uD83D\uDCF9"')
);

Как видим каждая emoji обладает уникальным кодом типа \uD83D\uDC4D. Как его найти?
Для этого я воспользовался двумя сайтами. На сайте я находил необходимый мне emoji.

Берем значение из столбца Unicode. Например U+1F601. Берем значение после +, и вставляем его в URL ttp://www.fileformat.info/info/unicode/char/1F601/index.htm Находим в таблице Encodings поле C/C++/Java source code это и будет код вашей emoji.

Возможности
Интерфейс этого бота точная копия бота Сбербанка России @SberbankBot. На мой взгляд, очень удобное меню. При желании вы можете достаточно легко его изменить.

Меню бот Telegram

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

Поиск ближайшего отделения бот Telegram

Вывод курсов валют
Вывод курса валют осуществляется с сайта Национального Банка Республики Казахстан.

Вывод курсов валют бот Telegram

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

Поиск ближайшего банкомата бот Telegram

Факты и советы

Факты и советы бот Telegram

Планы по развитию

  • Вывод котировок драг. металлов, нефти
  • Быстрые команды для конвертации (пример: 5000 рублей)
  • Отправки обратной связи
  • Скрипты ответы по продуктам (замена call center по часто возникающим вопросам)
  • Разработка интерфейса для заполнения и редактирования базы данных
Поделиться
Отправить
Запинить
2 комментария
condor

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

Алимбеков Ренат

Надеюсь пригодится

Андрей Самохин

Программа отличная. На самом деле интерфейс подойдет не только для банков. Его можно использовать любой компании с сетью офисов. Взял код, на основании него хочу сделать поиск магазинов и услуг сервиса в своем районе. Достаточно добавить пару полей в SQL, определяющих направленность магазина (продуктовый, хозяйственный, аптека) или сервиса (Салон красоты, услуги быта). У нас новый район и в чате телеграма уже свыше 500 человек, магазины находятся на первых этажах жилых домов и ротация у них очень большая. Подобный бот был бы довольно полезен. В планах добавить систему «отзывов» для каждого магазина. Фиксация ID пользователя и невозможность накрутки (оставить множество отзывов, можно только поменять свой) позволит рассчитывая среднее значение довольно сносно и ранжировать магазины по степени привлекательности. Ну и всякие другие задумки попробуем накрутить.

Алимбеков Ренат

Классная идея
Я рад что мой бот вам пригодился

Ваш комментарий
адрес не будет опубликован

ХТМЛ не работает

Ctrl + Enter
Популярное