|
Отправка сообщения в телеграмм | ☑ | ||
---|---|---|---|---|
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; КонецФункции |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |