Интеграция офисного чата MyChat и мессенджера Telegram

  1. Для чего связывать MyChat и Telegram?
  2. Как это работает?
  3. Создаём бота в Telegram
  4. Внешний IP адрес + HTTPS в MyChat
  5. Включаем интеграцию в MyChat
  6. Включаем скрипт для веб-хука в MyChat
  7. Подписываем Telegram-пользователя на сообщения от бота
  8. Как теперь отправить сообщение из MyChat в Telegram?
  9. Что делать, если не получилось?

1. Для чего связывать MyChat и Telegram?


Чтобы сделать автоматическое уведомление сотрудникам, которых нет в офисе. Для рассылок сообщений вашим клиентам или поставщикам по каким-то событиям. Уведомить администратора о проблемах доступа к серверам. Вариантов много, каждая компания найдёт своё применение.


2. Как это работает?


Для связи используется бот Telegram, который вы себе создаёте сами. В MyChat Server, в разделе интеграций включается связка MyChat Telegram, нужные вам пользователи Telegram подписываются на сообщения этого бота прямо из мессенджера.

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


3. Создаём бота в Telegram


Официальная инструкция здесь. Пройдёмся по шагам.

Для начала нужно из Telegram приложения написать роботу @BotFather, дальше он вас проведёт за руку. Придумайте уникальное имя для своего бота, его будете знать только вы и ваши пользователи:


4. Внешний IP адрес + HTTPS в MyChat


Чтобы заработала интеграция с Telegram, нужно соблюсти два условия:

а) ваш WEB-сервер MyChat должен быть доступен из Интернета. Для этого нужен внешний «белый» IP адрес. Что это такое и как настроить?

Пропишите свой внешний IP (либо доменное имя) в разделе админки "Настройки" -> "Сетевые настройки" -> "IP адрес или Host сервера для внешних клиентов":

б) ваш WEB-сервер MyChat должен использовать сертификаты для шифрования трафика по HTTPS. Сертификаты должны быть выданы для вашего домена, самоподписные не доверенные сертификаты использовать нельзя. Шифрование HTTP включается в разделе админки MyChat Server "Настройки" -> "WEB-сервисы":


5. Включаем интеграцию в MyChat


После того, как вы создали своего Telegram-бота, включите интеграцию с Telegram в админке сервера MyChat ("Инструменты" -> "Интеграция" -> "Telegram").

Скопируйте токен бота (строка вида "bot123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11", её отправляет вам @BotFather в ответном сообщении), и вставьте его в поле "Ключ авторизации (токен)":

Нажимаем на кнопку «Подключить бота». Если все "Ок", то MyChat Server автоматически зарегистрирует веб-хук в Telegram:

Если же есть какие-то проблемы — читаем и анализируем лог ошибок (он появится после попытки связи с ботом):

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

Для проверки вашего бота перейдите по ссылке https://api.telegram.org/bot(сюда подставьте токен вашего бота, без скобочек)/getWebhookInfo, если в результате нет параметра "last_error_message", то скорее всего все в порядке и Telegram-Бот сможет отправлять вам сообщения.


6. Включаем скрипт для веб-хука в MyChat


Тут всё просто, нам надо включить скрипт обработки входящих сообщений от бота Telegram.

Заходим в раздел "Инструменты" -> "Скрипты" -> "Event scripts" -> "OnRequestByREST" и включаем скрипт "Telegram" (галочка напротив названия в дереве):


7. Подписываем Telegram-пользователя на сообщения от бота


Открываем приложение Telegram на своем смартфоне и в поиске пишем название вашего созданного бота. Открываем с ним диалог и нажимаем кнопку "Start", либо просто пишем ему в приват текст "/start", чтобы он вас зарегистрировал на сервере MyChat:

Как только Telegram-пользователь подпишется на сообщения от бота, он появится в списке:

Вы должны включить его и назначить ему реального пользователя MyChat, вот так:


8. Как теперь отправить сообщение из MyChat в Telegram?


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

Нужно это сообщение продублировать в Telegram нужному человеку. Как это сделать?

Воспользуемся событием OnPrivateMessage и напишем такой скрипт:

Если получатель сообщения зарегистрирован в списке пользователей в разделе интеграции с Telegram, MyChat отправит ему копию приватного сообщения на смартфон.

Скачать скрипт


9. Что делать, если не получилось?


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

Служба поддержки