- PVSM.RU - https://www.pvsm.ru -

Telegram Site Helper 2.0 — чат помощник для сайта на основе Telegram

Telegram Site Helper 2.0 — чат помощник для сайта на основе Telegram - 1

Здравствуйте. Меня зовут Андрей.
Летом прошлого года я опубликовал проект и статью "Чат-помощник на сайт с помощью Telegram за 15 минут [1]". Идея проекта заключалась в том, чтобы реализовать на сайте всплывающий Чат-помощник, бэкэндом для которого (для чата) был бы набирающий популярность мессенджер Telegram.

На удивление проект довольно быстро стал набирать звезды на GitHub, а я — получать письма благодарности и просьбы о помощи в настройке от людей со всего света. Люди не могли запустить скрипт на своих хостингах: то set_time_limit(0) не поддерживается, то 503 ошибка, то пути не правильно указаны.
Вторая версия скрипта устанавливается намного проще и работает на основе WebHooks.

>>>> Ссылка на репозиторий GitHub [2].

В двух словах, что это такое

image
Для тех, кто не видел прошлую статью, повторюсь. Telegram Site Helper — это набор скриптов (PHP, JS), которые реализуют чат-помощник для Вашего сайта (для того, чтобы Ваши посетители/клиенты могли оперативно задать вопрос в чат Вашему менеджеру). Менеджер получит сообщение в мессендежере Telegram. И там же может ответить. Система подходит для сайтов, где не очень большой поток клиентов. По прежнему есть маленькое неудобство: все сообщения от всех посетителей приходят менеджеру в единый чат. Чтобы направить ответ посетителю, менеджер сперва должен выбрать «подчат», отправив команду /chat_1234, примерно вот так:

Telegram Site Helper 2.0 — чат помощник для сайта на основе Telegram - 3

Что нового

Теперь чат работает на основе WebHooks

Сервер Telegram сам будет присылать новые сообщения на Ваш сервер.
Вечно работающий в фоне скрипт-сервер для Long Poll запросов к серверу Telegram больше не нужен. Но зато теперь нужен HTTPS (это политика Telergam). Сертификат можно купить [3], сделать бесплатный на StartSSL [4] или изготовить самоподписанный.

Для тех, кто не хочет искать, команды для терминала:

Как создать csr-файл для StartSSL

sudo openssl req -nodes -newkey rsa:2048 -keyout apache.key -out apache.csr

Как сделать самоподписанный сертификат

sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout apache.key -out apache.crt

Для установки используется всего один файл.

Telegram Site Helper 2.0 — чат помощник для сайта на основе Telegram - 4
В репозитории лежит всего один файл: telegram-site-helper-install.php — это инсталлятор. Он создаст нужные директории, распакует JS, CSS и два PHP файла.
Здесь же вы сможете сгенерировать JS код чата, который нужно будет вставить на странцу сайта.

Внимание: cкрипты в инсталляторе закодированны в base64

Поскольку для многих владельцев сайтов на WordPress/Joomla, base64 ассоциируется с вирусными инъекциям — заранее приглашаю всех параноиков опасающихся изучить содержимое скриптов, закодированных в base64 (например с помощью этой утилиты [5]).

Всплывающий и встроенный чаты, стилизация

Чат можно стилизовать не залезая в CSS. Цвет рамки, фона, шрифт можно настроить прямо из инсталлятора.
Telegram Site Helper 2.0 — чат помощник для сайта на основе Telegram - 5
Еще чат поддерживает два режима отображения. Его можно встроить в любой другой HTML элемент или "приклеить" к одному из углов экрана. Чат может открывать при нажатии на стандартный лейбл, а может при нажатии на произвольный HTML элемент
Telegram Site Helper 2.0 — чат помощник для сайта на основе Telegram - 6
Вы также можете изменить все надписи («Начать чат», «Введите ваше имя», «Прикрепить файл» и другие).

Передача файлов

Теперь клиент и менеджер могут обмениваться файлами (фото и документами). Файлы хранятся на сервере Telegram и не занимают место на Вашем хостинге [6].
Telegram Site Helper 2.0 — чат помощник для сайта на основе Telegram - 7

JQuery больше не обязательна

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

Работает через Server Side Events либо LongPoll

Чат на сайте теперь может получать обновления от вашего сервера не только с помощью Long Poll запросов, но и с помощью Server Side Event трансляции (она будет работать только на хостингах, где поддерживается set_time_limit(0) и нет проблем с функцией flush())

Как установить

  1. Зайдите на свой сервер/VPS/хостинг по SSH или FTP
  2. Создайте папку (удобнее в корне сайта) и назоваите ее например telegram-site-helper
  3. Сделайте ей chmod (права доступа) хотя бы 0775 (скрипт-инсталлятор создаст там папки и файлы)
  4. Залейте в эту папку telegram-site-helper-install.php
  5. Запустите скрипт через https (например: https://mysite.ru/telegram-site-helper/telegram-site-helper-install.php
    ).
    Вы должны увидеть следующее: Telegram Site Helper 2.0 — чат помощник для сайта на основе Telegram - 8
  6. Выберите Язык и нажмите «Начать установку»
  7. Придумайте пароль для авторизации менеджеров и введите его в соответствующее поле (этот пароль менеджер введет одни раз для авторизации у Телеграм бота)
  8. Получите токен для Бота у @BotFather [7] и вставьте его (токен) в соответствующее поле:
    Telegram Site Helper 2.0 — чат помощник для сайта на основе Telegram - 9
  9. Выберите, где хранить данные: в SQLite или в MySQL. Если в MySQL — настройте доступ.
  10. Если вы используете самоподписанный сертификат — укажите полный путь до него (его нужно отправить на сервер Telegram)
    Telegram Site Helper 2.0 — чат помощник для сайта на основе Telegram - 10
  11. Нажмите "Проверить настройки и установить Telegram Site Helper"
  12. Если установка прошла успешно Вы должны увидеть следующее:
    Telegram Site Helper 2.0 — чат помощник для сайта на основе Telegram - 11
  13. Откройте Telegram и напишите своему боту "/login 1234" (где 1234 — пароль менеджера). Если установка прошла успешно, бот авторизует Вас.
    Telegram Site Helper 2.0 — чат помощник для сайта на основе Telegram - 12
  14. Переходим на вкладку "Генератор виджета"
    Telegram Site Helper 2.0 — чат помощник для сайта на основе Telegram - 13
  15. Настраиваем виджет и копируем код на сайт. Все.
  16. Если понравился проект — можно сделать Donate [8].

Планы на будущее

  • Все же реализовать поддержку LongPoll к серверу Telegram, чтоб обойтись без HTTPs
  • Придумать и сделать: как разделять клиентов на «под-чаты»
  • Доделать перевод на английский язык
  • Голосовой чат
  • Возможность изменить/отключить звук сообщения
  • Умные мысли, которые хабра-пользователи напишут в комментариях

В конце статьи выражаю благодарность команде Telegram за платформу для Ботов. Крайне полезная вещь.
Спасибо.

Автор: Surzhikov

Источник [9]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/php-2/123304

Ссылки в тексте:

[1] Чат-помощник на сайт с помощью Telegram за 15 минут: https://habrahabr.ru/post/264035/

[2] >>>> Ссылка на репозиторий GitHub: https://github.com/Surzhikov/Telegram-Site-Helper-2.0

[3] купить: https://www.google.ru/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=%D0%BA%D1%83%D0%BF%D0%B8%D1%82%D1%8C%20ssl%20%D1%81%D0%B5%D1%80%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%82

[4] StartSSL: https://www.startssl.com

[5] этой утилиты: https://www.base64decode.org/

[6] хостинге: https://www.reg.ru/?rlink=reflink-717

[7] @BotFather: https://telegram.me/botfather

[8] Donate: https://money.yandex.ru/embed/donate.xml?account=4100168691358&quickpay=donate&payment-type-choice=on&mobile-payment-type-choice=on&default-sum=100&targets=%D0%9F%D0%BE%D0%B4%D0%B4%D0%B5%D1%80%D0%B6%D0%BA%D0%B0+%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B0&target-visibility=on&project-name=Telegram+Site+Helper+2%2F0&project-site=https%3A%2F%2Fgithub.com%2FSurzhikov%2FTelegram-Site-Helper-2.0&button-text=01&successURL=https%3A%2F%2Fraw.githubusercontent.com%2FSurzhikov%2FTelegram-Site-Helper-2.0%2Fmaster%2Fthank-you.txt

[9] Источник: https://habrahabr.ru/post/302056/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best