Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save k2589/392f484cc94077d5c40840b93bb8b7ea to your computer and use it in GitHub Desktop.

Select an option

Save k2589/392f484cc94077d5c40840b93bb8b7ea to your computer and use it in GitHub Desktop.
Процедура ОтправитьСообщение(Адресат, Сообщение, ДополнительныеПараметры = Неопределено) Экспорт
Если ПараметрыАвторизации = Неопределено Тогда
ВызватьИсключение СтрШаблон("Для отправки сообщения необходимо выполнить инициализацию транспорта %1", Протокол().Представление);
КонецЕсли;
ТекстСообщения = СтрЗаменить(Сообщение, Символы.ПС, "%0A");
ПараметрыСообщения = Новый Структура("chat_id, text", Адресат, ТекстСообщения);
ОпределитьТипСообщения(ДополнительныеПараметры, ПараметрыСообщения);
КодСостоянияСоединения = 301;
КоличествоПопытокПодключения = 0;
Попытка
ОтветHTTP = ВызватьМетодTelegramAPI("sendMessage", ПараметрыСообщения);
Если ОтветHTTP.КодСостояния <> 200
Тогда
Пока ((КодСостоянияСоединения > 300) И (КоличествоПопытокПодключения < 25)) Цикл
Попытка
Прокси = СоздатьДинамическийПрокси(КоличествоПопытокПодключения);
ОтветHTTP = ВызватьМетодTelegramAPI("sendMessage", ПараметрыСообщения, Прокси);
КодСостоянияСоединения = ОтветHTTP.КодСостояния;
КоличествоПопытокПодключения = КоличествоПопытокПодключения + 1;
Исключение
Приостановить(2);
КоличествоПопытокПодключения = КоличествоПопытокПодключения + 1;
КонецПопытки;
КонецЦикла;
КонецЕсли;
Исключение
Пока ((КодСостоянияСоединения > 300) И (КоличествоПопытокПодключения < 25)) Цикл
Попытка
Прокси = СоздатьДинамическийПрокси(КоличествоПопытокПодключения);
ОтветHTTP = ВызватьМетодTelegramAPI("sendMessage", ПараметрыСообщения, Прокси);
КодСостоянияСоединения = ОтветHTTP.КодСостояния;
КоличествоПопытокПодключения = КоличествоПопытокПодключения + 1;
Исключение
Приостановить(2);
КоличествоПопытокПодключения = КоличествоПопытокПодключения + 1;
КонецПопытки;
КонецЦикла;
КонецПопытки;
КонецПроцедуры
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment