Роботы, плагины и скрипты к чату MyChat. Разработка альтернативных клиентов и различных утилит. Технические вопросы по программированию, замечания и предложения по развитию API
Аватара пользователя
Ox1
Ку!
заинтересовала функция Telegram Bot, но не получилось активировать.
сервер при настройке возвращает ошибку "Result:{"ok":false,"error_code":400,"description":"Bad Request: bad webhook: HTTPS url must be provided for webhook"}"
что было сделано:
- был создан бот в Telegram, получен token
- включена интеграция в настройках сервера и прописан token
при нажатии "Подключить Bot" возникает вышеописанная ошибка

сервер установлен за NAT на стандартных портах (web порт 8081), в настройка прописывал внешний ip и пробрасывал порты на роутере, картина не менялась.
пробывал повесить web сервер на порт 8443 и пробрасывал данный порт, ошибка осталась (в документации telegram bot есть описание "На текущий момент отправка обновлений через вебхуки доступна только на эти порты: 443, 80, 88, 8443"). при стандартных настройка формируется webhook следующего вида (Webhook: http://XX.XX.XX.XX:8081/rest/Telegram/<token>/

как настраивается данный функционал?
Аватара пользователя
Андрей Раков
Добрый день.

Bad Request: bad webhook: HTTPS url must be provided for webhook

Для работы с телеграмом нужно включить шифрование HTTPS для веб-сервера, но тут есть один нюанс, у вас должен быть домен и сертификаты для него.

Начнем с домена, он у вас есть?
Аватара пользователя
Ox1
Домен отсутствует. Можно ли использовать самоподписанные/стандартные сертификаты?
Аватара пользователя
Андрей Раков
К сожалению самоподписные он не может проверить и не принимает.

Вот сервис, которым я воспользовался для создания сертификата для нашего сервера: https://zerossl.com/usage.html

В результате он создает сертификаты от Let's Encrypt.

Короткая инструкция:

1) делаем любой домен для вашего внешнего адреса (не уверен, что это 100% нужно, но без домена пока не проверял), можно сделать бесплатный;

2) качаем генератор: https://github.com/do-know/Crypt-LE/rel ... 3/le32.zip (зеркало на нашем сайте — https://nsoft-s.com/files/le/le32.zip);

3) настраиваем доступ из интернета к вашему веб-серверу;

4) создаем папку "C:\Program Files (x86)\MyChat Server\node\server\www\lobby\.well-known\acme-challenge"

5) запускаем приложение из архива:
Код: Выделить всё
le32.exe --key account.key --csr mydomain.csr --csr-key mydomain.key --crt mydomain.crt --domains "ИМЯ_ВАШЕГО_ДОМЕНА" --path "C:/Program Files (x86)/MyChat Server/node/server/www/lobby/.well-known/acme-challenge"  --generate-missing --unlink --live

6) надеемся что все получится;

7) берем созданные сертификаты mydomain.key и mydomain.crt (валидны 90 дней, дальше нужно их обновлять);

8) заходим в админку, раздел "Настройки" - "Веб-сервисы", ставим галочку "Использовать шифрование", нажимаем на кнопку "Свои", выбираем "публичный ключ" — mydomain.crt, а "приватный ключ" — mydomain.key;

9) сохраняем, перезагружаем и ожидаем запуска веб-сервера с шифрованием, в адресной строке должен быть HTTPS;

10) теперь возвращаемся к веб-хуку телеграма и регистрируем его.

Подробно про генератор ключей: https://zerossl.com/usage.html
Аватара пользователя
Ox1
спасибо!
с доменом не много перепутал. Домен в виде Active Directory отсутствует =) доменное имя присутствует. тогда получается можно сформировать ssl сертификаты для домена и использовать их
Аватара пользователя
Ox1
сразу возникает вопрос безопасности открытого web сервера, так как он на старте предлагает сервисы и администраторскую панель. можно ли закрыть доступ до всех сервисов за исключением необходимого для работы бота?
Аватара пользователя
Андрей Раков
Добавьте в фильтры IP адреса, с которых можно входить в админку.
chrome_2017-06-14_11-49-15.png
chrome_2017-06-14_11-49-15.png (195.36 КБ) Просмотров: 245
Аватара пользователя
Ox1
Спасибо! подключил webhook, осталось разобраться как его использовать и сопоставлять пользователей.

делал по инструкции, добалю пару моментов:
- создал дополнительный поддомен
- настроил nat на маршрутизаторе с 80 на 8081 порт, иначе при генерации сертификата скрипт не может проверить владельца домена, запрос приходит на стандартный порт
- директорию под windows создавать через "mkdir -p C:/Program Files (x86)/MyChat Server/node/server/www/lobby/.well-known/acme-challenge/", иначе каталог с точкой создать не получится.
- перевёл WebServer на 8443 порт, и подключил сертификаты

после этого webhook активировался
Аватара пользователя
Алексей Пикуров
Отлично.
осталось разобраться как его использовать и сопоставлять пользователей

По логике работы вам поможет свежая статья "Интеграция офисного чата MyChat и мессенджера Telegram".

Если будете что-то непонятно — создавайте новую тему, там поможем.
Аватара пользователя
Андрей Раков
Хочу уточнить, вы создали сертификаты, как я описал или у вас они уже были?
Аватара пользователя
Ox1
Сертификаты создал по вашей инструкции.

Дабы не плодить много тем. С указанным внешним адресом в виде IP не приходила регистрация от бота Telegram в MyChat (может были задержки), установил внешний адрес в виде домена, клиент зарегистрировался, но я не могу его сделать активным. После установки статуса активен, не выходит кнопки сохранить, а если сделать активным, потом подключить бота и сохранить настройки статус клиента не активируется.

Предлагаю ссылку на статью обновить в новостях:
https://nsoft-s.com/news/1154-mychat-6- ... onferenciy

ссылка в новости просто указывает на форум.
Аватара пользователя
Андрей Раков
После подключения бота, когда активируете пользователей, никакой кнопки "Сохранить" не должно быть. Вы должны активировать пользователя и привязать к телеграм-акаунту внутреннего пользователя и все.

Насчет ссылки — обновите страницу, там давно уже ссылка на статью.
Аватара пользователя
Ox1
Разобрался спасибо!
если сначала выбрать клиента, а потом активировать, статус не сохранялся
если активировать, а потом выбрать клиента, всё нормально
Аватара пользователя
Андрей Раков
Похоже в сохранении активации и пользователя есть какой-то баг, так как не имеет значение последовательность, разберемся...
Аватара пользователя
Алексей Пикуров
Поправили, обновите сервер.
Аватара пользователя
Ox1
Обновил поверх текущую установку, получил ошибку на запуске
1.jpg
1.jpg (36.43 КБ) Просмотров: 219

при попытке закрыть приложение
2.jpg
2.jpg (22.1 КБ) Просмотров: 219


ещё выходила ошибка с 00000000 в адресах

переустановил предыдущий билд, запустилось в штатном режиме, надеюсь с базой ничего не произошло
Аватара пользователя
Алексей Пикуров
Баг репорт можете дать?
Аватара пользователя
Алексей Пикуров
Обновите сервер, дистрибутивы пересобраны и перезалиты.
Аватара пользователя
Ox1
К сожалению в тот момент не подумал об этом (в принципе не ориентируюсь как его снимать), быстрее перенакатил предыдущий билд.
При подобных ситуациях постараюсь учесть баг репорт.
Аватара пользователя
Станислав Ц.
Добрый день!
2) качаем генератор: https://github.com/do-know/Crypt-LE/rel ... 3/le32.zip (зеркало на нашем сайте — https://nsoft-s.com/files/le/le32.zip);

А у меня вот на этом этапе, почему-то затык.. Не распаковываются архивы
FvG4KNZvQHGzJJ8OvwBPNw.png
FvG4KNZvQHGzJJ8OvwBPNw.png (19.65 КБ) Просмотров: 191
Аватара пользователя
Алексей Пикуров
Здравствуйте, Станислав.

Я изменил ваше сообщение, вставил картинку в пост, пожалуйста, вставляйте картинки, как вложения, не ставьте ссылки на внешние хранилища.

ZIP - это стандартный тип архива, поддерживается Windows, WinRar для него не нужен. Правая кнопка мышки на архиве, "Извлечь всё".
Аватара пользователя
Станислав Ц.
По поводу картинок все понял, Алексей, спасибо..
Но по поводу архива, тут не в архиваторе суть, а в том, что он скачивается битым..
Хотел узнать, только у меня ли так? У Вас он нормально извлекается, если сейчас скачать?
Вложения
Screenshot_3.png
Screenshot_3.png (45.14 КБ) Просмотров: 191
Аватара пользователя
Алексей Пикуров
Да, отлично качается, я только что проверил.
Размер — 8 141 244 байт.
SHA1: fe51690f21fc5f3037e1bfa97be558885bea137f
Аватара пользователя
Станислав Ц.
Да, спасибо, дома все скачалось тоже без проблем.. Странненько. Видимо антивирь на шлюзе архив портил. Ладно, буду продолжать дальше мучиться :)
Аватара пользователя
Андрей Раков
Добрый день.

Обновите пожалуйста сервер чата, иначе у вас может оказаться сборка, где я допустил ошибку в активации пользователя через команду "/start" боту:

https://nsoft-s.com/files/mcserv.zip