Ответы на все вопросы
Как войти, как пользоваться чатами, где настройки безопасности. Не нашли ответ — напишите в поддержку, ответим.
01 Аккаунт и регистрация
Нужен ли email для регистрации в UniTalk?
Что такое UniTalk ID и зачем нужен username?
@username:unitalks.duckdns.org). Отображаемое имя (Display Name) можно менять когда угодно,
а username остаётся уникальным для отправки приглашений.
Как восстановить забытый пароль?
Можно ли войти по номеру телефона?
02 Чаты и переписка
Как упомянуть пользователя в сообщении?
@ и начните набирать имя или логин собеседника. Появится всплывающий список
участников — выберите нужного, и он получит персонализированное уведомление.
Как отправить файлы или фото в исходном качестве?
Как работают отметки о прочтении (Read Receipts)?
Как найти старое сообщение или ссылку?
03 Настройки и кастомизация
Как переключить оформление между светлой и тёмной темой?
Как настроить индивидуальные уведомления для комнат?
Как сменить аватарку и отображаемое имя?
04 Комнаты и шифрование
Как сделать комнату полностью приватной?
Увидят ли новые участники историю до их вступления?
Что такое резервная копия ключей шифрования?
05 Для разработчиков
Как создавать и подключать ботов в UniTalk?
Ботов для UniTalk можно создавать и настраивать через панель управления сервером: admin-unitalks.duckdns.org ↗.
Возможности создания и интеграции ботов:
- Регистрация сервисного аккаунта: создайте пользователя для бота (например,
@helper_bot:unitalks.duckdns.org) в панели admin-unitalks.duckdns.org. - Получение токена доступа: сгенерируйте Access Token для авторизации запросов через стандартный Matrix Client-Server API.
- Управление комнатами: приглашайте бота в личные диалоги, рабочие группы или публичные каналы, выдавайте права модератора или администратора.
- Поддержка любого стека: ботов можно писать на Python (
matrix-nio), JavaScript/TypeScript (matrix-js-sdk), Go, Rust или на любых языках через обычные HTTP-запросы. - Интерактивность: бот может отправлять не только обычный текст и файлы, но и полноценные HTML-пузыри — интерактивные мини-приложения с кнопками, формами и анимацией.
HTML-пузыри: что это такое и как отправлять сообщения-страницы?
HTML-пузырь — обычное сообщение, которое показывается как маленькая веб-страница (HTML + CSS + JavaScript) прямо в чате, без отдельного окна. Работает в веб-версии UniTalk и на Android.
Как отправить в чат:
-
Своя страница: напишите в чате команду
/htmlи после пробела код (можно в несколько строк, перенос строки — Shift+Enter).
Пример:
/html <h3>Привет</h3><button onclick="this.textContent='Нажато'">Нажми</button> -
Готовые примеры для быстрого тестирования:
/htmldemo товар,/htmldemo плеер,/htmldemo график,/htmldemo код,/htmldemo талон,/htmldemo форма. -
Прозрачность и просмотр исходного кода: под пузырём кнопка
</> Кодпоказывает исходник. Получатель всегда видит, что внутри. -
Проверка вёрстки: проверить страницу можно командой
/htmlв своём чате «Избранное».
Из чего состоит сообщение: формат Matrix и поле im.unitalk.html_bubble
Обычное текстовое сообщение Matrix (msgtype: m.text). Его body — запасной текст для клиентов без поддержки пузырей. Страница лежит в поле im.unitalk.html_bubble:
{
"msgtype": "m.text",
"body": "Интерактивный виджет (откройте в UniTalk)",
"im.unitalk.html_bubble": {
"html": "<ваш код>",
"title": "Название",
"height": 300
}
}
titleиheightнеобязательны.- Размер сообщения — до 48 КБ.
- Боты, созданные через admin-unitalks.duckdns.org, отправляют такие события напрямую через Matrix Client-Server API.
Какой размер у пузыря, адаптивная вёрстка и переменные темы
Ширина и адаптивность:
По ширине пузыря чата: до 440 пикселей на вебе, на Android не уже 280 dp. Пишите вёрстку резиновой: width: 100%, flex, grid.
Высота:
Страница сама сообщает свою высоту: внутри пузыря стоит маленький скрипт, который измеряет высоту <body> (вместе с его полями) при загрузке, при любом изменении размера и раз в 0,4 секунды. Окно подстраивается: минимум 48, максимум 560 пикселей (дальше появляется прокрутка внутри пузыря).
Почему бывает странно (обрезается):
Если вёрстка привязана к высоте окна (height: 100vh, min-height: 100vh, position: fixed/absolute у всего содержимого, центрирование по высоте окна), то высота «окна» — это высота самого пузыря (сначала 120 пикселей на вебе и 140 dp на Android), и страница сжимается вместе с ним: содержимое обрезается.
Решения:
- Не привязывайте вёрстку к высоте окна: задавайте обычную высоту содержимого (
padding,height: 240px). - Или явно напишите нужную высоту:
<meta name="bubble-height" content="300">в начале страницы (от 48 до 560), либо полеheightв сообщении. Тогда пузырь не меньше этой высоты.
Тема:
У страницы есть переменные --fg (цвет текста), --accent (фиолетовый), --line и --soft (линии и мягкий фон); они сами меняются для светлой и тёмной темы. Фон пузыря прозрачный: задайте свой, если нужен.
Что можно и что нельзя: безопасность и песочница
Можно:
Любой HTML и CSS, JavaScript (в том числе eval / new Function), canvas, Web Audio (звук после нажатия кнопки), таймеры, формы без отправки (кнопки, переключатели, поля, списки), картинки и звуки только как data:-адреса внутри страницы.
Нельзя (закрыто политикой безопасности):
- Сеть: нет запросов
fetch/ XHR / WebSocket, нет внешних скриптов, стилей, шрифтов и картинок по ссылкам; - Доступ к вашим данным: страница не видит ни чата, ни аккаунта, ни хранилища браузера, ни файлов (на вебе это изолированная рамка
sandboxбезallow-same-origin, на Android WebView с блокировкой сети и файлов); - Переходы и устройства: переходы по ссылкам, всплывающие окна, отправка форм, камера, микрофон, геопозиция.
Единственное, что страница может сообщить приложению, — свою высоту.
Советы:
- Делайте кнопки не меньше 40 пикселей высотой: пузырь нажимают пальцем.
- Не запускайте бесконечные циклы без пауз: они тормозят вкладку.
- Проверить вёрстку можно командой
/htmlв «Избранном».
Остались вопросы?
Напишите в поддержку прямо из приложения: поможем разобраться или подскажем, как настроить под себя.