| 
    
            
         
         | 
    
  | 
Отправка сообщения в телеграмм | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        vladnet    
     21.03.20 
            ✎
    12:28 
 | 
         
        Подскажите в интернете полно кода для отправки в телеграмм:
 
        &НаСервере Процедура ОправитьНаСервере(ID, Token, ТекстСообщения, ПроксиСервер, ПроксиПорт, ПроксиПользователь, ПроксиПароль) Если НЕ ЗначениеЗаполнено(ТекстСообщения) Тогда Возврат; КонецЕсли; ИнтернетПрокси = Новый ИнтернетПрокси; ИнтернетПрокси.Установить("https", ПроксиСервер, ПроксиПорт, ПроксиПользователь, ПроксиПароль); ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL(); //Новый СертификатКлиентаWindows, Новый СертификатыУдостоверяющихЦентровWindows); Соединение = Новый HTTPСоединение("api.telegram.org",443,,,ИнтернетПрокси,,ЗащищенноеСоединение, Ложь); Ресурс = "bot" + Token + "/sendMessage?chat_id=" + СтрЗаменить(Формат(ID, "ЧДЦ=; ЧС=; ЧРГ=."), ".", "") + "&text= " + ТекстСообщения; Запрос = Новый HTTPЗапрос(Ресурс); Ответ = Соединение.Получить(Запрос); КодСостояния = Ответ.КодСостояния; СтрокаОтвета = Ответ.ПолучитьТелоКакСтроку(); Если КодСостояния=200 тогда ЧтениеОтвета = Новый ЧтениеJSON; ЧтениеОтвета.УстановитьСтроку(СтрокаОтвета); РезультатСтруктура = ПрочитатьJSON(ЧтениеОтвета); Если РезультатСтруктура.ok = Истина Тогда СтруктураMessage = РезультатСтруктура.result; КонецЕсли; Иначе Сообщить("КодСостояния "+КодСостояния); Сообщить(СтрокаОтвета); КонецЕсли; КонецПроцедуры Но все время пишет: Ошибка работы с Интернет: Не могу установить соединение Я уже и платный прокси купил. И проверил его - если подставлять в телегу на том же компьютере все работает прекрасно. Что делаю не так? пробовал и через socks5://87.247.143.208 и через https просто  | 
|||
| 
    1
    
        palsergeich    
     21.03.20 
            ✎
    12:30 
 | 
         
        1C не умеет в носки.     
         | 
|||
| 
    2
    
        palsergeich    
     21.03.20 
            ✎
    12:30 
 | 
         
        "платный прокси купил" - в браузере просто телеграмм работает без плагинов?     
         | 
|||
| 
    3
    
        palsergeich    
     21.03.20 
            ✎
    12:34 
 | 
         
        Я уже после блокировки баловался - бесплатный ВПН и все работало     
         | 
|||
| 
    4
    
        NorthWind    
     21.03.20 
            ✎
    15:15 
 | 
         
        (3) +1. Или прова сменить на более пофигистичного.     
         | 
|||
| 
    5
    
        GedKo    
     21.03.20 
            ✎
    16:31 
 | 
         
        ИнтернетПрокси = Новый ИнтернетПрокси;
 
        ИнтернетПрокси.Установить("https", "socks5://" + ПараметрыБота.АдресПрокси, ПараметрыБота.ПортПрокси, ПараметрыБота.ПользовательПрокси, ПараметрыБота.ПарольПрокси, Ложь); Соединение = Новый HTTPСоединение(ПараметрыБота.Сервер, 443, , , ИнтернетПрокси, , Новый ЗащищенноеСоединениеOpenSSL()); Запрос = Новый HTTPЗапрос(Ресурс); Запрос.УстановитьТелоИзСтроки(Ресурс); Ответ = Соединение.ОтправитьДляОбработки(Запрос);  | 
|||
| 
    6
    
        Garykom    
     гуру 
    21.03.20 
            ✎
    18:31 
 | 
         
        (0) >Ресурс = "bot" + Token + "/sendMessage?chat_id=" +
 
        Тут у тя явная ошибка Ресурс должен начинаться с "/" Ага https://tlgrm.ru/docs/bots/api Ресурс = "/bot" + Token + "/sendMessage?chat_id=" +  | 
|||
| 
    7
    
        palsergeich    
     21.03.20 
            ✎
    19:58 
 | 
         
        (6) на сколько я помню там это не надо, движок сам разделитель пути воткнет.
 
        Да и была бы ошибка 404, если дело было бы в этом  | 
|||
| 
    8
    
        palsergeich    
     21.03.20 
            ✎
    19:59 
 | 
         
        (5) 1с не умеет работать через socks5     
         | 
|||
| 
    9
    
        GedKo    
     21.03.20 
            ✎
    20:05 
 | 
         
        (8) это кусок кода из работающего проекта.     
         | 
|||
| 
    10
    
        palsergeich    
     21.03.20 
            ✎
    20:53 
 | 
         
        (9)  интересненько, надо будет попробовать     
         | 
|||
| 
    11
    
        vladnet    
     23.03.20 
            ✎
    12:30 
 | 
         
        Сегодня еще раз покопался во всем. Оказалось я неправильный chatid использовал, неправильно понимал что такое токен.
 
        У меня получилось отправлять запросы через хром, используя прокси (через расширение хрома). Но вот отправить через 1с так и не получилось (( Кому интересно чат id получается так: https://api.telegram.org/bot500232729:AAAwCACQ1ZXcF7SGcaG1WnhPMC1Wc6Ajd1o/getUpdates Отдает строку, там можно выковырять https://api.telegram.org/bot500232729:AAAwCACQ1ZXcF7SGcaG1WnhPMC1Wc6Ajd1o/sendMessage?chat_id=-1001138713717&text=testtexttesttexttesttext А это строка с отправкой сообщения Идентификатор чата и токен изменил (оставил чтобы было понятен формат) (5) (6) Попробовал не получается. Что все таки не так делаю ( (9) Можно кусок побольше, я тут уже попробовал все что мог, не получается (((  | 
|||
| 
    12
    
        vladnet    
     23.03.20 
            ✎
    12:44 
 | 
         
        В общем получилось. Хз почему не получалось.     
         | 
|||
| 
    13
    
        GedKo    
     23.03.20 
            ✎
    12:44 
 | 
         
        //пример вызова: Обновления = ВыполнитьЗапрос("getUpdates");
 
        Функция ВыполнитьЗапрос(Знач Ресурс) ПараметрыБота = ТелеграммБот_ПовтИсп.ПараметрыПодключения(); Ресурс = СтрШаблон("bot%1/%2", ПараметрыБота.Токен, Ресурс); Ресурс = СтрЗаменить(Ресурс, Символы.ПС, "%0a"); ИнтернетПрокси = Новый ИнтернетПрокси; ИнтернетПрокси.Установить("https", "socks5://" + ПараметрыБота.АдресПрокси, ПараметрыБота.ПортПрокси, ПараметрыБота.ПользовательПрокси, ПараметрыБота.ПарольПрокси, Ложь); Соединение = Новый HTTPСоединение(ПараметрыБота.Сервер, 443, , , ИнтернетПрокси, , Новый ЗащищенноеСоединениеOpenSSL()); Запрос = Новый HTTPЗапрос(Ресурс); Запрос.УстановитьТелоИзСтроки(Ресурс); Ответ = Соединение.ОтправитьДляОбработки(Запрос); ЧтениеJSON = Новый ЧтениеJSON; ЧтениеJSON.ОткрытьПоток(Ответ.ПолучитьТелоКакПоток()); ОбъектXDTO = ФабрикаXDTO.ПрочитатьJSON(ЧтениеJSON); Если Не ОбъектXDTO.ok Тогда ТекстСообщения = СтрШаблон("Код ошибки: %1. |Описание: %2.", ОбъектXDTO.error_code, ОбъектXDTO.description); ЗаписьЖурналаРегистрации("ТелеграммБотAPI.Выполнение запроса", УровеньЖурналаРегистрации.Ошибка, , , ТекстСообщения); КонецЕсли; Возврат ОбъектXDTO; КонецФункции  | 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |