Автор: Владислав Суседко
В современном мире бизнеса автоматизация и быстрый обмен информацией играют ключевую роль. Интеграция различных систем, таких как CRM, ERP и мессенджеры, позволяет оптимизировать рабочие процессы и повысить эффективность взаимодействия с клиентами.
В этой статье описан процесс настройки интеграции Telegram бота с 1С через API. Telegram, как популярный мессенджер с открытым API, предоставляет широкие возможности для создания интерактивных ботов, которые могут автоматизировать задачи, отвечать на вопросы клиентов, принимать заказы и многое другое. Интеграция Telegram бота с 1С позволит вам расширить каналы коммуникации с клиентами, повысить оперативность реагирования на запросы и улучшить качество обслуживания.
Мы рассмотрим технические аспекты интеграции Telegram бота с 1С через API. Мы не будем углубляться в специфику кода 1С или функциональную реализацию бота, а сосредоточимся на общих принципах взаимодействия, необходимых библиотеках и протоколах обмена данными.
Вопросы, на которые ответить данная статья :
· Что понадобится для реализации?
· Как выпустить самоподписанный сертификат?
· Как настроить и выполнить веб-публикацию по https-протоколу через IIS?
· Как установить связь с Telegram API при помощи Webhookи какие могут быть ошибки?
Сразу выявим, что необходимо иметь для того, чтобы настроить интеграцию с Telegram:
ü Статический IP. Обязателен для веб-публикации;
ü Среда, в которой она будет выполнена (IIS или Apache). В статье использован IIS;
ü OpenSSL;
ü Информационная база 1С и http-сервис в ней;
ü Telegram бот и его токен.
Выпуск самоподписанного сертификата
Для SSL-соединения обязательно использование SSLсертификата. Лучшим решением будет выпустить его платно в специализированном центре. Основные преимущества этого варианта: высокий уровень доверия к веб-странице и безопасность, но недостаток - понадобится зарегистрированный в сети домен, то есть не получится выпустить сертификат на IP, только на домен, а это дополнительные затраты и трудоемкость.
Телеграм позволяет работать с самоподписанными сертификатами, поэтому в данной статье будет разобран именно этот способ.
Плюсы:
· Бесплатно;
· Есть возможность выпустить как на конкретный IP, так и на домен;
· Срок действия указываем самостоятельно;
· Быстрый выпуск, если знать алгоритм действий.
Минусы:
· Низкий уровень доверия к веб-странице;
· Безопасность.
Для выпуска самоподписанного сертификата потребуется наличие установленного OpenSSL. Весь процесс будет происходить в командой строке.
1. Для начала создаем каталог в удобном месте, куда будут сохраняться файлы сертификата. К примеру - C:\SSL\test.
2. В OpenSSL , используя команду cd, переходим в каталог:
сd C:\SSL\test
3. Вводим команду:
openssl req -newkey rsa:2048 -sha256 -nodes -keyout test.key -x509 -days 365 -out test.pem -subj "/C=RU/ST=Orenburg/L=Orenburg/O=Test/CN=99.99.999.999"
Основные аргументы:
-days– срок действия сертификата;
-keyout– сохраняет закрытый ключ сертификата в файл, в формате .key;
-out– сохраняет открытый ключ, в формате .pem;
-subj– данные сертфиката, где:
С- Код страны. Необязательный параметр. Длина 2 символа;
ST- Название региона/области/края/республики. Необязательный параметр;
L- Название города. Необязательный параметр;
O- Название организации. Необязательный параметр;
OU- Название отдела. Необязательный параметр;
CN- Имя сертификата. Указывать либо доменное имя, либо IP. Обязательный параметр. Максимальная длина 64 символа;
emailAddress– Электронная почта. Необязательный параметр. Максимальная длина 40 символов.
4. Далее преобразуем сертификат в вид подходящий для IIS:
openssl pkcs12 -inkey test.key -in test.pem -export -out test.pfx
-inkeyи -in - выбираем ранее созданные файлы test.keyи test.pem
-out– сохраняет сертификат в формате .pfx
5. После ввода команды нужно ввести и далее подтвердить пароль.
Если откроем каталог через Проводник, то увидим что появилось три файла.
На этом выпуск самоподписанного сертификата завершен, следующий этап – настройка веб-сервера.
Настройка веб-сервера IIS
После выпуска самоподписанного сертификата, можно приступать к настройке IIS под https-протокол. Сначала находимо добавить созданный сертификат, для этого:
1. Находим и открываем в IIS функцию Сертификаты сервера;
2. Импортировать;
3. Выбираем сертификат из каталога куда сохраняли его;
4. Вводим пароль от него и нажимаем ОК.
Далее необходимо создать Привязку у веб-сайта:
1. Default Web Site – Привязки – Добавить
2. В открывшемся окне указать протокол https, порт, под которым будет работать веб-публикация, и сертификат.
На текущий момент Телеграм APIподдерживает работу WebHookчерез 443, 80, 88, 8443 порты. После заполнения необходимых полей нажимаем ОК.
Если нажать на кнопку Вид, то откроется сам сертификат. В нем мы можем посмотреть информацию, которую мы указывали при выпуске (Вкладка Состав – поле Субъект) и увидеть, что нет доверия этому сертификату.
Поэтому необходимо его установить в хранилище Доверенных сертификатов:
В каталоге с файлами сертификата открываем .pfx– вводим пароль – Поместить все сертификаты в следующее хранилище – Доверенные корневые центры сертификации – Готово.
При следующем открытии сертификата можно увидеть, что ошибка ушла.
Веб-публикация базы.
После того как провели основные настройки веб-сервера, можно приступить к публикации базы 1С. Сам процесс довольно типовой, поэтому концентрировать внимание на этом не будем.
1. Открываем 1С от имени администратора в режиме Кофнигуратор;
2. Администрирование – Публикация на веб-сервере;
3. Здесь дать наименование публикации (обязательно использовать только латинские символы) и проверить правильно ли указан Каталог (если используются стандартные настройки и не создавался отдельный веб-сайт в IIS, то менять его не надо);
4. Перезапустить веб-сервер.
На этом этапе база опубликована и работает по https. Проверить это можно открыв ее в браузере, через localhost, внутренний IPили внешний IP. Внешний IPможет не открываться с вашей локальной сети, пугаться не надо. При необходимости можно проверить с другого устройства, например, со смартфона.
В адресной строке можно увидеть, что ссылка прописана через https. Также при открытии будет предупреждение о небезопасном подключении, связано это с тем, что сертификат самоподписанный.
Во всех современных браузеров реализована защита, чтобы не допустить открытие сомнительных страниц, но так как это публикация не является сторонним/неизвестным нам источником - можно сделать исключение и продолжить открытие. На Телеграм APIэто не повлияет, так как доверие сертификату будет выполнено при установке WebHook’а.
(В случае использования платного сертификата, подобного предупреждения не будет).
База опубликована и работает, но нет того, к чему будет обращаться Телеграм Бот. Для наглядности статьи, будет использоваться максимально простое расширение 1С с http-сервисом, в котором прописаны только get и postзапросы.
Чтобы имелся доступ к этому расширению по интернету, его необходимо включить в веб-публикацию. Сделать это можно...