Добрый день. Подскажите пожалуйста, есть тч, в ней 2 колонки "ИмяСсылки" и "СсылкаНаСайт", как отправить из тг данные ссылки, чтобы сообщение пришло "ИмяССылки" (ссылка на сайт). Делаю все через "sendMessage"
но так не работает. Выводит сообщение в виде
"ИмяСсылки1" но тут есть ссылка и то как то наполовину
"ИмяСсылки2" - тут просто текст и дальше тоже пошел текст
ИначеЕсли ТекстЗапроса = "/фотографии" Тогда
СсылкаНаФото = Справочники.ПользовательскиеПоля.НайтиПоКоду("000000001");
Ссылка = СсылкаНаФото.СсылкиНаФотографии;
Длина2 = 0;
МассивURL = Новый Массив;
МаасивСсылок = Новый Массив;
Для каждого Элемент из Ссылка Цикл
МаасивСсылок.Добавить(Элемент.ИмяСсылки);
ДлинаСтр = СтрДлина(Элемент.ИмяСсылки);
Длина2 = Длина2+ДлинаСтр;
СтруктураURL = Новый Структура("url", Элемент.СсылкаНаСайт);
СтруктураURL.Вставить("type","text_link");
СтруктураURL.Вставить("offset",0);
СтруктураURL.Вставить("length",ДлинаСТр);
//
////МассивURL = Новый Массив;
МассивURL.Добавить(СтруктураURL);
КонецЦикла;
СтруктураСообщения.Вставить("text",МаасивСсылок);
СтруктураСообщения.Вставить("entities",МассивURL);
Показатьно так не работает. Выводит сообщение в виде
"ИмяСсылки1" но тут есть ссылка и то как то наполовину
"ИмяСсылки2" - тут просто текст и дальше тоже пошел текст
По теме из базы знаний
- Рассылки из 1С через Email, SMS, WhatsApp, Telegram - Директ Маркетинг
- Отправка электронных писем по задолженностям клиентов (ERP, УТ 11) V 6.01 от 2020.08.20
- Интеграция с маркетплейсами МегаМаркет, Wildberries, OZON, ЯндексМаркет, VK, Avito, Леруа Мерлен, Aliexpress, КУПЕР, Dostavista
- Обзор полезных методов БСП 3.1.4
- Автоматическое групповое создание документов взаимозачета задолженности в УТ 11, КА 2, ЕРП для поставщиков и клиентов
Найденные решения
Нашел возможно способ более удобный, не через HTML, ставите
parse_mode=markdown
а ссылки в таком виде
[ИмяСсылки](Ссылка)
также Элемент.СсылкаНаСайт и Элемент.СсылкаНаСайт должны быть с типом Строка
parse_mode=markdown
а ссылки в таком виде
СсылкиТекст = "";
Для каждого Элемент из Ссылка Цикл
СсылкиТекст = СсылкиТекст + "[" + Элемент.ИмяСсылки + "]" + "("+Элемент.СсылкаНаСайт + ")" + Символы.ПС;
КонецЦикла;
СтруктураСообщения.Вставить("text", СсылкиТекст);
[ИмяСсылки](Ссылка)
также Элемент.СсылкаНаСайт и Элемент.СсылкаНаСайт должны быть с типом Строка
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
я в таком варианте отправляю, в текст для отправки просто передается ссылка и она корректно отображается
https://forum.infostart.ru/
Ресурс = "bot" + Token + "/sendMessage?chat_id=" + Формат(ЧатID, "ЧДЦ = 0; ЧГ = ") + "&text= " + Сообщение + "&parse_mode=markdown";
Соединение = Новый HTTPСоединение(Сервер,443,,,,, Новый ЗащищенноеСоединениеOpenSSL());
Запрос = Новый HTTPЗапрос(Ресурс);
Попытка
Ответ = Соединение.Получить(Запрос);
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
Показатья в таком варианте отправляю, в текст для отправки просто передается ссылка и она корректно отображается
(2)
СПАСИБОО!!!! децйствитель, не передавались параметра ид
Помогите, пожалуйста, расставить кавычки правильно в тексте
СтруктураСообщения.Вставить("text","|<a hrеf=" "https://infostart.ru/" " >Ссылка на Infostart</a >");
вместо
https://infostart.ru/ " - Элементы.Ссылка
Ссылка на Infostart - Элементы.ИмяСсылки
/sendMessage?chat_id=" + Формат(ЧатID, "ЧДЦ = 0; ЧГ = ") + "&text= " + Сообщение + "&parse_mode=markdown"
СПАСИБОО!!!! децйствитель, не передавались параметра ид
Помогите, пожалуйста, расставить кавычки правильно в тексте
СтруктураСообщения.Вставить("text","|<a hrеf=" "https://infostart.ru/" " >Ссылка на Infostart</a >");
вместо
Ссылка на Infostart - Элементы.ИмяСсылки
(6)
Процедура ОтправитьСообщение (СтруктураСообщения,ok,ИмяФайлаОтправки="",ЗаголовокФайла="",Настройка) Экспорт
Сервер = "api.telegram.org";
//Прокси = ПолучитьПрокси();
Соединение = Новый HTTPСоединение(Сервер,,,,,,Новый ЗащищенноеСоединениеOpenSSL);
Запрос = Новый HTTPЗапрос();
Если ЗначениеЗаполнено(ИмяФайлаОтправки) Тогда
//АдресФайла = СтруктураСообщения.text;
//СтруктураСообщения.удалить("text");
Команда = "sendDocument";
Boundary = СтрЗаменить(Строка(Новый УникальныйИдентификатор()),"-","");
Запрос.Заголовки.Вставить("Content-Type","multipart/form-data; boundary="+Boundary);
//Запрос.Заголовки.Вставить("Connection", "keep-alive");
//ИмяФайлаДляЗапроса = ПолучитьТектсФайлаОтправки(Boundary,ИмяФайлаОтправки,СтруктураСообщения,ЗаголовокФайла);
//Запрос.Заголовки.Вставить("Content-Length", Формат(СтрДлина(ТелоОтправки),"ЧГ=0"));
//Запрос.УстановитьИмяФайлаТела(ИмяФайлаДляЗапроса);
Иначе
Команда = "sendMessage";
СтрокаПоПараметрам = ПолучитьСтрокуТелаЗапроса(СтруктураСообщения);
//СтрокаПоПараметрам = ПолучитьСтрокуПоПараметрамЖСОН(СтруктураСообщения);
Запрос.Заголовки.Вставить("Content-Type","application/json");
//Запрос.УстановитьТелоИзСтроки(СтрокаПоПараметрам,,ИспользованиеByteOrderMark.НеИспользовать);
Запрос.УстановитьТелоИзСтроки(СтрокаПоПараметрам,"CESU-8");
КонецЕсли;
Ресурс = "bot"+Настройка.КлючАПИ+"/"+Команда + "&parse_mode=HTML";
Запрос.АдресРесурса = Ресурс;
Ответ = Соединение.ОтправитьДляОбработки(Запрос);
Запрос = Неопределено;
Соединение= Неопределено;
Если ЗначениеЗаполнено(ИмяФайлаОтправки) Тогда
УдалитьФайлы(ИмяФайлаОтправки);
КонецЕсли;
ОтветСоотв = ПолучитьСтруктуруИзJSON(Ответ.ПолучитьТелоКакСтроку());
ok = ?(ОтветСоотв.Свойство("ok"),ОтветСоотв["ok"],неопределено);
Если ok = Ложь Тогда
Сообщить(ОтветСоотв["description"]);
КонецЕсли;
Соединение = Неопределено;
КонецПроцедуры
Показать
(26)
В итоге переделал так. Но на печать выводит "Массив". Без ссылки и всего прочего
ИначеЕсли ТекстЗапроса = "/фотографии" Тогда
СсылкаНаФото = Справочники.ПользовательскиеПоля.НайтиПоКоду("000000001");
Ссылка = СсылкаНаФото.СсылкиНаФотографии;
//Длина2 = 0;
МассивСсылок = Новый Массив;
МассивИмен = Новый Массив;
//МассивURL = Новый Массив;
//МаасивСсылок = Новый Массив;
Для каждого Элемент из Ссылка Цикл
МассивИмен.Добавить(Элемент.ИмяСсылки);
МассивСсылок.Добавить(Элемент.СсылкаНаСайт);
КонецЦикла;
СтруктураСообщения.Вставить("text","<a hrеf=""" + МассивСсылок + """>" + МассивИмен + "</a>");
ПоказатьВ итоге переделал так. Но на печать выводит "Массив". Без ссылки и всего прочего
(27)тогда попробуйте с таким вариантом
СсылкаНаФото = Справочники.ПользовательскиеПоля.НайтиПоКоду("000000001");
Ссылка = СсылкаНаФото.СсылкиНаФотографии;
СсылкиТекст = "";
Для каждого Элемент из Ссылка Цикл
СсылкиТекст = СсылкиТекст + "<a hrеf=""" +Элемент.СсылкаНаСайт + """>" + Элемент.ИмяСсылки + "</a>" + Символы.ПС);
КонецЦикла;
СтруктураСообщения.Вставить("text", СсылкиТекст);
Показать
Нашел возможно способ более удобный, не через HTML, ставите
parse_mode=markdown
а ссылки в таком виде
[ИмяСсылки](Ссылка)
также Элемент.СсылкаНаСайт и Элемент.СсылкаНаСайт должны быть с типом Строка
parse_mode=markdown
а ссылки в таком виде
СсылкиТекст = "";
Для каждого Элемент из Ссылка Цикл
СсылкиТекст = СсылкиТекст + "[" + Элемент.ИмяСсылки + "]" + "("+Элемент.СсылкаНаСайт + ")" + Символы.ПС;
КонецЦикла;
СтруктураСообщения.Вставить("text", СсылкиТекст);
[ИмяСсылки](Ссылка)
также Элемент.СсылкаНаСайт и Элемент.СсылкаНаСайт должны быть с типом Строка
(35)
Тип строка. Ссылки пришли) только сами ссылки , без имен(
СсылкиТекст + "[" + Элемент.СсылкаНаСайт "]" + "("+Элемент.СсылкаНаСайт + ")";
Тип строка. Ссылки пришли) только сами ссылки , без имен(
ИначеЕсли ТекстЗапроса = "/фотографии" Тогда
СсылкаНаФото = Справочники.ПользовательскиеПоля.НайтиПоКоду("000000001");
Ссылка = СсылкаНаФото.СсылкиНаФотографии;
СсылкиТекст = "";
Для каждого Элемент из Ссылка Цикл
СсылкиТекст = СсылкиТекст + "[" + Элемент.СсылкаНаСайт + "]" + "("+Элемент.ИмяСсылки + ")" + Символы.ПС;
//СсылкиТекст = СсылкиТекст + "<a hrеf=""" +Элемент.СсылкаНаСайт + """>" + Элемент.ИмяСсылки + "</a>" + Символы.ПС;
КонецЦикла;
СтруктураСообщения.Вставить("text", СсылкиТекст);
Показать
(37)
только теперь другая ссылка не отпраляется(
только теперь другая ссылка не отпраляется(
ИначеЕсли ТекстЗапроса = "/написать в телеграмм менеджеру головной щелково" Тогда
Контакты1 = Справочники.ПользовательскиеПоля.НайтиПоКоду("000000001");
СтруктураСообщения.Вставить("text", "Напишите нам в бот в Щелково");
СтруктураURL = Новый Структура("url",Контакты1.ТГЩелково);
СтруктураURL.Вставить("type","text_link");
СтруктураURL.Вставить("offset",0);
СтруктураURL.Вставить("length",28);
МассивURL = Новый Массив;
МассивURL.Добавить(СтруктураURL);
СтруктураСообщения.Вставить("entities",МассивURL);
Показать
(45)"&reply_markup=" + ТекстКнопок к общему запросу
и тут можно добавлять нужное количество кнопок
ТекстКнопок = "
|{
| ""inline_keyboard"": [
| [
| {
| ""text"": ""Нажми кнопку"",
| ""callback_data"": ""ОбработкаНажатияКнопки"",
| ""url"": ""Ссылка на какой-нибудь сайт""
| }
| ]
| ]
|}
|";
Показатьи тут можно добавлять нужное количество кнопок
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот