Найти в Дзене
1C:БИЗНЕС РЕШЕНИЯ

Веб-публикация 1С по https-протоколу для Telegram API

Автор: Владислав Суседко В современном мире бизнеса автоматизация и быстрый обмен информацией играют ключевую роль. Интеграция различных систем, таких как CRM, ERP и мессенджеры, позволяет оптимизировать рабочие процессы и повысить эффективность взаимодействия с клиентами. В этой статье описан процесс настройки интеграции Telegram бота с 1С через API. Telegram, как популярный мессенджер с открытым API, предоставляет широкие возможности для создания интерактивных ботов, которые могут автоматизировать задачи, отвечать на вопросы клиентов, принимать заказы и многое другое. Интеграция Telegram бота с 1С позволит вам расширить каналы коммуникации с клиентами, повысить оперативность реагирования на запросы и улучшить качество обслуживания. Мы рассмотрим технические аспекты интеграции Telegram бота с 1С через API. Мы не будем углубляться в специфику кода 1С или функциональную реализацию бота, а сосредоточимся на общих принципах взаимодействия, необходимых библиотеках и протоколах обмена данны

Автор: Владислав Суседко

В современном мире бизнеса автоматизация и быстрый обмен информацией играют ключевую роль. Интеграция различных систем, таких как 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"

-2

Основные аргументы:

-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. После ввода команды нужно ввести и далее подтвердить пароль.

-3

Если откроем каталог через Проводник, то увидим что появилось три файла.

-4

На этом выпуск самоподписанного сертификата завершен, следующий этап – настройка веб-сервера.

Настройка веб-сервера IIS

После выпуска самоподписанного сертификата, можно приступать к настройке IIS под https-протокол. Сначала находимо добавить созданный сертификат, для этого:

1. Находим и открываем в IIS функцию Сертификаты сервера;

-5

2. Импортировать;

3. Выбираем сертификат из каталога куда сохраняли его;

4. Вводим пароль от него и нажимаем ОК.

-6

Далее необходимо создать Привязку у веб-сайта:

1. Default Web SiteПривязкиДобавить

2. В открывшемся окне указать протокол https, порт, под которым будет работать веб-публикация, и сертификат.

На текущий момент Телеграм APIподдерживает работу WebHookчерез 443, 80, 88, 8443 порты. После заполнения необходимых полей нажимаем ОК.

-7

Если нажать на кнопку Вид, то откроется сам сертификат. В нем мы можем посмотреть информацию, которую мы указывали при выпуске (Вкладка Состав – поле Субъект) и увидеть, что нет доверия этому сертификату.

-8

Поэтому необходимо его установить в хранилище Доверенных сертификатов:

В каталоге с файлами сертификата открываем .pfx– вводим пароль – Поместить все сертификаты в следующее хранилище – Доверенные корневые центры сертификации – Готово.

-9

При следующем открытии сертификата можно увидеть, что ошибка ушла.

-10

Веб-публикация базы.

После того как провели основные настройки веб-сервера, можно приступить к публикации базы 1С. Сам процесс довольно типовой, поэтому концентрировать внимание на этом не будем.

1. Открываем 1С от имени администратора в режиме Кофнигуратор;

2. АдминистрированиеПубликация на веб-сервере;

3. Здесь дать наименование публикации (обязательно использовать только латинские символы) и проверить правильно ли указан Каталог (если используются стандартные настройки и не создавался отдельный веб-сайт в IIS, то менять его не надо);

-11

4. Перезапустить веб-сервер.

На этом этапе база опубликована и работает по https. Проверить это можно открыв ее в браузере, через localhost, внутренний IPили внешний IP. Внешний IPможет не открываться с вашей локальной сети, пугаться не надо. При необходимости можно проверить с другого устройства, например, со смартфона.

В адресной строке можно увидеть, что ссылка прописана через https. Также при открытии будет предупреждение о небезопасном подключении, связано это с тем, что сертификат самоподписанный.

-12

Во всех современных браузеров реализована защита, чтобы не допустить открытие сомнительных страниц, но так как это публикация не является сторонним/неизвестным нам источником - можно сделать исключение и продолжить открытие. На Телеграм APIэто не повлияет, так как доверие сертификату будет выполнено при установке WebHook’а.

(В случае использования платного сертификата, подобного предупреждения не будет).

База опубликована и работает, но нет того, к чему будет обращаться Телеграм Бот. Для наглядности статьи, будет использоваться максимально простое расширение 1С с http-сервисом, в котором прописаны только get и postзапросы.

-13

Чтобы имелся доступ к этому расширению по интернету, его необходимо включить в веб-публикацию. Сделать это можно...