Отправка сообщений через Telegram (через прокси)


Простая обработка для отправки сообщений из 1с в Телеграм конкретному пользователю. Используя прокси-сервер: jqlwb.teletype

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

Тестировал на платформе версии 1с 8.3.11
Конфигурация 1с не имеет значение. Главное чтобы было на УправляемыхФормах.

1. Запускаете обработку
2. Указываете Token чатбота Телеграм. Как получить токен и как создать чатБота Телеграм — можете загуглить — это просто, но могу пояснить:
а) Чтобы создать ЧатБота надо добавить себе в телеграме @BotFather — он выдаст инструкцию по созданию. Остается задать логин ЧатБоту. После этого вы получите Токен.
б) Чтобы пользователи могли получать сообщения от 1с надо чтобы они добавили себе вашего новосозданного ЧатБота.
3. Указываете ID пользователя Телеграм. Как узнать свой ID — нажмите на @userinfobot в Телеграме. Напишите например "привет". Получите свой id. Либо ваш знакомый может таким же способом получить свой ID и отправить его Вам что бы вы по его id отправили сообщение. Сообщение придёт от ЧатБота.
4. Пишите сообщение и нажимаете "Отправить". Готово!

Вот весь код обработки:

 

&НаСервере
Процедура ОправитьНаСервере()

Если НЕ ЗначениеЗаполнено(ТекстСообщения) Тогда
Возврат;
КонецЕсли;

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

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

КодСостояния     = Ответ.КодСостояния;
СтрокаОтвета     = Ответ.ПолучитьТелоКакСтроку();

Если КодСостояния=200 тогда
ЧтениеОтвета = Новый ЧтениеJSON;
ЧтениеОтвета.УстановитьСтроку(СтрокаОтвета);
РезультатСтруктура = ПрочитатьJSON(ЧтениеОтвета);
Если РезультатСтруктура.ok = Истина Тогда
СтруктураMessage = РезультатСтруктура.result;
КонецЕсли;
Иначе
Сообщить("КодСостояния "+КодСостояния);
Сообщить(СтрокаОтвета);
КонецЕсли;

КонецПроцедуры

&НаКлиенте
Процедура Оправить(Команда)
ОправитьНаСервере();
КонецПроцедуры

 

7 Comments

  1. vanoono

    Спасибо, просто и понятно. Прокси сервер используемый в обработке выбран случайно или есть критерии выбора ?

    Reply
  2. Deda

    (1)Благодарю! Прокси выбрал первый попавшийся.

    Reply
  3. sdwggg

    Спасибо! А то после блокировки перестало работать, не знал как правильно прописать прокси!

    Reply
  4. uno-c

    Можно еще от бота в группы писать, если бота в эти группы включить

    Reply
  5. Dwiss

    Не отправляет:

    Ошибка работы с интернет. Не могу установить соединение.

    Reply
  6. dima_finne

    Парни, проблема в прокси сервере, вот рабочий код для подключения

    Token = КодТокена;
    
    
    Если НЕ ЗначениеЗаполнено(ТекстСообщения) Тогда
    Возврат;
    КонецЕсли;
    
    ИнтернетПрокси = Новый ИнтернетПрокси(Ложь);
    
    ИнтернетПрокси.Установить(«https»,»178.128.31.153″,8080, «», «», Ложь);
    
    Соединение  =  Новый HTTPСоединение(«api.telegram.org»,443,,,ИнтернетПрокси,,Новый ЗащищенноеСоединениеOpenSSL());
    ПолучениеЗапрос = «bot»+Token+»/sendMessage?chat_id=»+ID+»&text=»+ ТекстСообщения;
    Запрос = Новый HTTPЗапрос(ПолучениеЗапрос);
    Ответ = Соединение.Получить(Запрос);
    
    КодСостояния     = Ответ.КодСостояния;
    СтрокаОтвета     = Ответ.ПолучитьТелоКакСтроку();
    
    Если КодСостояния=200 тогда
    ЧтениеОтвета = Новый ЧтениеJSON;
    ЧтениеОтвета.УстановитьСтроку(СтрокаОтвета);
    РезультатСтруктура = ПрочитатьJSON(ЧтениеОтвета);
    Если РезультатСтруктура.ok = Истина Тогда
    СтруктураMessage = РезультатСтруктура.result;
    КонецЕсли;
    Иначе
    Сообщить(«КодСостояния «+КодСостояния);
    Сообщить(СтрокаОтвета);
    КонецЕсли;

    Показать

    Рабочие прокси берите с сайта https://hidemyna.me/ru/proxy-list/?type=s#list

    Reply
  7. 🅵🅾️🆇

    Просто оставлю это тут

    https://gist.github.com/PlugFox/5f62e43c56941e4c5a244de2422ee7f8

    Пример отправки сообщений и файлов в телеграм (даже без задействования жесткого диска)

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *