Telegram BOT
Теперь можно создать бота (написать программу), который будет отвечать на Ваши вопросы, выполнять определнные команды и все это в окне переписки мессенджера Telegram.
Именно на основе мессенджера Telegram и его API для ботов будет работать бесплатный, безлимитный чат-помощник-на-сайт.
Общая схема идеи — на картинке:
Вот так это происходит:
1. Пользователи на сайте пишут в чат
2. Сообщение это улетает на Ваш сервер
3. Оттуда Telegram-бот пересылает его нужному менеджеру
4. Менеджер отвечает через Telegram
5. Бот отправляет сообщение обратно в чат_на_сайте
Реализация
Итак, для запуска понадобится:
1. Сервер, VPS или хостинг, на котором есть актуальный PHP, поддержка SQLite и возможность сделать set_time_limit(0) (т.е. сделать работу php скрипта не ограниченной по времени)
2. Приложение Telegram (на смартфоне или компьютере)
3. Базовые знания PHP
Внимание! Вы запускаете этот код на свой страх и риск! Я потратил на него несколько часов и возможно там полно ошибок!
План действий такой:
0) Скачиваем с ГитХаба исходники:
https://github.com/Surzhikov/TelegramSiteHelper
1) Регистрируем нового бота в Telegram.
Для этого нужен только смартфон и 2 минуты.
Заходим в Telegram, добавляем пользователя @BotFather и шлем ему команду "/newbot"
Далее по инструкции: придумываем имя, юзернейм, пишем about и загружаем фотку.
Результатом всего должен получиться API Key с помощью которого мы будем работать с BotAPI.
У меня получилось вот так:
(Сообщение в котором фигурирует мой API Key я удалил)
2) Полученный ключ вставляем в TelegramBotConfig.php.
Там же указываем любой придуманный Вами пароль для регистрации новых менеджеров.
3) Заливаем все на свой сервер
4) Запускаем нашего бота — фоновый процесс getUpdates.php
Он должен работать бесконечно, поэтому рекомендую поставить его в автозагрузку сервера.
Для надежности можно поставить запуск скрипта в crontab каждую минуту.
Скрипт будет запускаться в единичном экземпляре, все повторные запуски сразу же завершатся.
5) Регистрируем нового менеджера
Со смартфона менеджера заходим в телеграм и добавляем нашего нового бота (того, которого Вы только что создали)
Пишем ему команду: «/newmanager пароль_для_менеджеров». В ответ получаем приветствие.
Операцию повторяем нужное количество раз, для каждого менеджера.
Если на данном этапе Вы не получили ответ от Бота — значит что-то не работает!
6) Проверяем
Переходим на страницу index.html (то есть заходим на адрес mysite.ru/index.php, а не открываем локально).
Там находится небольшой, на скорую руку сверстанный чат.
Если отправить сообщение в этот чат, бот выберет случайного менеджера и перешлет ему это сообщение.
Вот здесь интересный момент:
Клиентов (покупателей) может быть много, а менеджер — один.
Менеджер общается с клиентами посредством Telegram-бота.
Если одновременно два (или больше) клиентов написали сообщение, а менеджер отвечает им по очереди, Telegram-боту нужно как-то указать, какому из клиентов отправить ответ.
Для этого я сделал команду «/answer_№ЧАТА». После отправки этой команды все письма менеджера уходят в нужный веб-чат.
Минусы, плюсы, что можно доделать
Минусы
1. Сейчас чат сделан «на скорую руку», чтобы скорее запустить в своем проекте. Есть много лазеек, с помощью которых например можно писать в чужой чат и подглядеть чужую переписку.
2. Сейчас эти проблемы меня не тревожат, потому как в чате-помощнике на сайте у нас не принято передавать важную и секретную информацию.
3. Когда менеджер один а клиентов много — можно запутаться, кому отвечаешь.
4. … Буду дополнять из комментариев
Плюсы:
1. Это работает!
2. Бесплатно навсегда и на любое количество менеджеров
3. Не нужно лишних приложений, только телеграм, который есть для всех популярных платформ
4. Можно переписать и стилизовать чат так, как Вам хочется.
5. Telegram работает очень быстро
6. … Буду дополнять из комментариев
Что можно сделать:
1. Защита от дурака и работа над безопасностью
2. Умную систему распределения сообщений между менеджерами (сейчас бот направляет сообщение случайному менеджеру)
3. Автоматические ответы от бота, когда менеджер долго молчит
4. Добавить имя и фото менеджера, который отвечает в чате
5. … Буду дополнять из комментариев
Спасибо за внимание.
UPDATE 23.08.2015 —Полностью переписал бота, теперь работает более стабильнее, теперь можно выбирать между sqlite и mysql
В планах:
— админ-панель со статистикой
— работа через webhook
https://github.com/Surzhikov/TelegramSiteHelper