Страница 1 из 1

Форматирование текста сообщения при отправке через API

СообщениеДобавлено: Ср сен 25, 2019 3:18 pm
ИгорьЧ
Добрый день.

Версия MyChat 7.7.0
Отправляю сообщение через API функцией cmd 0002
Все замечательно работает, но хотелось бы прикрутить элементарное оформление к сообщениям: цвет, жирность, оформление ссылки и т.п.
В документации не нашел информации как это сделать. Пробовал смотреть в логах как уходят оформленные сообщения и делать по аналогии - то же не получается.

Подскажите плз....

Re: Форматирование текста сообщения при отправке через API

СообщениеДобавлено: Чт сен 26, 2019 12:05 pm
Алексей Пикуров
Здравствуйте, Игорь. Готовим справку, я отвечу вам в понедельник.

Re: Форматирование текста сообщения при отправке через API

СообщениеДобавлено: Вт окт 08, 2019 5:19 pm
Алексей Пикуров
Сорри, не получается пока что выложить новые статьи, заняты другими вещами. Поставили в план работ, сделаем, когда будет время.

Re: Форматирование текста сообщения при отправке через API

СообщениеДобавлено: Чт окт 10, 2019 7:54 am
ИгорьЧ
Утро доброе.
Хорошо, жду с нетерпением (и думаю, что не только я) .

Re: Форматирование текста сообщения при отправке через API

СообщениеДобавлено: Вт ноя 12, 2019 11:31 am
Степан
Да, тоже очень жду.
Возможно, у кого-нибудь уже есть какие-либо из кодов - жирный текст, курсив, увеличенный размер,цвет - можете в личку кинуть?
А то наладил взаимодействие с 1С по нескольким документам - очень хочется определенные кусочки текста выделить для пользователя для наглядности...

Re: Форматирование текста сообщения при отправке через API

СообщениеДобавлено: Вт дек 03, 2019 5:05 pm
ЮрийИваницкий
Доброго всем дня. Тоже жду.
Если требуются сообщения системы в несколько строк, то без выделения ключевых слов не обойтись.
Надеюсь на понимание.

Re: Форматирование текста сообщения при отправке через API

СообщениеДобавлено: Ср дек 04, 2019 7:26 pm
Алексей Пикуров
Добавили в список работ, но пока этим вопросом не занимались, готовим очень большое обновление. Следите за новостями.

Re: Форматирование текста сообщения при отправке через API

СообщениеДобавлено: Чт дек 05, 2019 9:12 am
ЮрийИваницкий
Следим. Крепи́мся. Верим.

Re: Форматирование текста сообщения при отправке через API

СообщениеДобавлено: Чт янв 14, 2021 12:07 pm
Степан
Добрый день.
Обновления вышли, все замечательно - подскажите, а какие-то движения в этом направлении есть?
Уже как только не "изворачивался"...
В стандартном Integration API через Rest запрос по команде ""cmd", "0002" нет возможности передать тип сообщения, просто текст.
Поступил по другому - повесил обработчик на OnRequestByREST, перехватываю сообщения и дальше отправляю их через mSendPrivateMessage.
Но вот дальше пока проблемы. Хотел использовать тип iMsgType=5 (MSG_TYPE_MARKDOWN) - но разметка маркдаун не срабатывает...
Отпарсил сообщения, которые отсылаются между пользователями, в результате использую mSendPrivateMessage с типом MsgType=0 (MSG_TYPE_OLD_SHIT) и срокой вида "L$F-16777208#536870911#3#ITest", где кодируется соответственно цвет шрифта и фона, размер и тип шрифта.
Сообщения стали приходить с оформлением - но вот во всплывающем окошке все показывается без оформления, да еще и с управляющими символами... А ведь при обычной отсылке там показывается без оформления - значит как-то по другому работает.... - пока не разобрался (( Но зато во всплывающем окошке срабатывает обычная html разметки типа <b></b> - но вот в сообщении она не показывается....

В общем, мучаюсь с разных сторон - может быть что-то есть уже готовое, более простое?

Re: Форматирование текста сообщения при отправке через API

СообщениеДобавлено: Чт янв 14, 2021 2:24 pm
Алексей Пикуров
В стандартном Integration API через Rest запрос по команде ""cmd", "0002" нет возможности передать тип сообщения, просто текст.

Есть. Справка, параметр MsgType.

Markdown в сообщениях чата ещё не поддерживается, это наработка "на будущее".
Сообщения стали приходить с оформлением - но вот во всплывающем окошке все показывается без оформления, да еще и с управляющими символами... А ведь при обычной отсылке там показывается без оформления - значит как-то по другому работает.... - пока не разобрался (( Но зато во всплывающем окошке срабатывает обычная html разметки типа <b></b> - но вот в сообщении она не показывается....

Во всплывающем окошке будет обычный текст, никакой разметки. Насчёт html — да, всплывающее окошко поддерживает несколько примитивных тегов, но это всё, на это ориентироваться нельзя. Спасибо, кстати, что заметили, я настрою экранирование, чтобы не менялся внешний вид мессаджей во всплывающем окошке.

Насчёт цветовой разметки в чате (OLD_SHIT) — она не очень корректно работает, руки не доходят до полной доводки и документирования. Вероятно, мы её оставим для совместимости, а потом добавим внутри текста теги вроде html или phpbb, чтобы удобно было "руками" формировать сообщения при необходимости.

Re: Форматирование текста сообщения при отправке через API

СообщениеДобавлено: Чт янв 14, 2021 3:50 pm
Степан
Справка, параметр MsgType

Понял, мы просто еще на версии 8.1 - там этого не было.

Во всплывающем окошке будет обычный текст, никакой разметки.

Да это и хорошо, но там L$ показывается, начиная со второй строки, если я использую OLD_SHIT, а если во второй строке не добавлять L$, то тогда в сообщении эти строки не выводятся... Да и ладно, пусть, мелочи....

И все-же, основной вопрос - можно ли как-то отправить сообщение, например, с жирным текстом, не используя полную конструкцию "L$F-16777208#536870911#3#BTest" в сообщении с типом OLD_SHIT, а как-то проще?

Re: Форматирование текста сообщения при отправке через API

СообщениеДобавлено: Чт янв 14, 2021 3:51 pm
Алексей Пикуров
Проще пока не выйдет.

Re: Форматирование текста сообщения при отправке через API

СообщениеДобавлено: Пн апр 05, 2021 10:03 pm
Алексей Пикуров
Так, мы уже на подходе к реализации отправки форматированных сообщений. Есть MessageType, в версии 8.6 уже сделали специальный тип сообщения, я подготовлю пример, там всё будет приятно и несложно.

Re: Форматирование текста сообщения при отправке через API

СообщениеДобавлено: Чт мар 31, 2022 6:40 am
ПавелСуткин
Добрый день. Дайти ссылку пожалуйста на мануал или примеры.. Как отправлять форматированные сообщения через АПИ?

Re: Форматирование текста сообщения при отправке через API

СообщениеДобавлено: Чт мар 31, 2022 5:16 pm
Алексей Пикуров
Нету ещё документации. Война, пока что мы беженцы и работать нормально не получается. Закончится это всё, потом напишем.

Re: Форматирование текста сообщения при отправке через API

СообщениеДобавлено: Ср мар 22, 2023 2:01 pm
NeiTRoN4ik
Добрый день. Надеюсь, что разработчики будут не против, если выложу то, что удалось раскопать по этому вопросу.

Зная, из переписки выше, что новый тип сообщения все-таки был добавлен, методом перебора выяснил, что MsgType = 47

Далее, я как только не извращался с форматом html, надеясь, что он внутри, но нет..
Понять, как строить конструкцию форматированного сообщения, помог баг, который встречается довольно редко при отправке форматированного сообщения, но все ж таки иногда случается. При этом баге в конец форматированного сообщения вдруг добавляется
font]/font]

Тогда я подумал, что все должно находиться внутри конструкции [font][/font] и стал копать в этом направлении.
В итоге, потратив целый день, вот что получилось:
Код: Выделить всё
[font bg=#ff00bb color=#fac447 size=3 style=i;b;u;s;]  bla-bla-bla  [/font]

Где:
bg - цвет фона текста;
color - цвет текста;
size - размер текста;
style - набор параметров через точку с запятой: i - курсив; b - жирный; u - нижнее подчеркивание; s - перечеркивание.

К сожалению, не удалось все-таки отгадать, как реализуется выравнивание текста и цвет фона строки

Re: Форматирование текста сообщения при отправке через API

СообщениеДобавлено: Ср мар 22, 2023 8:43 pm
Алексей Пикуров
Добрый день. Без проблем.
Выравнивание делается параграфами, они идут с начала строки, вот так:

Код: Выделить всё
[p=right indent=10 color=#aabbcc]

Можно для выравнивания использовать ещё "center" и "justify". indent — отступ слева. Параграф — это одна строка. Параметры "indent" и "color" необязательны.

Если выравнивания нету (by default, по левому краю, без отступов и цветового выделения), то тег параграфа с начала строки не нужен.

Re: Форматирование текста сообщения при отправке через API

СообщениеДобавлено: Ср мар 22, 2023 8:44 pm
Алексей Пикуров
Да, ещё. В параметре "style=i;b;u;s;" не нужны точки с запятыми. Просто "style=ibus", буквы после "=" в любом порядке.

Re: Форматирование текста сообщения при отправке через API

СообщениеДобавлено: Ср мар 22, 2023 11:02 pm
NeiTRoN4ik
Спасибо!

А подскажите тогда заодно, пожалуйста, я так понимаю, что при преобразовании формата, происходит удаление незначащих символов до и после [font] и [/font]. Получается, что, например, если нужно выделить слово в предложение, то слова до и после нужного слова склеиваются с самим выделяемым словом (так происходит и в отправке из самом чата). Может быть есть какой-то неочевидный способ все-таки, чтобы они не склеились? Хотя скорее всего его нет конечно..

Re: Форматирование текста сообщения при отправке через API

СообщениеДобавлено: Ср мар 22, 2023 11:04 pm
Алексей Пикуров
Покажите пример, что вы хотите сделать.

Что-то такое?

test-selected-text.png
test-selected-text.png (1.43 КБ) Просмотров: 40035

Re: Форматирование текста сообщения при отправке через API

СообщениеДобавлено: Ср мар 22, 2023 11:18 pm
NeiTRoN4ik
Да, именно. Сейчас такое слипается

Re: Форматирование текста сообщения при отправке через API

СообщениеДобавлено: Ср мар 22, 2023 11:20 pm
Алексей Пикуров
Ничего не слипается. Содержимое строки:

Код: Выделить всё
test [font color=#FFFFFF bg=#FF0000 style=bi]\u0432\u044b\u0434\u0435\u043b\u044f\u0435\u043c\u044b\u0439 \u0442\u0435\u043a\u0441\u0442[/font] test 2

Re: Форматирование текста сообщения при отправке через API

СообщениеДобавлено: Ср мар 22, 2023 11:29 pm
NeiTRoN4ik
Может быть это пофиксили, у меня сейчас 8.9.0 версия

Сейчас выглядит так:
ввод форматированного текста.PNG
ввод форматированного текста.PNG (7.53 КБ) Просмотров: 40032

сообщение форматированного текста.PNG
сообщение форматированного текста.PNG (2.86 КБ) Просмотров: 40032

Re: Форматирование текста сообщения при отправке через API

СообщениеДобавлено: Ср мар 22, 2023 11:30 pm
Алексей Пикуров
Ну, во-первых, используйте последнюю версию. Сейчас это 2023.1.5.

P.S. Чтобы не заниматься угадыванием, что да как, вы можете в консоли клиента включить debug on, чтобы видеть содержимое команд, что уходит на сервер и приходит на клиент. Выключается — debug off.

Включаете дебаг, отправляете сообщение, смотрите, что внутри, в консоли (Ctrl+`).
Справка по включению/выключению протоколирования трафика на MyChat Client

Re: Форматирование текста сообщения при отправке через API

СообщениеДобавлено: Ср мар 22, 2023 11:35 pm
Алексей Пикуров
Может быть это пофиксили, у меня сейчас 8.9.0 версия

Да, пофиксили в 8.12.

Re: Форматирование текста сообщения при отправке через API

СообщениеДобавлено: Ср мар 22, 2023 11:44 pm
NeiTRoN4ik
P.S. Чтобы не заниматься угадыванием, что да как, вы можете в консоли клиента включить debug on, чтобы видеть содержимое команд, что уходит на сервер и приходит на клиент. Выключается — debug off.

ого, вот как оказывается можно было легко узнать про способ отправки форматированного сообщения со всеми атрибутами ...

Спасибо за ответы!

Re: Форматирование текста сообщения при отправке через API

СообщениеДобавлено: Ср мар 22, 2023 11:44 pm
Алексей Пикуров
В MyChat много чего есть хорошего :) Пожалуйста.