Имя: Пароль:
1C
 
Ошибка инициализации SSL-соединения
,
0 tabarigen
 
18.06.18
17:27
Ребят хелп. Пытаюсь отправить сообщение из телеграмм. Код простой.


Procedure ОтправитьСообщениеВТелеграмм(message) Экспорт
    
        token = "?*?*?*(?*(?*(?*(?";
    chat_id = 21212121;
    
    СтрокаСоединения = "/bot" + token + "/sendMessage";
    
    Попытка
        Запрос = Новый HTTPЗапрос();
        Запрос.АдресРесурса = СтрокаСоединения;//Тел.Пароль+"/sendMessage";
        Запрос.Заголовки = Новый Соответствие();
        
        ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL(
        Новый СертификатКлиентаWindows(),Новый СертификатыУдостоверяющихЦентровWindows());
        Соединение = Новый HTTPСоединение("api.telegram.org",,,,,5, ЗащищенноеСоединение);
        
        ТекстЗапроса="";
        ТекстЗапроса=ТекстЗапроса+"&chat_id="+Формат(chat_id,"ЧГ=");
        ТекстЗапроса=ТекстЗапроса+"&text="+КодироватьСтроку(message,СпособКодированияСтроки.КодировкаURL);
        
        //КодироватьСтроку() отсутствует в 8.2 ищите сами как сделать url encode
        Запрос.Заголовки.Вставить("Content-Type", "application/x-www-form-urlencoded");
        Запрос.УстановитьТелоИзСтроки(ТекстЗапроса);
        Ответ=Соединение.ОтправитьДляОбработки(Запрос);//POST
        
        
        КодСостояния=Ответ.КодСостояния;
        СтрокаОтвета=Ответ.ПолучитьТелоКакСтроку();
        
    Исключение
        
        ТекстОшибки = ОписаниеОшибки();
        Сообщить(ТекстОшибки);
    КонецПопытки;
    
EndProcedure


На выходе получаю ошибку.

Ошибка при вызове метода контекста (ОтправитьДляОбработки): Ошибка работы с Интернет:   Ошибка инициализации SSL-соединения

собственно вопрос, тут косяк в коде, или же проблема с сетью. Да и вообще  у меня не открывется сайт api.telegram.org
хотя у кого то в РФ он работает. короч как быть парни.
1 LeoKeyn
 
18.06.18
17:42
Попробуй через


ПараметрыЗапроса=Новый Структура;
    ПараметрыЗапроса.Вставить("Subscriber","");
    ПараметрыЗапроса.Вставить("Group","");
    ПараметрыЗапроса.Вставить("User","U");
    ПараметрыЗапроса.Вставить("Password","");
    ПараметрыЗапроса.Вставить("Function","");
    ПараметрыЗапроса.Вставить("Request",СтруктураДанных);
    //--------------------------------------------------------------------//
    
    ДанныеОтвет=Новый Структура("ОписаниеОшибки","");
    
    ТелоЗапроса="";
    Для Каждого Параметр Из ПараметрыЗапроса Цикл
        ТелоЗапроса=?(ТелоЗапроса="","",ТелоЗапроса+"&")+Параметр.Ключ+"="+КБО_КодироватьСтроку(Параметр.Значение);
    КонецЦикла;
    

    
    WinHttpRequest=Новый COMОбъект("WinHttp.WinHttpRequest.5.1");
    WinHttpRequest.SetTimeouts(900000,900000,900000,900000);
    WinHttpRequest.SetClientCertificate("CURRENT_USER\MY\"+ИмяСертификата);

    Скрипт=Новый COMОбъект("MSScriptControl.ScriptControl");
    Скрипт.language="javascript";
    Скрипт.AddObject("WinHttpRequest",WinHttpRequest);
    Скрипт.Eval("WinHttpRequest.Option(2)=1251"); // установка кодировки страницы
    Скрипт.Eval("WinHttpRequest.Option(4)=13056");//intSslErrorIgnoreFlags Игноировать ошбибки при SSL соединении
    Скрипт.Eval("WinHttpRequest.Option(6)=true");//blnEnableRedirects Разрешить перенаправления
    Скрипт.Eval("WinHttpRequest.Option(12)=true");    
    
    WinHttpRequest.Open("POST",АдресСервера+"/cpuEnquiry.asp",0);
    
    WinHttpRequest.SetRequestHeader("Content-Type","application/x-www-form-urlencoded; Charset=windows-1251;");
    WinHttpRequest.SetRequestHeader("Connection","Close");
    
    Попытка
        WinHttpRequest.Send(ТелоЗапроса);
    Исключение
        ДанныеОтвет.ОписаниеОшибки="Неудачная попытка отправки запроса! "+ОписаниеОшибки();
        Возврат ДанныеОтвет;
    КонецПопытки;
    
    Если WinHttpRequest.Status<>200 Тогда
        ДанныеОтвет.ОписаниеОшибки="Неудачная попытка отправки запроса! "+WinHttpRequest.ResponseText;
        Возврат ДанныеОтвет;
    КонецЕсли;
2 Apokalipsec
 
18.06.18
17:47
(0) Если у тебя нет доступа к сайту (у меня кстати тоже, он забанен), то устанавливай хоть защищенное, хоть незащищенное соединение - не подключится.)
ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL(
        Новый СертификатКлиентаWindows(),Новый СертификатыУдостоверяющихЦентровWindows()); можно заменить на: ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL();
3 tabarigen
 
18.06.18
18:04
(2) средствами 1с как то можно проксировать запрос?
4 Apokalipsec
 
18.06.18
18:25
(3) Конечно можно, у HTTPСоединение даже есть параметр Прокси.
5 tabarigen
 
18.06.18
19:17
(4) попробовал как сказано тут, не прокатило Работа телеграм через прокси
6 tabarigen
 
18.06.18
20:08
(5) юзаю правда socs5. Не подскажете его 1с поддерживает?
7 tabarigen
 
18.06.18
21:05
Ошибка правда уже
404
8 tabarigen
 
18.06.18
21:05
Функция ПолучитьСоединениеССервером()

    ИспользоватьПрокси    = Истина;
    ПроксиСервер        = "socks5://jqlwb.teletype.live"; // Собственно вот здесь мы и обращаемся через socks5
    ПроксиПорт        = 1080;
    ПроксиПользователь    = "telegram";
    ПроксиПароль        = "telegram";

    ИнтернетПрокси = Новый ИнтернетПрокси;
    ИнтернетПрокси.Установить("https", ПроксиСервер, ПроксиПорт, ПроксиПользователь, ПроксиПароль);

        Ключ = "ЗДЕСЬ_ВАШ_АПИ_КЛЮЧ";    
    Попытка

        Сервер = "api.telegram.org";

        Если ИспользоватьПрокси Тогда
              Соединение = Новый HTTPСоединение(Сервер,,,,ИнтернетПрокси,,Новый ЗащищенноеСоединениеOpenSSL);
        Иначе
            Соединение = Новый HTTPСоединение(Сервер,,,,,,Новый ЗащищенноеСоединениеOpenSSL);
        КонецЕсли;

    Исключение
        Сообщить("Ошибка подключения к серверу Telegram!", СтатусСообщения.ОченьВажное);
        Сообщить(ОписаниеОшибки(), СтатусСообщения.ОченьВажное);
        Соединение = Неопределено;
    КонецПопытки;

    Возврат Соединение;    

КонецФункции