Бот Telegram и HTTP сервис в 1С

26.01.21

Интеграция - Мессенджеры и боты

Настройка рабочего вебхука telegram для 1С используя IIS (Internet Information Services - встроенный в windows веб-сервер). Мой опыт.

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

В интернете не так много статей на эту тему, а те, что есть, уже не актуальны, так как telegram больше не блокируют в России, или же эти инструкции усложнены, почем зря, например использованием не совсем user friendly apache и прочих openssl. 

Для начала чего я хотел добиться - учитывая специфику моей работы, одна из моих задач была возможность делать служебные фотографии товара на складе при приемке и автоматически прикреплять их к карточкам номенклатуры. Один из вариантов который я использую это ТСД на андроиде с лицензией Cleverence (это отдельная тема для разговора). Но учитывая что ТСД стоят денег, да и лицензия на софт тоже, а так же специфичность моей конфигурации 1С, сторонние решения требуют доработки и изменений (Опять же отельная тема для разговора). 

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

И так, с целью определились. Какие нужны для этого средства?

  1. Серверная 1С (можно и на файловой, но я не думаю что тема актуальна, если не прав - то можете указать это в комментариях)
  2. Операционная система Windows 7 или выше
  3. Бот telegram (Создается бесплатно)
  4. Статичный (белый ip адрес) - с этим думаю проблем не должно возникнуть. Но если вдруг возникнут, есть некоторые платные решения. О них позднее.

 

Начнем, пожалуй с самого простого - создание бота. Для создания бота нужно в telegram обратиться к @BotFather. 

Пишем ему /start и получаем список доступных команд.
Нас интересует команда /newbot — отправляем ему и нам будет предложено ввести имя нового бота. После ввода имени мы получим токен и ссылку для быстрого добавления бота в список контактов.

Схороним эти данные. Они важны

Следующим нашим шагом станет установка IIS сервера на windows. Собственно это не совсем установка, но это мелочи. 

Перейдем в Панель управления\Программы\Программы и компоненты (или жмем win+r и там вводим appwiz.cpl). В открывшемся окне слева "Включение и отключение компонентов windows". Находим пункт Службы IIS и включаем. Затем раскрываем дерево, и сморим раздел "Службы Интернета", опять же раскрываем и идем в "Компоненты разработки приложений". Там должны быть включены службы в названии которых есть ASP

 
 Включение IIS

 

После того как всё будет установлено, нам нужно запустить "Диспетчер служб IIS". Быстро это можно сделать нажав win+r и выполнить команду "InetMgr". 

Проверим что веб-сервер работает. Запустим браузер, и в адресной строке введем "localhost". Если всё хорошо - увидим заглушку  Internet Information Service.

 
 Заглушка Internet Information Service

Очень важно!!! Если вы используете версию 32x версию , то нужно разрешить серверу работу с 32x приложениями.

 
 Как включить поддержку 32x приложений в IIS (Фото 1)
 
  Как включить поддержку 32x приложений в IIS (Фото 2)

 

С одним большим делом разобрались. Теперь пришло время получить свой домен. Это быстро и бесплатно. Я использовал  сайт my.freenom.com - там в целом ничего сложного. 

Инструкция по регистрации домена на русском языке

Итак, у нас есть домен и рабочий веб сервер. Нужно проверить, что доменное имя работает. Но сначала нужно пробросить порты. Нужно сделать так, чтобы все запросы по адресу домена вели  на 80 и 443 порт того компьютера локальной сети, на котором находится наш веб сервер и 1С. Для дополнительной безопасности можно использовать альтернативный внешний порт 88 или 8443 - telegram помимо стандартных 80 и 443 поддерживает ещё эти два. То есть запросы на ВАШ_ДОМЕН:ПОРТ (80 или 443 можно не указывать) должны вести на локальный IP вашего сервера внутри сети. В разных роутерах это делается по разному. Если у вас был опыт например настройки RDP через интернет - для вас ничего сложного это не составит. Для тех кто с этим не знаком - в сети множество инструкций под роутеры разных производителей. 

Итак, после проброса портов попробуем перейти по адресу, что указали при регистрации домена. (Учтите, что это нужно делать из внешней сети. Самый простой это с помощью мобильного телефона через мобильный интернет). В случае если всё ок - вы увидите ту же самую заглушку, как и при переходе по адресу "localhost" на сервере .

Настало время установить SSL сертификат на наш сервер. Вебхук telegram работает только с защищенным протоколом. Для автоматической установки нам понадобится специальная программа .

win-acme - ссылка на репозиторий. 

На момент написания статьи последняя версия 

win-acme.v2.1.14.996.x64.trimmed.zip - для 64x windows

win-acme.v2.1.14.996.x86.trimmed.zip - для 32x windows

Запускаем программу через wacs.exe (От имени администратора) и выбираем эти варианты

1) N: Create certificate (default settings)

2) 1: Default Web Site (1 binding)

3) A: Pick *all* bindings

4) Y

5) Y

(На момент написания статьи у меня уже был установлен сертификат, и возможно мой пример ответов не совсем релевантен. Скорее всего у нас спросят ещё пару вещей, на всё соглашаемся, там ничего сложного.)

После успешного завершения у нас будет свой веб сервер с SSL сертификатом, который будет доступен из внешней сети. Проверим это. Опять же через мобильный телефон через мобильную сеть перейдем по адресу HTTPS://ВАШ_ДОМЕН:ПОРТ (порт можно не указывать, если вы при пробросе портов вы не указали внешний порт). Если всё хорошо, то в адресной строке слева у вас будет "замок"

 
 Если SSL сертификат на сервере активен - то при переходе по доменному имени в адресной строке будет иконка замка

 

Подведем промежуточный итог.

Для работы вебхука telegram нам нужен был сервер, доступный по доменному имени, на котором есть SSL сертификат.

Что мы для этого сделали:

1) Установили IIS

2) Получили доменное имя

3) Пробросили порты на роутере

4) Установили SSL сертификат.

Что мы получили - при обращение по доменному имени из внешней сети мы попадаем на заглушку веб сервера. В Адресной строке при этом есть "замочек".

Теперь настало время настраивать 1С.

Для начала у нас должен быть установлен пакет расширений Web сервера 1С

 
 Пакет расширений Web сервера 1С

 

Создадим новый HTTP Сервис. В конфигураторе в разделе Общие находим пункт HTTP-Сервисы.

Создадим новый сервис. Обратите внимание на поле Корневой URL – это имя нашего сервиса к которому будет обращаться Вебхук. Используйте только латиницу.

 
 Корневой URL

 

Создаем новый шаблон URL для нашего сервиса. И даем имя функции с помощью которой Телеграм будет общаться с 1С.

 
 шаблон URL

 

Далее. Внутри нашей функции мы создадим пару методов. При работе с HTTP сервисами нам доступно несколько специальных методов.

 
 HTTP методы

Нам для установки вебхука нужно лишь 2 из них. Это POST и GET. После всех манипуляций у нас есть HTTP сервис с корневым URL «testService», у которого есть функция «TestFunction» у которой есть 2 метода: POST и GET

 
 HTTP сервис

 

Теперь нам нужно назначить обработчики событий на созданные методы.

Создадим обработчик метода GET (этот метод нужен нам для тестирования)

Функция TestFunctionGET(Запрос)
	Ответ = Новый HTTPСервисОтвет(200);
	Ответ.Заголовки.Вставить("Content-Type","text/html; charset=utf-8");
	Ответ.УстановитьТелоИзСтроки("Сервис работает");	
	Возврат Ответ;
КонецФункции


и метода POST (С этим методом как раз и будет работать вебхук)

Функция TestFunctionPOST(Запрос)
	Ответ = Новый HTTPСервисОтвет(200);
	Возврат Ответ;
КонецФункции

Пока этого хватит. Давайте опубликуем наш сервис. Для этого идем в раздел Администрирование->Публикация на веб-сервере.

 
 Публикация Сервиса

 

Имя  - по умолчанию имя нашей базы 1С, но можно изменить, если необходимо.
Веб-сервер – это как раз наш встроенный в Windows веб-сервер IIS
Каталог – каталог, в котором хранится информация о публикации. Можно оставить по умолчанию, но запомним это место. Оно нам пригодится.
Для работы нашего вебхука нам нужны включенные галочки – на Вкладке HTTP сервисы. Остальные можно отключить. Но на время можно оставить Публиковать тонкий и веб клиент, для теста работоспособности.

Жмем опубликовать. Если всё ок, то мы получим оповещение о том, что сервис опубликован, и вопрос о том, нужно ли перезапустить веб сервер – отвечаем, что нужно. Важно чтобы конфигуратор был запущен от имени Администратора, иначе могут возникнуть проблемы с сохранением настроек.
 

 
 Первичная настройка

 

Вернемся к менеджеру IIS (win+r и выполнить команду "InetMgr")

В списке сайтов мы увидим наш веб сервис. Если там пусто – то обновите список.

 
 Список сайтов в IIS

В браузере переходим по адресу "localhost/ИМЯ_БАЗЫ*"
*ИМЯ_БАЗЫ - это что указали при публикации - в моем примере адрес выглядит так "localhost/DEMO"

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

 
 Авторизация веб клиента

 

Теперь проверим как работает метод GET у нашей функции.
В браузере перейдите по адресу "localhost/DEMO/hs/testService/TestFunction/"
где 
DEMO – имя нашей базы, указанное при публикации
hs  - обязательный атрибут, говорящий о том, что мы обращаемся к HTTP сервису (Http Service)
testService  - это Шаблон URL, который мы указали при создании HTTP сервиса
TestFunction – это имя созданной нами функции, у которой есть 2 метода: GET и POST

Если в ваших действиях не было ошибок, то вы увидите следующее

 
 Результат вызова метода GET

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

Для автоматической авторизации мы можем сделать следующее. Помните, я просил запомнить каталог публикации ? Идем туда, находим файл "default.vrd" и открываем в блокноте.

 
 Расположение файла "default.vrd"

 

Обратим внимание на это место

 
 Куда обращать внимание

 

Добавим сюда  usr=ИМЯ;pwd=ПАРОЛЬ  
Где 
Имя – это имя пользователя 1С, под которым будет авторизоваться вебхук
Пароль – соответственно пароль пользователя, под которым будет авторизоваться вебхук.

Итоговый вариант выглядит так

 
 Итоговый вариант

 

Сохраняем файл и пробуем ещё раз перейти по указанному выше адресу. Если всё ок, то мы увидим ту надпись, которую указали при написании обработчика на метод GET.

 
 Результат перехода по адресу


Теперь мы должны проверить работоспособность нашей функции из внешней сети по HTTPS протоколу.
Для этого можно прямо с мобильного телефона через мобильный интернет обратиться по адресу

HTTPS://ИМЯ_ДОМЕНА/DEMO/hs/testService/TestFunction/

Где 
ИМЯ_ДОМЕНА - это тот домен, который вы зарегистрировали на my.freenom.com

DEMO - Имя базы, которое вы указали при публикации сервиса в 1С. 

hs  - обязательный атрибут, говорящий о том что мы обращаемся к HTTP сервису (Http Service)

testService  - это Шаблон URL, который мы указали при создании HTTP сервиса

TestFunction – это имя созданной нами функции у которой есть 2 метода: GET и POST

Результат должен быть аналогичным, как если бы обращались к функции по "localhost".

 

Подведем промежуточный итог.

У нас есть Домен с работающим SSL сертификатом. HTTP сервис в , который доступен из внешнего интернета. Собственно осталось лишь установить вебхук. Это просто. Нужно лишь вбить в браузер следующую ссылку

https://api.telegram.org/bot<токен>/setWebhook?url=https://<ВАШ_ДОМЕН>/<ИМЯ_БАЗЫ>/hs/<ШАБЛОН_URL>/<ФУНКЦИЯ>

Где

<токен> - это тот токен, который мы получили в самом начале статьи.

<ИМЯ_БАЗЫ> - Имя базы, которое вы указали при публикации сервиса в 1С. 

hs  - обязательный атрибут, говорящий о том, что мы обращаемся к HTTP сервису (Http Service)

<ШАБЛОН_URL>- это Шаблон URL, который мы указали при создании HTTP сервиса

<ФУНКЦИЯ> – это имя созданной нами функции, у которой есть 2 метода: GET и POST

Если всё сделано верно, то мы получим сообщение 

{"ok":true,"result":true,"description":"Webhook was set"}

Более подробную информацию мы можем получить вбив в адресную строку

https://api.telegram.org/bot<токен>/getWebhookInfo

{"ok":true,"result":{"url":"https://<ВАШ_ДОМЕН>/<ИМЯ_БАЗЫ>/hs/<ШАБЛОН_URL>/<ФУНКЦИЯ>","has_custom_certificate":false,"pending_update_count":0,"max_connections":40,"ip_address":"ВАШ_IP"}}

Если вебхук не сможет достучаться до вашей базы, то вы увидите информацию об ошибках. Это может быть как Bad request - означает, что вебхук не может достучаться до нашего сервера, а так же Not Authorized - это означает, что вы забыли указать логин и пароль в файле "default.vrd".

 

Ну и давайте попробуем сделать так, чтобы на любой запрос к боту нам приходил ответ.

Вернемся к обработчику на метод POST и приведем код к следующему виду:

Функция TestFunctionPOST(Запрос)
	Ответ = Новый HTTPСервисОтвет(200);
	
	Строка = Запрос.ПолучитьТелоКакСтроку();   // В запросе содержатся данные в формате JSON
	
	ЧтениеJSON = Новый ЧтениеJSON();
	ЧтениеJSON.УстановитьСтроку(Строка);	
	ОтветОбъект = ПрочитатьJSON(ЧтениеJSON);
		
		message = ОтветОбъект.message;  
		chat_id = chat.id;
	  	
		
		ТекстСообщения = "Слава роботам!";
		teleОповеститьпользователя(chat_id,ТекстСообщения);

		
	Возврат Ответ;
КонецФункции

И вот функция для отправки сообщения пользователю:

Процедура teleОповеститьпользователя (user_id,ТекстСообщения) 
	
	
	token  = "" //сюда вставить ваш токен;
	server = "api.telegram.org";
		
	Ресурс = "bot" + token + "/sendMessage?chat_id=" + СтрЗаменить(Формат(user_id, "ЧДЦ=; ЧС=; ЧРГ=."), ".", "") + "&text=" + ТекстСообщения;	
	Соединение  =  Новый HTTPСоединение(server,443,,,,,Новый ЗащищенноеСоединениеOpenSSL());
	Запрос = Новый HTTPЗапрос(Ресурс);
	Ответ = Соединение.Получить(Запрос);    
	
	
КонецПроцедуры

Учтите, что это прямо совсем черновой код и нужно предусматривать то, что в HTTP запросе могут возникнуть ошибки. Вообще HTTP сервисы можно отлаживать, как и обычный код 1С, с точками остановок и прочим, но у меня ни разу не вышло словить сеанс в отладчике. К тому же сложность написания кода в HTTP модуле ещё в том, что он не делает проверки на синтаксис при сохранении конфигурации. Для контроля Синтаксиса я использую метод GET - переходе в браузере по адресу нашей функции мы ранее видели надпись "Сервис работает", если есть синтаксические ошибки, то мы увидим надпись "Ошибка инициализации библиотеки модулей". Также я набросал простенькую функцию для логирования всего, что мне хочется, и вставляю ей в нужных местах, для понимания данных, которые я получаю или пытаюсь передать.

Процедура Логировать(ТекстСообщения);
	
	ПутьКФайлу = "C:\teleLog.txt";
	
	Файл = Новый Файл(ПутьКФайлу); 
	
	Если  Файл.Существует() тогда
	
	Чтение = Новый ЧтениеТекста(ПутьКФайлу);
	Текст = Чтение.Прочитать();
	Чтение.Закрыть();  			
	
	Иначе
	Текст = "";
	КонецЕсли;
	
	Запись = Новый ЗаписьТекста(ПутьКФайлу);
	Запись.ЗаписатьСтроку(""+Текст+Символы.ПС+ТекущаяДата() + Символы.ПС + "--------------------------------------------"+Символы.ПС+ТекстСообщения);
	Запись.Закрыть();
	
	
КонецПроцедуры

Помимо этого всегда можно скопировать код в обычный модуль и проверить на синтаксис уже там.

Собственно сохраняем конфигурацию и пробуем отправить боту сообщение.

Если мы молодцы и всё сделали правильно, то увидим следующее:

 
 Ответ бота

 

Собственно мы добились изначальной цели - работы вебхука telegram с 1С без сторонних сервисов и необходимости создания сертификата вручную и ковыряния с apache.

О работе с API telegram (Отправка сообщений, файлов, создание кнопок для быстрых ответов) можно писать отдельную статью.

В подготовке данного материала мне были полезны пара публикаций

Вебхук. Путь Телеграма

Телеграм + 1С + Вебхуки + Апач + Самоподписанный сертификат

Почитайте, там есть немало полезного.

Ещё в начале статьи я сказал, что иметь белый IP адрес не обязательно и существуют некие решения. 

Я лично тестировал и остался доволен сервисом ngrok.com. Если коротко - это прокси, на который вебхук будет посылать запросы, которые будут перенаправляться на наш компьютер. Очень удобно. Но платно - 5 долларов в месяц (Белый IP в большинстве случаев стоит дешевле), и нужно следить, чтобы их программа была запущена, и не глючила. В бесплатной версии сессии активны в течение часа (или около того), затем нужно будет изменять вебхук на новый, так как будет сгенерирован новый временный домен. Но для отладки подойдет, так как хорошо видно, какие запросы приходят к нам.

 
 Рабочее окно ngrok

 

 

Буду рад любым комментариям с критикой и уточнениями, а так же если будут вопросы, постараюсь ответить на них, по мере своих знаний.

Телеграм вебхук http сервис

См. также

Мессенджеры и боты Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Интеграция мессенджера WhatsApp и 1С: УНФ, УТ, КА, ERP - отправка и получение сообщений, картинок, файлов и видео прямо в 1С. Расширение работает с сервисом GreenApi.

15600 руб.

23.06.2023    9518    58    12    

34

Мобильная разработка Мессенджеры и боты Платформа 1С v8.3 1С:Конвертация данных Платные (руб)

Теперь создать telegram-бота - элементарно. Достаточно просто нарисовать блок-схему телеграм-бота, и он сразу заработает. Это возможно при использовании Графического конструктора телеграм-ботов. Это единственный конструктор ботов для telegram, чье качество и функционал подтверждены фирмой 1С, есть сертификат 1С:Совместимо. Расширение в интерактивном режиме, с помощью блок-схем, позволяет с минимальными трудозатратами создать телеграм-ботов в любой конфигурации, работающей на платформе «1С:Предприятие 8.3».

13200 руб.

27.12.2021    38233    108    161    

201

SALE! 25%

Мессенджеры и боты Системный администратор Программист Бизнес-аналитик Пользователь Руководитель проекта Платформа 1С v8.3 Платные (руб)

Развитие популярного решения для интеграции мессенджера Telegram с нашей любимой 1С - конструктор чат-ботов в Телеграм.

15000 11250 руб.

18.06.2021    65598    312    272    

369

Документооборот и делопроизводство (СЭД) Мессенджеры и боты Учет документов Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия государственного учреждения 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 Платные (руб)

Расширение для согласования справочников и документов в основных типовых конфигурациях. Ролевая адресация, условная маршрутизация, чат-бот telegram, интеграция с n8n, последовательное и параллельное согласование, уведомление о новых задачах на почту, блокировка объектов в зависимости от статуса, запрет проведения в зависимости от статуса, автозапуск процессов согласования, отчеты по исполнительской дисциплине. Не требуется снятие конфигурации с поддержки. Настройка без программирования. Версия для 1cfresh.com. Сертификат 1С-Совместимо.

14900 руб.

15.11.2018    30285    35    49    

71

Мессенджеры и боты Пользователь Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 Управленческий учет Платные (руб)

Данное расширение представляет собой интерфейс взаимодействия 1С с сервисом Wazzup. Данный сервис позволяет вести беседу с использованием номера телефона, привязанного к Whatsapp. Почитать о сервисе и его условиях использования можно по ссылке https://wazzup24.com/. На данный момент расширение поддерживает почти все доступные через API функции. Обновление от 19.05.2023, версия 2.1!

14400 руб.

30.11.2020    13608    8    13    

15

Мессенджеры и боты SMS рассылки Платформа 1С v8.3 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Решение реализовано в виде расширения. Заменяет отправку смс на отправку в WhatsApp через Green-api. Отправка чека картинкой.

7800 руб.

15.05.2024    1551    3    6    

6

Мессенджеры и боты Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Управленческий учет Платные (руб)

Универсальная система сообщений для конфигураций 1С: Предприятие 8.3. Позволяет пользователям обмениваться текстовой информацией и ссылками на объекты (документы, справочники и др.). Система универсальна, подойдет для любой организации. Реализовано на управляемых формах (тонкий клиент) по технологии расширений 1С. Конфигурация останется на поддержке (для автоматического обновления).

4800 руб.

29.03.2021    17036    3    10    

8
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. serg-lom89 76 26.01.21 22:19 Сейчас в теме
Плюс!
я логирование в регистр сведений пишу.
solidsun; +1 Ответить
2. DERL 27.01.21 05:56 Сейчас в теме
Раз уж так досконально про создание HTTP сервисов, то забыл указать, что надо каждому методу установить право "Использование" для той роли, которая установлена у пользователя, под которым запускается сервис.
Лично я об этом постоянно забываю ))
user1352771; alesgood79; Sei Souma; solidsun; +4 Ответить
3. sultbec 10 27.01.21 19:25 Сейчас в теме
Чтобы поймать отладчик http надо в отладка-подключение - автоматическое подключение - галка http сервисы
RomenOLi; maksa2005; Makc16384; +3 Ответить
4. John_d 5891 28.01.21 09:05 Сейчас в теме
Интересно. За статью плюс.
5. PLAstic 296 01.02.21 17:02 Сейчас в теме
Чёт автор не то ляпнул в начале статьи. Давно есть подробная статья про ботов с вебхуками и без. Давно есть статьи про сетификаты и публикации в иисе и апаче.
Вся статья - описание процесса публикации http-сервиса с сертификатом. И где бот?
LastRoot; +1 Ответить
6. solidsun 107 01.02.21 19:16 Сейчас в теме
Существует масса статей на разную тематику. В подзаголовке статьи я указал "Настройка рабочего вебхука telegram для 1С используя IIS (Internet Information Services - встроенный в windows веб-сервер). Мой опыт." Собственно это и описано в статье. Зная куда копать и разбираясь в теме глубже, можно, прочитав несколько статей, составить какое-то представление как всё это взаимодействует. Моя же задача была в том, чтобы собрать это в единую картину. Я старался максимально доступно объяснить как, что и зачем делается. Задачи научить проектировать бота в этой статье не стояло. А какую конкретно информацию Вы бы хотели видеть на тему ботов telegram и 1С? Я бы мог попробовать развить эту тематику.
kupala; bocharovki; fuser; JohnyDeath; +4 Ответить
7. JohnyDeath 302 02.02.21 18:01 Сейчас в теме
1С уже прикрутил ботов и обработку новых сообщений (работает нормально на последнем релизе 18й и 19й платформы). Также можно прилепить Телеграм в систему взаимодействия. Осталось дождаться от них того, чтобы сообщение телеграм приходило в таком же формете, что и в самом телеграме. Ну и саму отправку сделать со всеми возможностями телеграма. Не уверен вообще, что это возможно, но вроде бы они эту хотелку услышали и даже записали )
8. Nubsdale 08.02.21 18:18 Сейчас в теме
Довольно подробно описана связка IIS + 1с + домен
однозначно плюс
9. pawellkrv 25 26.02.21 12:34 Сейчас в теме
Благодарю за столь подробный пост! Искал инфу по Viber, очень помогло!
10. solidsun 107 13.03.21 17:23 Сейчас в теме
Волею судеб пришлось перенастраивать сервер. И я понял что забыл указать одну деталь без которой не получится установить сертификат. Нужно руками вбить привязку домена к Default Web Site. (Правой кнопкой мыши, - изменить привязку.)
Прикрепленные файлы:
11. maxim_saharov 22.07.21 14:12 Сейчас в теме
"Имя – это имя пользователя 1С, под которым будет авторизоваться вебхук"
- только Имя не должно содержать пробел!
Я очень долго искал причину ошибки - почему не получилось соединение)
Иванов Иван - ошибка, ИвановИван - подключается)
solidsun; +1 Ответить
12. solidsun 107 30.07.21 11:45 Сейчас в теме
(11) Это хорошее наблюдение. Я сам привык использовать имена и пути без пробелов. Надеюсь статья была полезной.
maxim_saharov; +1 Ответить
13. maxim_saharov 30.07.21 17:25 Сейчас в теме
Статья была очень полезной, большое спасибо!
По другим статьям как то не смог все сделать, по вашей смог)
14. alf2006x 25 26.01.22 17:38 Сейчас в теме
15. solidsun 107 28.01.22 15:14 Сейчас в теме
16. skyadmin 60 20.04.22 10:48 Сейчас в теме
Боже упаси авторизацию через "default.vrd", в базу начнут ломиться без ввода пароля.

У меня получилось авторизоваться в самом веб-хуке:
https://api.telegram.org/bot<Токен>/setWebhook?url=https://Имя:Пароль@<Сайт>/<База>/hs/<Шаблон>/<Функция>/
user1089040; cybjavax; TheRealStanly; user1516660; solidsun; fuser; gigapevt; Zhilyakovdr; RussXXX; +9 Ответить
17. handscenter 68 16.08.23 18:08 Сейчас в теме
(16)
Ваш способ не лучше, фактически вы передаете пароль в отрытом виде в чужой сервис и он будет всегда передаваться в http заголовках
обычно для авторизаций вшитых в "default.vrd" делают отдельные публикации с длинным и сложным адресом.
18. skyadmin 60 16.08.23 18:16 Сейчас в теме
(17) Мой способ лучше в том случае, если бот опубликован на основном (единственном) веб-сервере. Иначе любые пользователи начинают входить в базу от имени бота, без ввода пароля. И точно не хуже, чем вход вообще без пароля.
19. handscenter 68 17.08.23 09:44 Сейчас в теме
(18) вам никто не запрещает делать несколько публикаций одной базы с разными адресами, можете сделать дополнительную публикацию с именем типа basa_fyhiw0wjls5ox8k3ce1b0dd93r9z9nns для вшитых авторизаций, это всяко надежнее открытой передачи паролей
20. skyadmin 60 17.08.23 10:14 Сейчас в теме
(19) еще раз, вход в базу "basa_fyhiw0wjls5ox8k3ce1b0dd93r9z9nns" без пароля, это всяко не надежней, чем вход в эту же базу с уникальным паролем. если бы это было не так, то различные сервисы (таже почта) не предлагали бы установить пароль, а просто давали уникальную ссылку для входа без пароля, пока что это стандартный подход.
Пароль передается между сервисами, поэтому пользователи не имеют доступа к заголовкам.
Тем у кого есть средства прослушки трафика, найти публикацию basa_fyhiw0wjls5ox8k3ce1b0dd93r9z9nns вообще не составит проблем, даже обычный portscaner найдет эту публикацию, а по сети эти сканеры сотнями в сутки гуляют. В связи с чем вероятность несанкционированного доступа в сотни раз выше. Ваш аргумент похож на то, что будто URL передается в зашифрованном виде)
21. handscenter 68 17.08.23 15:22 Сейчас в теме
(20) да ее тоже можно перехватить, но эта публикация может быть исключительно под 1 сервис, не давая никакого доступа ни к тонкому клиенту, ни одата, ни к другим веб или http сервисам
Данный длинный адрес можно рассматривать как аналог токена и как раз это в разы безопаснее, чем отправлять хуки с паролями в заголовках в рабочую базу.
user1150141; +1 Ответить
22. skyadmin 60 17.08.23 15:30 Сейчас в теме
(21) закрыть доступ на стороне 1с будет одинаково полезно, каким бы образом не проходила авторизация.
23. handscenter 68 17.08.23 16:04 Сейчас в теме
(22) я думаю вы и уловили и согласились с моим тезисом )))
24. skyadmin 60 20.08.23 12:29 Сейчас в теме
(23) я думаю что вы тоже согласитесь, что для публикации basa_fyhiw0wjls5ox8k3ce1b0dd93r9z9nns (как и для любой другой) авторизация с помощью уникальных имени и пароля ничем не хуже, чем вообще без имени и пароля )))
25. user1475554 31.08.23 22:43 Сейчас в теме
Вообще в конце вебхука указывается еще и секрет который можно регулярно изменять да и в базу не получится зайти при авторизации через "default.vrd" выпадает ошибка
26. user936152 30.11.23 13:03 Сейчас в теме
В статье есть ошибка. Имя корневого URL на скрине с большой буквы, а далее адрес http://localhost/DEMO/hs/testService/TestFunction/ testService с маленькой. Адрес чувствителен к регистру и выдает ошибку.
solidsun; +1 Ответить
27. YA_1130000064892000 07.10.24 16:28 Сейчас в теме
Доброго времени суток!

Столкнулись недавно с проблемой:

Есть веб-сервер IIS, домен с подключенным SSL.

С первого раза удалось завести Web-Hook и работать с Телеграм ботом, но после отключения электричества (почему-то связываю это с проблемой SSl) перестал работать бот.

Полез в getWebhookInfo и увидел следующее "SSL error {error:0A000086:SSL routines::certificate verify failed}".

Казалось бы типовая проблема, но бъёмся уже какую неделю, чтобы её решить.

И перевыпускали сертификаты на стороне домена, и на стороне веб-сервера, пытались выгрузить цепочку сертов, создать цепочку.

При этом доступ любые проверки на валидность SSL проходит, не могли бы подсказать, в чём может быть затея?
Оставьте свое сообщение