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

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

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


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


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


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

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


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


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

Лого бота Телеграм

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


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


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

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

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

Доменное имя сервера в админке MyChat

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

Настройка HTTPS для WEB-сервера MyChat


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


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

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

Токен бота Телеграм

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

Подключение бота Телеграм на сервере MyChat

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

Лог ошибок подключения бота Телеграм

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

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


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


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

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

Скрипт для веб-хука Телеграм в MyChat

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


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


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

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

Пользователь бота Телеграм

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

Подключение пользователя к боту Телеграм


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


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

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

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

Скрипт для отпраки сообщений из Nелеграма в MyChat

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

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


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


Чтобы ответить из Telegram человеку, который прислал нам сообщение, надо сделать длинный тап на сообщении и выбрать "Ответить". Сообщение ведь приходит от бота, а не от конкретного человека.

Получается полноценная двусторонняя связь:

Ответ в Telegram

Сообщение из Telegram в MyChat:

Сообщение из Telegram в MyChat


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


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

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