|
Система взаимодействия отправка сообщений в телеграм программно | ☑ | ||
---|---|---|---|---|
0
arbate34
31.07.23
✎
09:14
|
Вводные:
Система взаимодействия включена и работает; Бот создан - работает; Интеграция включена и работает. Проблема: Если руками, из приложения писать в обсуждение, созданное сообщением из телеги, то сообщения уходят в телегу; Но когда генерирую сообщение в программе и отправляю туда же, то сообщение в приложении появляется, а в телеге его нету. Код: Процедура ОтправитьУведомление(Получатель, Тема, ТекстСообщения) ИДОСВ = Новый ИдентификаторОбсужденияСистемыВзаимодействия("8a907721-dc87-444d-a2f1-9642b3e941bd"); Обсуждение = СистемаВзаимодействия.ПолучитьОбсуждение(ИДОСВ); Участники = Обсуждение.Участники; Сообщение = СистемаВзаимодействия.СоздатьСообщение(Обсуждение.Идентификатор); ОтправляемыйТекст = Тема + Символы.ПС + ТекстСообщения; Для Каждого Участник ИЗ Участники Цикл Сообщение.Получатели.Добавить(Участник); КонецЦикла; Сообщение.Текст = Новый ФорматированнаяСтрока(ОтправляемыйТекст); Сообщение.Записать(); КонецПроцедуры |
|||
1
Tatitutu
31.07.23
✎
09:26
|
"Проблема:
Если руками, из приложения писать в обсуждение, созданное сообщением из телеги, то сообщения уходят в телегу; Но когда генерирую сообщение в программе и отправляю туда же, то сообщение в приложении появляется, а в телеге его нету" По всеобщему мнению: Это правило _ бот не умеем читать сообщения бота. "сколько интересных идей было разбито об данный шаблон" Я тоже с этим столкнулся, искал помощи и решения - не нашёл. Но, мысль покоя не давала и я нашёл решение. Скоро презентация! |
|||
2
arbate34
31.07.23
✎
13:48
|
Решил попробовать через api
снова проблема: &НаСервере Процедура ОтправитьЗапросНаСервере() ТокенТГ = Константы.ТокенТГ.Получить(); СоединениеHTTP = Новый HTTPСоединение("api.telegram.org",443,,,,,Новый ЗащищенноеСоединениеOpenSSL(),); ЗапросHTTP = Новый HTTPЗапрос; ЗапросHTTP.Заголовки.Вставить("Content-type", "application/json"); ЗапросHTTP.АдресРесурса = "bot" + ТокенТГ + "/" + "getUpdates"; ОтветHTTP = СоединениеHTTP.Получить(ЗапросHTTP); Если ОтветHTTP.КодСостояния = 200 Тогда РезультатЗапроса = ОтветHTTP.ПолучитьТелоКакСтроку(); КонецЕсли; КонецПроцедуры &НаКлиенте Процедура ОтправитьЗапрос(Команда) ОтправитьЗапросНаСервере(); КонецПроцедуры Выдаёт ошибку: {ОбщаяФорма.ПодключениеПользователяТелеграм.Форма(12)}: Ошибка при вызове метода контекста (Получить) ОтветHTTP = СоединениеHTTP.Получить(ЗапросHTTP); по причине: Ошибка работы с Интернет: Couldn't resolve host name по причине: Ошибка работы с Интернет: Couldn't resolve host name Делаю всё по видео инструкции, которой чуть больше месяца. Там работает, а у меня вот. |
|||
3
vova1122
31.07.23
✎
15:03
|
Сервер = "api.telegram.org";
Ресурс= "bot" + Токен + "/getUpdates"; Соединение = Новый HTTPСоединение(Сервер,443,,,,5,Новый ЗащищенноеСоединениеOpenSSL()); Запрос = Новый HTTPЗапрос(Ресурс); Ответ = Соединение.Получить(Запрос); ДвоичныеДанныеОтвета = Ответ.ПолучитьТелоКакДвоичныеДанные(); ДвоичныеДанныеОтвета.Записать("C:\Телеграм\sss1.txt"); |
|||
4
vova1122
31.07.23
✎
15:08
|
Кстати Телеграм не понимает Символы.ПС
Поэтому нужно сделать: ТекстСообщения=СтрЗаменить(ТекстСообщения,Символы.ПС,"%0A"); |
|||
5
Tatitutu
31.07.23
✎
20:52
|
(4) а, Телеграмм об этом знает?
|
|||
6
arbate34
01.08.23
✎
08:56
|
(3) Сервер = "api.telegram.org";
Ресурс= "bot" + ТокенТГ + "/getUpdates"; Соединение = Новый HTTPСоединение(Сервер,443,,,,5,Новый ЗащищенноеСоединениеOpenSSL()); Запрос = Новый HTTPЗапрос(Ресурс); Ответ = Соединение.Получить(Запрос); Тоже выдаёт ошибку: {ОбщаяФорма.ПодключениеПользователяТелеграм.Форма(12)}: Ошибка при вызове метода контекста (Получить) ОтветHTTP = СоединениеHTTP.Получить(ЗапросHTTP); по причине: Ошибка работы с Интернет: Couldn't resolve host name по причине: Ошибка работы с Интернет: Couldn't resolve host name |
|||
7
arbate34
01.08.23
✎
08:59
|
Может у меня с платформой что то не то?
Запрос, например. отправляется не в кодировке UTF-8 если я просто в браузере делаю запрос, ответ "Ок" = True... |
|||
8
arbate34
01.08.23
✎
09:03
|
Может в конфигурации что-нибудь должно быть?
Конфигурация само написанная без БСП. |
|||
9
vova1122
01.08.23
✎
09:17
|
(5) когда я писал примерно 5 лет назад - телеграм этого незнал. Теперь оказывается уже знает
(8) Ничего дополнительно не нужно. У меня на древней 8.3.11 работает (также простенькая самописка без наворотов) |
|||
10
arbate34
01.08.23
✎
09:22
|
(9) что-же тогда может быть не так, я прямо скопировал ваш листинг из (3)
|
|||
11
vova1122
01.08.23
✎
09:28
|
(10) в коде один текст, в ошибке другой текст (6). Точно в нужном месте поменяли?
|
|||
12
vova1122
01.08.23
✎
09:34
|
Еще попробовать ТокенТГ не брать из Константы, а тупо прописать именно в этом коде
ТокенТГ="tyjtuj77777jjjjjjj7jh65h"; |
|||
13
arbate34
01.08.23
✎
09:35
|
(11) Текст ошибки с (2) взял.
Суть та же была, переменная "ОтветHTTP" стала "Ответ" |
|||
14
arsik
01.08.23
✎
09:36
|
У него же четко пишется - на днс сервере не найдено имя api.telegram.org.
|
|||
15
vova1122
01.08.23
✎
09:37
|
(14) тут я пас
|
|||
16
arbate34
01.08.23
✎
09:38
|
(12) Тоже самое
(14) И что делать? Провайдеру вопрос задавать? типа всё ещё телега заблокирована? |
|||
17
arbate34
01.08.23
✎
09:39
|
(14) Но я с того же компа в браузере делаю запрос, и получаю положительный ответ
|
|||
18
arsik
01.08.23
✎
09:39
|
Может и сообщения в телеграмм не уходят по этому же.
У тебя на сервере, где 1с развернута недоступен api.telegram.org или просто сервер приложения не имеет доступ наружу. Возможно когда ручками пишем в систему взаимодействия - это через клиента уходит, а через код то все происходит в контексте сервера. Сервер взаимодействия доступен а телеграм нет. |
|||
19
arsik
01.08.23
✎
09:40
|
(17) С какого - с того же?
|
|||
20
vova1122
01.08.23
✎
09:41
|
Попробуй ping api.telegram.org
проходит или нет? |
|||
21
arsik
01.08.23
✎
09:41
|
(16) Да там дохуя может быть проблем:
настойки фаервола настройки днс может где то прокси прописан может домен у вас криво настроен |
|||
22
arsik
01.08.23
✎
09:42
|
(20) Так это с клиента и ни очем не скажет. Нужно от сервера взаимодействия и от сервера 1С это делать
|
|||
23
arbate34
01.08.23
✎
09:44
|
(19) с сервера где эта база
(20) Кстати да, там не проходит, а на моём локальном проходит. Наводку понял, буду разбираться. Спасибо. |
|||
24
arbate34
03.08.23
✎
09:05
|
ИТОГО:
Через api не работало, потому что были проблемы с настойками DNS. Устранено. И теперь через api приём и отправка сообщений работает. Потом, в свободное время, буду экспериментировать с СВ. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |