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



Доброго дня. Мене звати Андрій.
Влітку минулого року я опублікував проект і статтю "Чат-помічник на сайт за допомогою Telegram за 15 хвилин". Ідея проекту полягала в тому, щоб реалізувати на сайті спливаючий Чат-помічник, бэкэндом для якого (чата) був би набирає популярність месенджер Telegram.

На подив проект досить швидко став набирати зірки GitHub, а я — отримувати листи подяки і прохання про допомогу в налаштуванні від людей зі всього світу. Люди не могли запустити скрипт на своїх хостингах: то set_time_limit(0) не підтримується, то 503 помилка, то шляху не правильно вказані.
Друга версія скрипта встановлюється набагато простіше і працює на основі WebHooks.

>>>> Посилання на репозиторій GitHub.

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


Що нового

Тепер чат працює на основі WebHooks

Сервер Telegram сам буде надсилати нові повідомлення на Ваш сервер.
Вічно працює у фоні скрипт-сервер для Long Poll запитів до сервера Telegram більше не потрібен. Але зате тепер потрібен HTTPS (це політика Telergam). Сертифікат можна купитьзробити безкоштовний StartSSL або виготовити самопідписаний.

Для тих, хто не хоче шукати, команди для терміналу:
Як створити 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-install.php — це інсталятор. Він створить потрібні теки, розпакує JS, CSS і два PHP файлу.
Тут же ви зможете згенерувати JS код чату, який потрібно вставити на сторінку.
<b class=«spoiler_title>Увага: скрипти в інсталяторі закодированны в base64Оскільки для багатьох власників сайтів на Wordpress/Joomla, base64 асоціюється з вірусними ін'єкцій — заздалегідь запрошую всіх параноїків побоюються вивчити вміст скриптів, закодованих в base64 (наприклад за допомогою цієї утиліти).


Спливаючий і вбудований чати, стилізація

Чат можна стилізувати не залазячи в CSS. Колір рамки, фону, шрифт можна налаштувати прямо з інсталятора.

Ще чат підтримує два режими відображення. Його можна вбудувати в будь-який інший HTML елемент або "приклеїти" одному з кутів екрану. Чат може відкривати при натисканні на стандартний лейбл, а може при натисканні на довільний HTML елемент

Ви також можете змінити всі написи («Почати чат», «Введіть ваше ім'я», «Прикріпити файл» та інші).

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

Тепер клієнт і менеджер можуть обмінюватися файлами (фото і документами). Файли зберігаються на сервері Telegram і не займають місце на Вашому хостингу.


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 (наприклад:
    <b>https:</b>//mysite.ru/telegram-site-helper/telegram-site-helper-install.php
     
    
    ).
    Ви повинні побачити наступне:
  6. Виберіть Мову та натисніть «Почати установку»
  7. Придумайте пароль для авторизації менеджерів і введіть його у відповідне поле (цей пароль менеджер введе одні раз для авторизації у Телеграм бота)
  8. Отримаєте токен для Бота у @BotFather і вставте (токен) у відповідне поле:
  9. Виберіть, де зберігати дані: SQLite або в MySQL. Якщо в MySQL — налаштуйте доступ.
  10. Якщо ви використовуєте самопідписаний сертифікат — вкажіть повний шлях до нього (його потрібно відправити на сервер Telegram)
  11. Натисніть "Перевірити налаштування і встановити Telegram Site Helper"
  12. Якщо установка пройшла успішно Ви повинні побачити наступне:
  13. Відкрийте Telegram і напишіть своєму боту "/login 1234" (де 1234 — пароль менеджера). Якщо установка пройшла успішно, бот авторизує Вас.
  14. Переходимо на вкладку "Генератор віджета"

  15. Налаштовуємо віджет і копіюємо код на сайт. Всі.
  16. Якщо сподобався проект — можна зробити Donate.


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


В кінці статті висловлюю подяку команді Telegram за платформу для Ботів. Вкрай корисна річ.
Спасибі.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.