
Язык 🇺🇦 Русский (Украина)
Основы
Внешний вид
Комментарии в реальном времени
Постраничная навигация и сортировка
Поле ответа
Единый вход (SSO)
Анонимные комментарии
Разное
Настройки и конфигурация
Контекст
Здесь вы найдете подробную документацию по каждой из функций и параметров, которые поддерживает виджет комментариев.
Эта документация охватит основные концепции и подробно рассмотрит каждую область функциональности, включая практические руководства и распространённые подводные камни.
Будут приведены примеры кода с выделением соответствующих строк. Там, где это применимо, будут предоставлены скриншоты страниц настройки.
Примеры кода будут использовать нашу библиотеку на чистом JavaScript, однако параметры конфигурации используют те же самые имена для всех версий виджета комментариев (React, Vue и т.д.).
Большинство настроек и функций, описанных в этом руководстве, не требуют написания какого-либо кода.
Идентификация вашего аккаунта 
You may notice that the comment widget can be used with a Tenant ID of "demo", for example:
Run 
This is only meant to try out and play with the comment widget. In production, you would pass your Tenant ID, like so:
Run 
Your Tenant ID can be found already applied on the comment widget фрагменті коду у вашому акаунті.
You can also find your Tenant ID and manage your API keys на сторінці облікових даних API.
From this point on, if you are logged into FastComments, the code examples will use your real Tenant ID (if you are logged in on https://fastcomments.com).
Как комментарии привязываются к страницам и статьям 
When rendering a comment thread, or leaving a comment, FastComments needs to know what page, or article, or product those comments belong to.
To do this, we use something we call the "URL ID". It's either an identifier, like a string or a number, or a URL.
By default, if you do not specify the urlId, it will become the page URL. We will take the current page URL, and clean it to remove any common marketing parameters or tracking identifiers.
In the case of third party integrations, like WordPress, our plugin will usually use the identifier that represents the current information being viewed as the URL ID, for example the article/page id.
Run 
One thing that we'll often reference in this document is the Widget Customization UI.
This UI can be used to make many changes to the comment widget without using code.
When creating a customization rule, we'll often want it to apply to all pages to our site. However, in some cases we want to customize the comment widget on a particular page, either to apply custom styling, or maybe make comments for that particular page anonymous. You could also, for example, have live comments appear right away on some pages, while hiding them under notification buttons on others.
This is all possible via the URL ID input field on this page, which looks like as follows:
The value in this field should match the urlId parameter passed into the comment widget. If you want your customization rule to be urlId agnostic, leave this field empty or enter *.
As of 2023 the URL ID field in widget customization now also takes patterns! For example you may
have */blog/* to add styling specific to your blog and */store/* to have styling specific to your store,
all while using the same domain.
Подводные камни
- If your page has hash parameters (like example.com#page-1) - this will become part of the URL ID, by default.
- During migrations, for example from WordPress to Gatsby, you may have to migrate the URL ID comment values after the initial migration. For that, reach out to us.
Отображение тех же комментариев на разных страницах 
Поскольку параметр urlId позволяет нам определить, к какой странице или идентификатору привязаны комментарии, мы можем просто установить urlId на одинаковое значение на этих страницах.
Run 
Пользовательские стили 
FastComments разработан для настройки. Сам виджет комментариев запускается внутри iframe по соображениям безопасности, поэтому чтобы применить пользовательские стили, нужно следовать одному из двух подходов.
Первый, самый простой способ, и тот, который мы предпочитаем — использовать страницу настройки виджета.
В разделе настройки виджета найдите «Показать расширенные параметры», в котором есть область с названием «Пользовательский CSS»:
Этот подход имеет ряд преимуществ:
- Введённый CSS минифицируется перед отправкой пользователю, и форматирование сохраняется единообразным в интерфейсе редактирования.
- Вы получаете все преимущества интерфейса настройки виджета, например возможность легко настраивать виджет комментариев по-разному для разных сайтов.
- Когда мы вносим изменения в виджет комментариев, ваши пользовательские стили будут тестироваться в рамках нашего процесса релиза.
Второй подход — указать параметр customCSS в конфигурации виджета, следующим образом:
Run 
Однако у этого подхода есть ограничения:
- Существует ограничение на объём пользовательского CSS, который может быть передан, прежде чем наши серверы отклонят запрос из‑за размера заголовков.
- Вам придётся управлять пользовательским CSS в вашей инфраструктуре и системе сборки. Это может быть скорее плюсом, чем минусом.
- Существует дополнительный оверхед при отправке пользовательского CSS по сети дважды — он должен быть отправлен на наши серверы, а затем снова включён в содержимое iframe. Однако для большинства объёмов полезной нагрузки это незаметно.
- Распространённая оптимизация — минификация CSS для уменьшения размера при передаче по сети, однако в этом подходе вам придётся этим заниматься самостоятельно.
- Ваш пользовательский CSS не будет тестироваться нами при внесении изменений.
External CSS Files
Вы можете заставить виджет подтянуть внешний файл, используя @import!
Рекомендуется помещать @import в правило настройки. Так, если нам понадобится внести изменение в виджет комментариев, мы сможем использовать инструменты автоматизации для проверки вашей конфигурации. Например, вы создаёте правило в интерфейсе настройки виджета, нажимаете Advanced, и вводите в Custom CSS:
@import url(https://example.com/styles.css);In Code - Not Recommended
Также можно загрузить внешний CSS-файл через свойство customCSS:
Run 
Однако помните, что в этом случае ваш CSS не сможет быть протестирован нами.
User Profile Modal Styling
Модальные окна профиля пользователя также можно стилизовать с помощью пользовательского CSS. Однако чтобы пользовательские стили применялись к профилям пользователей, все CSS-селекторы должны быть с префиксом .user-profile. Без этого префикса пользовательские стили будут игнорироваться для модальных окон профиля пользователя.
For example:
Run 
Backwards Compatibility
В FastComments мы знаем, что наши клиенты настраивают виджет комментариев. Это сделано намеренно — последнее, чего мы хотим, чтобы наш продукт вызывал несоответствия в дизайне вашего продукта.
Поскольку это важная часть нашего продукта, у нас есть сборочный конвейер, который позволяет нам проверять изменения виджета комментариев для каждого клиента при каждом релизе.
Если мы обнаружим незначительные проблемы, мы обновим вашу учётную запись, чтобы обеспечить плавный релиз. Если мы увидим серьёзные несовместимости, это позволит нам приостановить релиз.
Пользовательские шрифты 
FastComments создан для кастомизации, и шрифт, который используют наши виджеты, не является исключением.
По умолчанию FastComments использует system font stack, чтобы выглядеть максимально хорошо на широком диапазоне устройств.
Чтобы задать собственные шрифты, см. Документация по пользовательскому CSS.
Там вы найдёте способ определить пользовательский CSS, который позволит вам задать желаемые шрифты.
Как задать шрифт
Чтобы переопределить шрифт, мы рекомендуем определять ваш CSS с использованием селекторов .fast-comments, textarea. Например:
Run 
Удаление брендинга 
Для клиентов с тарифами Pro или Enterprise разрешено использование white-label (удаление фирменной символики). Просто свяжитесь с нами, и мы будем рады помочь.
Если вы просто хотите убрать наш логотип из виджета комментариев, это автоматически доступно на тарифах Flex и Pro.
Эти тарифы также предоставляют ту же функциональность для электронной почты, отправляемой с нашей платформы.
Поддержка тёмного фона (тёмная тема) 
По умолчанию виджет комментариев FastComments автоматически определяет тёмный режим на большинстве сайтов.
Когда обнаруживается тёмный режим, FastComments переключит чёрный текст на белом фоне на белый текст на чёрном фоне. Изображения также будут изменены.
При загрузке страницы виджет попытается определить, насколько тёмный фон страницы позади виджета комментариев. Это означает, что страница может иметь белый фон, но если вы поместите виджет комментариев внутри контейнера с чёрным фоном, тёмный режим должен всё равно автоматически включиться, чтобы сделать комментарии читаемыми.
Однако механизм обнаружения, который опирается на определение "luminance", может не включать тёмный режим тогда, когда вы хотите. Чтобы принудительно его включить, установите флаг hasDarkBackground в true следующим образом:
Run 
Переключение тёмной темы 
Для сайтов, которые позволяют переключать тёмный режим после первоначальной загрузки страницы, это немного сложнее.
Во-первых, во всех текущих версиях библиотеки виджета комментариев (React, Vue) есть примеры переключения тёмного режима в их соответствующих репозиториях.
Для виджета VanillaJS потребуется немного больше работы. Сначала FastCommentsUI возвращает объект с функциями "destroy" и "update".
Мы можем просто вызывать функцию update каждый раз, когда хотим обновить конфигурацию виджета комментариев, как показано ниже. Здесь приведён полный рабочий пример переключения тёмного режима для виджета VanillaJS.
Run 
Переопределение текста 
Со FastComments весь текст в виджете комментариев настраивается.
Вы можете переопределить отдельный фрагмент текста, например кнопку отправки, или весь текст во всём виджете комментариев.
По умолчанию текст в виджете комментариев переводится в соответствии с локалью пользователя. Однако мы можем переопределить текст, если уверены что наша база пользователей использует одну и ту же локаль/язык, например:
Run 
Все настраиваемые переводы можно найти здесь на вкладке «расширенные параметры».
Однако существует более простой способ — через интерфейс настройки виджета. Там мы можем просто найти текст, который отображается в виджете комментариев в локали EN_US, и задать замену.
В настоящее время все переопределения переводов применяются ко всем локалям.
Изменение аватара по умолчанию 
Когда пользователь впервые комментирует через FastComments, мы попытаемся получить его аватар с http://gravatar.com/.
Однако, если аватар не найден или пользователь никогда не устанавливал его в своём аккаунте, мы отображаем статическое изображение аватара по умолчанию.
Чтобы указать собственное статическое изображение аватара, можно использовать настройку defaultAvatarSrc.
Run 
Это также можно сделать без кода. На странице настройки виджета смотрите раздел "Аватар по умолчанию".
Обратите внимание, что определение аватара для конкретного пользователя, например при использовании SSO, рассматривается в отдельном разделе.
Отключение аватаров 
Аватары можно полностью удалить из виджета комментариев, даже если пользователи задали свой собственный аватар.
Run 
Это можно настроить без кода, на странице настройки виджета:
Отключение всех стандартных стилей 
Для крупных проектов по кастомизации стилей может быть целесообразно начать с чистого листа и вовсе не использовать стили по умолчанию.
Все стили по умолчанию можно удалить, установив параметр noStyles в true, как показано ниже:
Run 
Это можно настроить без кода на странице настройки виджета, в разделе «Дополнительные параметры»:
Связывание комментариев со страницами 
При отправке уведомлений по электронной почте, или при отображении комментариев в интерфейсах пользователя, таких как страница модерации, полезно иметь возможность ссылаться из комментария на страницу, на которой он находится.
Если URL ID не всегда является идентификатором, то нам надо сохранить URL в другом месте. Именно для этого существует свойство "url", определённое следующим образом.
Run 
Обычный сценарий использования — привязать поток комментариев к какому‑то идентификатору, например статье, а затем ссылаться назад на конкретную страницу, например:
Run 
URL не очищается от распространённых маркетинговых параметров. По умолчанию сохраняется тот URL текущей страницы, который есть в данный момент.
Сворачивать ответы по умолчанию 
По умолчанию ответы на комментарии верхнего уровня отображаются.
Это можно настроить так, чтобы пользователю приходилось нажимать «Показать ответы» в комментариях верхнего уровня, чтобы увидеть дочерние.
Run 
Это можно настроить без кода на странице настройки виджета:
Эта настройка не влияет на количество загружаемых первоначально комментариев верхнего уровня. Если у вас есть один комментарий верхнего уровня и 29 дочерних, при включённой этой настройке вы:
- Увидите комментарий верхнего уровня.
- Увидите «Показать ответы (29)» под этим комментарием.
Если вы хотите показать все комментарии верхнего уровня в сочетании с этой опцией, установите starting page to -1.
Включить WYSIWYG 
По умолчанию функции форматирования в FastComments реализуются добавлением видимых анкерных тегов, таких как <b></b>, вокруг вашего текста. Нажатие на панель инструментов или использование сочетаний клавиш делает это за вас. Однако некоторые сообщества могут захотеть включить форматирование без видимых анкерных тегов. Это называется включением редактора WYSIWYG (что видишь — то и получаешь). Этот редактор выглядит точно так же, как и стандартный, за исключением того, что он загружает дополнительный код, позволяющий пользователям выделять текст жирным, подчеркивать и т. д. без видимых анкерных тегов.
Run 
Это также можно сделать без кода. На странице настройки виджета воспользуйтесь опцией «Включить расширенное форматирование».
Отключение панели инструментов 
По умолчанию FastComments отображает панель инструментов при написании комментария, чтобы предоставить ярлыки для оформления текста и загрузки изображений.
Эту панель инструментов можно отключить в коде или через интерфейс настройки.
Run 
Это также можно сделать без кода. На странице настройки виджета выберите опцию "Отключить панель ответов".
Отключение блокировок 
По умолчанию FastComments позволяет пользователям блокировать других пользователей. Блокировка пользователя приведёт к тому, что его комментарии будут скрыты, предотвращаются уведомления между пользователями и т.д.
Иногда может возникнуть необходимость отключить эту функцию. Это можно сделать следующим образом:
Run 
Это также можно сделать без кода, что дополнительно обеспечивает корректную валидацию на стороне сервера, через интерфейс настройки виджета:
Определение, какую страницу отображать 
При получении и отображении комментариев виджету комментариев нужно знать, с какой страницы начинать. По умолчанию он начинает с первой страницы, отображая только эту страницу.
Если необходимо, точную страницу, которую нужно отобразить, можно передать виджету комментариев через настройку startingPage.
Run 
Обратите внимание, что нумерация страниц начинается с нуля, поэтому приведённый выше пример отображает вторую страницу.
Переключение веток комментариев без перезагрузки страницы 
Мы рассмотрели, что urlId — это идентификатор страницы или статьи, к которой привязаны комментарии.
И ещё, в кратце: если urlId не задан, он по умолчанию будет равен URL текущей страницы.
А как быть с SPA (Single-Page Applications), где страница или содержимое, к которому привязаны комментарии, меняется динамически без полной перезагрузки страницы?
Angular, React, Vue, etc
С нашими библиотеками, такими как Angular и React, достаточно просто обновить свойство urlId, передаваемое в виджет — это приведёт к обновлению виджета комментариев. Например, вы можете увидеть это в действии для React-приложения здесь.
VanillaJS
Если вы используете библиотеку VanillaJS, всё немного сложнее, так как нет фреймворка вроде Angular или React, который бы обрабатывал привязку данных или распространение состояния.
Когда вы создаёте экземпляр виджета VanillaJS, он возвращает несколько функций, которые можно вызвать для его обновления.
Вот рабочий пример, где мы меняем хэш страницы и обновляем виджет комментариев:
Run 
Абсолютные даты (отключить человеко-понятные метки времени) 
По умолчанию используются локализованные относительные даты. Например, рядом с недавно оставленным комментарием вы можете увидеть "11 минут назад".
Иногда может потребоваться или быть желательным использование абсолютных дат, в этом случае установите этот параметр в true.
Run 
Это можно настроить без кода на странице настройки виджета, в разделе «Дополнительные параметры»:
Показать одновременно абсолютные и относительные даты 
По умолчанию используются локализованные относительные даты. Например, рядом с недавно оставленным комментарием вы можете увидеть "11 минут назад".
Иногда требуется или желательно сохранить этот формат относительной даты, но также отображать полную дату рядом с ним; в этом случае установите этот параметр в true.
Run 
Это можно настроить без кода, на странице настройки виджета, в разделе «Дополнительные параметры». Сначала вам нужно будет включить «Абсолютные даты», чтобы увидеть эту опцию в интерфейсе.
Добавление заголовочного текста 
Некоторый текст, например заголовок или сообщение, может отображаться ниже счётчика комментариев, но выше текста статуса входа.
Мы называем это заголовком, и по умолчанию он скрыт.
Run 
Это можно настроить без кода на странице настройки виджета, в разделе «Дополнительные параметры»:
Отображать ссылки как текст 
По умолчанию FastComments будет отображать ссылки вот так: https://exmaple.com - где URL ссылки становится кликабельным HTML anchor tag.
Некоторые сайты могут захотеть отключить это, например, чтобы отпугнуть мошенников. Мы предоставляем эту возможность, установив Comment HTML Rendering Option в Links as Text.
Это можно настроить без кода, на странице настройки виджета, для целого домена, или страницы:
Переключение комментариев при помощи кнопки 
По умолчанию FastComments отображает поле ввода комментария и поток комментариев одновременно. Чтобы сэкономить вертикальное пространство, он также скрывает любые другие обязательные поля до тех пор, пока с виджетом не взаимодействуют.
Тем не менее, виджет комментариев можно скрыть за кнопкой, например:
Кнопка использует разный переводимый текст в зависимости от того, показаны комментарии в данный момент или нет. Если комментарии скрыты, используется translations.SHOW_COMMENTS_BUTTON_TEXT. Если
комментарии показаны, используется translations.HIDE_COMMENTS_BUTTON_TEXT. Переводы могут содержать текст [count], который будет
заменён на локализованное число.
Run 
Это предназначено для замены конфигурации hideCommentsUnderCountTextFormat.
Количество обновляется в реальном времени вместе с потоком комментариев. Кнопка не показывается, если комментариев нет.
Это можно включить без кода, создав правило кастомизации и включив "Click to Show Comments":
Настройка текста счётчика комментариев 
Количество комментариев, отображаемое в верхней части виджета комментариев, можно настроить.
Её можно заменить любой строкой, а значение [count] будет заменено на число комментариев, локализованное для пользователя.
Run 
Это можно настроить без кода на странице настройки виджета:
Отключить перенаправление изображений 
По умолчанию FastComments позволяет пользователям загружать изображения. Когда пользователь нажимает на это изображение, FastComments, по умолчанию, откроет новую вкладку, чтобы показать изображение полностью. Установка этого флага в true отключает такое поведение:
Run 
Если вы не планируете перехватывать щелчок по изображению самостоятельно (см. onImageClicked), мы рекомендуем сочетать это с некоторыми стилями чтобы убрать видимость того, что изображение можно нажать.
Отключить автоматическое создание хэштегов 
Когда пользователи вводят хэштеги, в форме #someexampletag, FastComments автоматически создаёт этот HashTag и
выделяет его в их комментарии.
В некоторых случаях желательно отключить эту функцию или контролировать, какие хэштеги могут использоваться через API.
Для этого просто включите Disable Automatic #hashtag Creation через интерфейс настройки виджета.
Отключить колокольчик уведомлений 
По умолчанию FastComments отображает колокольчик уведомлений в правом верхнем углу области комментариев.
Этот колокольчик становится красным и показывает количество уведомлений у пользователя. Примеры уведомлений:
- Пользователь ответил вам.
- Пользователь ответил в треде, в котором вы комментировали.
- Пользователь проголосовал за ваш комментарий.
- Пользователь ответил на странице, на которую вы подписаны.
Колокольчик уведомлений также позволяет подписываться на всю страницу.
Однако мы можем полностью отключить колокольчик уведомлений:
Run 
Это также можно сделать без кода. На странице настройки виджета смотрите раздел «Отключить колокольчик уведомлений».
Отключить профили 
По умолчанию FastComments показывает профиль пользователя при клике на его аватар.
Однако эту функцию можно отключить:
Run 
Это также можно сделать без кода. На странице настройки виджета смотрите раздел "Отключить профили".
Отключить сообщение об успехе 
По умолчанию FastComments будет показывать сообщение об успехе после добавления комментария. Это можно отключить следующим образом:
Run 
Это также можно сделать без кода. На странице настройки виджета:
Изменить рейтинг контента GIF 
По умолчанию виджет комментариев FastComments устанавливает gif rating равным pg.
Доступные варианты: g, pg, pg-13 и r.
Это можно задать в коде или через UI. В коде мы можем сделать это следующим образом:
Run 
В UI это находится в разделе Gif Picker Rating, при условии что опция Disable Image Uploads? не отмечена.
Модерация изображений 
По умолчанию в виджете комментариев FastComments модерация изображений отключена off.
Доступные варианты: off, low, medium и high.
В интерфейсе настройки виджета это находится в разделе Image Content Moderation Level, если не установлен флажок Disable Image Uploads?.
Изменить стиль голосования 
По умолчанию FastComments отображает варианты голосования в виде стрелок вверх и вниз, позволяя пользователям голосовать за комментарий или против него.
Однако можно изменить стиль панели голосования. Текущие варианты — стандартные кнопки Вверх/Вниз или механизм голосования в стиле сердца.
Мы используем флаг voteStyle следующим образом:
Run 
Мы настоятельно рекомендуем делать это без кода, так как это также включает валидацию на стороне сервера. На странице настройки виджета см. раздел "Стиль голосования".
Голосование также можно отключить, см. Disable Voting выше в опциях стиля.
Отключить удаление 
По умолчанию FastComments позволяет пользователям удалять свои комментарии.
Однако это можно запретить.
На странице настройки виджета выберите опцию "Отключить удаление".
- Это влияет только на обычных комментаторов (Commenters), а не на модераторов или администраторов — они по-прежнему смогут удалять.
- Это также влияет на интеграции API в случаях, когда передаётся
contextUserId.
Отключить редактирование 
По умолчанию FastComments позволяет пользователям редактировать свои комментарии.
Однако это можно запретить.
На странице настройки виджета найдите опцию «Отключить редактирование».
- Это влияет только на обычных комментаторов и не затрагивает модераторов или администраторов, которые по-прежнему смогут редактировать.
- Это также повлияет на интеграции через API, когда передаётся
contextUserId.
Выделение новых комментариев 
FastComments предоставляет несколько способов выделять новые комментарии.
Прежде всего, по умолчанию комментарии, которые вызвали уведомление в приложении (ответы, ответы в той же ветке или комментарии на странице,
на которую вы подписаны), автоматически подсвечиваются — аватар пользователя слегка светится. Цвет можно настроить через CSS
с помощью класса is-unread.
К комментариям, опубликованным за последние 24 часа, применяется класс 24hr, который можно использовать для стилизации.
Наконец, любые новые живые комментарии, которые появляются в сессии пользователя, будут выделяться в течение нескольких секунд с помощью анимации. Это делается через
CSS-класс is-live, который также можно настроить.
Размеры страниц 
По умолчанию размер страницы FastComments — 30. Это включает ответы в ветках.
Размер страницы можно настроить в интерфейсе настройки виджета в диапазоне от 10 до 200.
Обратите внимание, что изменение размера страницы требует перерасчёта всех веток комментариев в вашей учётной записи. Это может занять несколько минут.
Это нельзя настроить в клиентском виджете, поскольку страницы вычисляются на стороне сервера.
Пример конфигурации показан ниже:
Размеры страниц можно настраивать глобально, по домену или по странице, создавая разные правила настройки.
Это повлияет на всех клиентов, интеграции и фреймворки, которые вы используете для отображения комментариев через нашу платформу.
Шаблоны писем 
Письма, отправляемые FastComments вашим клиентам, можно настроить. Шаблон, логика, и переводы — всё это можно изменить. Текст можно настраивать для каждого локаля, а стили можно даже изменять для каждого домена. Узнайте больше о пользовательских шаблонах писем здесь.
Форматы имён пользователей 
По умолчанию FastComments показывает имя пользователя так, как он его ввёл, или так, как оно было передано нам через SSO.
Однако иногда требуется скрыть или показать имя пользователя по‑другому. Например, если имя пользователя — Allen Rex, возможно, вы хотите отображать только "Allen R.".
Это можно сделать без кода в интерфейсе настройки виджета, в параметре с названием Commenter Name Format:
Доступные форматы:
- С заглавной буквы (показывает Example User как Example User)
- Инициал фамилии (показывает Example User как Example U.)
- Все инициалы (показывает Example User как E. U.)
- Показывать "Anonymous"
Изменение вступает в силу немедленно. Пользователь по‑прежнему будет видеть своё полное имя вверху области комментариев для себя, но в самих комментариях будет отображаться изменённое имя.
Имена пользователей маскируются на стороне сервера для защиты пользователей.
Отключение загрузки изображений 
По умолчанию FastComments разрешает загрузку изображений. Это можно отключить, установив флаг noImageUploads в значение true.
Run 
Это можно настроить без кода, на странице настройки виджета:
Включить поле поиска 
По умолчанию в виджете комментариев поле поиска не отображается.
Однако его можно включить, установив флаг enableSearch в true:
Run 
Это также можно сделать без кода. На странице настройки виджета выберите опцию "Enable Search Box".
Включить спойлеры 
Мы можем включить поддержку спойлеров, установив флаг enableSpoilers в значение true:
Run 
Это можно сделать и без кода. На странице настройки виджета посмотрите опцию "Включить спойлеры".
Когда текст выделен, и нажата теперь видимая кнопка SPOILER, текст будет замаскирован до тех пор, пока пользователь не наведёт на него курсор. Для тёмного режима мы делаем то же самое, с другими
цветами, которые лучше соответствуют тёмному режиму.
Это также совместимо с WYSIWYG-редактором.
Включить счётчик просмотров комментариев 
По умолчанию FastComments не отслеживает, кто просматривал каждый комментарий, и не предоставляет никаких статистических данных по этому поводу.
Однако мы можем включить эту функцию, и тогда система начнёт отслеживать, когда каждый пользователь прокручивает до комментария.
Когда это происходит, счётчик рядом с иконкой глаза, отображаемой на каждом комментарии, будет увеличиваться. Счётчик обновляется в реальном времени и сокращается в соответствии с локалью пользователя.
Мы можем включить это, установив флаг enableViewCounts в значение true:
Run 
Это можно настроить без кода, на странице настройки виджета:
Мы отслеживаем id пользователя*, который просматривал комментарий, поэтому при повторном просмотре комментария счётчик не увеличивается. Если вы просмотрите комментарий снова через два года, счётчик увеличится снова.
- *Примечание: или анонимный идентификатор сессии, или IP-адрес пользователя в виде хешированного значения.
Сразу показывать комментарии в реальном времени 
По умолчанию включены живые комментарии. Это означает, что если какие-либо комментарии добавляются, удаляются, редактируются или закрепляются, изменения должны появляться у всех пользователей, просматривающих ветку комментариев, одновременно.
Однако по умолчанию эти новые комментарии будут появляться под динамически отображаемой кнопкой с текстом, похожим на "Показать 2 новых комментария".
Если новые комментарии являются ответами непосредственно на страницу, кнопка будет отображаться в верхней части ветки комментариев. Если они являются ответами на конкретный комментарий, кнопка будет отображаться под этим комментарием.
Это нужно, чтобы размер страницы не менялся постоянно для пользователя, что может вызывать раздражение при попытке схватить полосу прокрутки.
Для некоторых сценариев использования, таких как торги в реальном времени или онлайн-мероприятия, такое поведение не подходит - возможно, вы захотите, чтобы виджет комментариев был скорее похож на окно "чата", где новые комментарии "появляются сразу".
Отсюда название флага, который включает эту функцию: showLiveRightAway.
Мы можем включить его следующим образом:
Run 
Это можно настроить без кода, на странице настройки виджета:
Отключение комментариев в реальном времени 
По умолчанию в FastComments включены живые комментарии.
Это означает, что каждый пользователь, просматривающий ветку комментариев, видит одинаковое содержимое.
Например, если комментарий добавлен, этот комментарий появится. Если комментарий отредактирован или удалён, то эти изменения будут видны всем пользователям ветки. То же самое относится к голосам и всем действиям модерации.
Однако это можно отключить:
Run 
Это также можно сделать без кода. На странице настройки виджета смотрите раздел «Disable Live Commenting».
Размещать новые комментарии в реальном времени внизу 
По умолчанию новые комментарии в реальном времени появляются в верхней части списка комментариев по мере их публикации.
Когда эта опция включена, новые комментарии в реальном времени будут добавляться в нижнюю часть списка. Это влияет на то, как комментарии появляются при их публикации в режиме реального времени, пока пользователи просматривают ветку комментариев.
Run 
With this setting enabled:
- Новые комментарии в реальном времени, опубликованные другими пользователями, будут появляться в нижней части списка комментариев
- Пользователи будут видеть, как новые комментарии появляются ниже уже существующих в режиме реального времени
- Это влияет только на обновления комментариев в реальном времени - не на первоначальную загрузку страницы
- Это может помочь поддерживать поток чтения, когда пользователи следят за обсуждением
Note that this setting only affects where new live comments are placed as they arrive in real-time. It does not affect the initial sort order when the page loads.
Включение бесконечной прокрутки 
По умолчанию виджет FastComments автоматически изменяет свой вертикальный размер, чтобы вмещать все видимые комментарии. Постраничная навигация выполняется с помощью кнопки "View Next" в конце текущей страницы — это взаимодействие, которое, как мы обнаружили, большинству пользователей кажется наиболее удобным.
Тем не менее, в некоторых случаях предпочитают бесконечную прокрутку. Например, мы используем эту функцию в нашем продукте Stream Chat.
Мы можем скрыть кнопки "View Next" и переключиться на бесконечную прокрутку, установив флаг enableInfiniteScrolling в true:
Run 
Также требуется добавить пользовательский CSS. Добавьте пользовательский CSS для селектора .comments, чтобы включить прокрутку, например:
Run 
Полный рабочий пример будет выглядеть так:
Run 
В приведённом выше примере мы используем свойство customCSS, однако для повышения производительности рекомендуется использовать UI конфигурации виджета. Смотрите документацию по Custom CSS.
Изменение направления сортировки по умолчанию 
По умолчанию FastComments сортирует комментарии по направлению сортировки "Most Relevant".
Сортировка "Most Relevant" учитывает время оставления комментария и количество голосов при определении порядка.
Пользователь затем может изменить направление сортировки на «Старые сначала» или «Новые сначала» в интерфейсе виджета комментариев.
Однако мы можем изменить значение по умолчанию на любое из трёх. Например, если вы хотите показывать сначала самые старые комментарии:
Run 
Мы устанавливаем значение defaultSortDirection в "OF", чтобы задать направление "OF".
Для сортировки с сначала новыми комментариями, мы сделали бы следующее:
Run 
Допустимые значения для defaultSortDirection:
- MR: "Most Recent"
- NF: "Newest First"
- OF: "Oldest First"
Это также можно сделать без кода. На странице настройки виджета см. раздел "Default Sort Direction".
Обратите внимание, что комментарии на каждой странице для каждого направления сортировки предвычисляются, поэтому производительность одинакова для всех направлений сортировки.
Отображать все комментарии сразу — отключить пагинацию 
Чтобы отключить пагинацию и отобразить все комментарии сразу, установите startingPage в -1.
Run 
Переместить поле ответа после комментариев 
По умолчанию поле ввода комментария находится перед цепочкой комментариев. Однако, если установить этот параметр конфигурации в true, мы можем переместить его после.
Run 
Это можно настроить без кода на странице настройки виджета:
Ограничение длины комментария 
Максимальное количество символов, которые разрешено вводить в поле для комментария, можно ограничить параметром maxCommentCharacterLength.
По умолчанию — 2000.
Такие элементы, как URL изображений, не включаются в определение длины.
Run 
Это можно настроить без кода на странице настройки виджета:
Отключить многострочные комментарии 
По умолчанию FastComments позволяет пользователю вводить комментарий из сколь угодно строк, в рамках установленного по умолчанию ограничения по количеству символов.
Тем не менее, может потребоваться ограничить пользователя вводом только одной строки текста. Некоторые примеры случаев использования включают онлайн-аукцион или живой чат, которые FastComments может быть использован.
Флаг useSingleLineCommentInput включается следующим образом:
Run 
Это также можно сделать без кода. На странице настройки виджета см. раздел «Включить однострочный ввод комментария».
Обратите внимание, что комментарии на каждой странице для каждого направления сортировки предварительно вычисляются, поэтому все направления сортировки имеют одинаковую производительность.
Ограничить количество комментариев на пользователя 
По умолчанию каждый пользователь может отправлять до 5 comments в течение одной минуты.
Это отслеживается по user id, anon user id и ip адресу (в хэшированном виде).
Это можно настроить без кода на странице настройки виджета:
Обратите внимание, что если вы используете comment creation API, возможно, стоит передать исходный ip адрес пользователя в запросе к нашему бэкенду, чтобы rate limiting применялся
к пользователю, а не глобально ко всему вашему аккаунту.
Запретить добавление новых верхнеуровневых комментариев 
Установка noNewRootComments в true заставит виджет скрыть область корневого ответа, но при этом позволит пользователям отвечать
на дочерние комментарии. Вы, например, можете задать это условно при загрузке страницы, чтобы разрешить только некоторым пользователям оставлять комментарии верхнего уровня.
Run 
Максимальная глубина ответов 
По умолчанию FastComments позволяет неограниченно вкладывать ответы, создавая древовидную структуру, где пользователи могут отвечать на ответы бесконечно.
Опция maxReplyDepth позволяет ограничить глубину веток ответов. Когда достигается максимальная глубина, пользователи больше не увидят кнопку ответа в комментариях на этом уровне.
Run 
With maxReplyDepth set to 2:
- Пользователи могут оставлять комментарии на верхнем уровне (уровень 0)
- Пользователи могут отвечать на комментарии верхнего уровня (уровень 1)
- Пользователи могут отвечать на эти ответы (уровень 2)
- Дальнейшие ответы глубже уровня 2 не допускаются
Установка значения 1 позволит отвечать только на комментарии верхнего уровня, создавая более плоскую структуру обсуждения.
Установка maxReplyDepth в 0 отключит все ответы, разрешив только комментарии верхнего уровня. Если не указано, ответы могут вкладываться без ограничений.
Обзор единого входа (SSO) 
SSO, или single-sign-on, — это набор соглашений, позволяющих вам или вашим пользователям использовать FastComments без необходимости создавать ещё одну учётную запись.
Предполагая, что вы не разрешаете анонимные комментарии, для комментирования в FastComments требуется учётная запись. Мы делаем процесс регистрации очень простым — пользователь просто оставляет свой email при комментировании. Однако мы понимаем, что даже это может быть лишним трением, от которого некоторые сайты хотят избавиться.
Мы можем уменьшить это трение, имея только один поток входа для всего вашего сайта.
How do I get it?
Все типы аккаунтов в настоящее время получают доступ к SSO. Однако максимальное количество пользователей SSO будет варьироваться в зависимости от вашего пакета. Как и с другими функциями, планы Pro и выше предоставляют прямую поддержку разработки.
Давайте сравним варианты, а затем разберём детали каждого.
User and Comment Migrations
При миграции с платформы с SSO, такой как Disqus, у вас уже будут пользователи и их комментарии.
Комментарии импортируются в рамках вашей миграции либо через API, наш Import UI, либо службой поддержки. Import UI предпочтителен, если он поддерживает платформу, с которой вы мигрируете, поскольку он включает обработку ошибок, извлечение и загрузку аватаров и медиа, а также систему мониторинга пакетных задач.
Пользователи сами добавляются автоматически при первом просмотре веток комментариев. Альтернативно, их можно предварительно добавить через API, но у этой работы нет многих преимуществ.
Если комментарии импортированы, а пользователи SSO не добавлены вручную через API, то комментарии будут автоматически перенесены в аккаунт пользователя при первом создании его аккаунта при просмотре любой ветки комментариев. После этого они смогут управлять, редактировать и удалять комментарии, которые изначально написали.
Автоматическая миграция выполняется по email или имени пользователя. Некоторые платформы не предоставляют email при экспорте, например Disqus, поэтому в таком случае мы используем имя пользователя.
- Пока вы передаёте совпадающее имя пользователя и email в SSO-пейлоаде, мы добавим email в отдельные объекты комментариев, чтобы уведомления и упоминания работали.
Если требуется импортировать комментарии и пользователей одновременно, работайте со службой поддержки, чтобы перенести комментарии на соответствующие аккаунты пользователей после того, как пользователи будут импортированы через API.
Итак, чтобы суммировать самый простой путь миграции:
- Импортируйте комментарии.
- Аватары и другие медиа мигрируются автоматически при использовании Import UI в
Manage Data -> Imports.
- Аватары и другие медиа мигрируются автоматически при использовании Import UI в
- Настройте Secure или Simple SSO.
- Позвольте миграции происходить автоматически для каждого пользователя при их первом входе.
- Это обычно добавляет менее секунды к времени загрузки страницы, если у пользователя менее 50k комментариев.
WordPress Users
Если вы используете наш плагин WordPress, то писать код не нужно! Просто перейдите на страницу администратора плагина, нажмите SSO Settings, а затем Enable.
Это приведёт вас в мастер с одним нажатием кнопки, который создаст ваш API-ключ, отправит его на ваш WordPress и включит SSO. Мы объединили это в одно нажатие для вашего удобства.
Обратите внимание, что если вы устанавливаете плагин впервые, вам придётся пройти процесс настройки, прежде чем вы увидите страницу администратора с кнопкой SSO Settings.
WordPress SSO - Moderators
Обратите внимание, что в настоящее время для отображения бейджа «Модератор» рядом с вашими модераторами при комментировании с помощью плагина FastComments для WordPress, они также должны быть добавлены в качестве Модератора на панели FastComments и иметь подтверждённый email.
Custom Integrations
Для пользовательских интеграций есть два варианта.
Option One - Secure SSO
С Secure SSO FastComments знает, что пользователь, который комментирует, голосует и читает комментарии, — это реальный пользователь на вашем сайте.
Пока вы создаёте корректный пейлоад, пользователь всегда получает бесшовный опыт комментирования.
С Secure SSO SSO-пейлоад создаётся на стороне сервера с использованием HMAC-аутентификации и затем передаётся виджету на клиенте.
С Secure SSO аккаунт пользователя полностью отделён от остальной базы пользователей FastComments. Это означает, что если у нас есть два партнёра Компания A и Компания B, у каждого может быть SSO-пользователь с именем пользователя "Bob".
Requirements
- Базовые навыки разработки серверной части.
- Базовые знания по работе с секретными API-ключами.
- Базовые знания по разработке API или серверному рендерингу.
Pros
- Безопасно.
- Бесшовный опыт комментирования.
Cons
- Требуется разработка серверной части.
Updating User Data
С Secure SSO каждый раз, когда вы передаёте SSO-пейлоад пользователя, мы обновляем его профиль с последней информацией. Например, если
у пользователя имя пользователя X, и вы передаёте Y в SSO-пейлоаде, его имя пользователя станет Y.
Если вы хотите удалить значения, используя этот подход, установите их в null (не undefined).
Secure SSO API
Мы также предоставляем API для взаимодействия с SSO-пользователями. Смотрите the docs.
Обратите внимание, что при использовании Secure SSO пользователи автоматически создаются в фоне при загрузке страницы. Вам не нужно массово импортировать ваших пользователей.
Option Two - Simple SSO
Альтернатива Secure SSO — просто передавать информацию о пользователе в виджет комментариев.
Предоставление email при Simple SSO не обязательно, однако без него их комментарии будут отображаться как "Unverified".
Примечание! По состоянию на начало 2022 года имена пользователей при Simple SSO не обязаны быть уникальными по всему FastComments.com.
Идеально, Simple SSO следует выбирать только при разработке на платформе, которая не предоставляет доступ к серверной части.
Requirements
- Базовые знания клиентской разработки.
- Необходимо знать по крайней мере email пользователя.
Pros
- Просто.
- Вся активность по-прежнему проверяется.
- Пользователь никогда не вводит своё имя пользователя или email.
Cons
- Менее безопасно, чем Secure SSO, поскольку пейлоад на стороне клиента может быть подделан для притворства любым пользователем.
Simple SSO API
Пользователи, автоматически созданные через поток Simple SSO, хранятся как SSOUser объекты. К ним можно получить доступ и управлять ими через SSOUser API. Смотрите the docs.
Пользовательские интеграции — защищённый единый вход (SSO) 
FastComments Secure SSO использует HMAC-SHA256 в качестве механизма для реализации SSO. Сначала мы рассмотрим общую архитектуру, приведём примеры и детальные шаги.
Также есть документация по миграции с других провайдеров с похожими SSO-механизмами и описаны различия.
Поток выглядит следующим образом:
Поскольку Secure SSO включает full-stack разработку, рабочие примеры кода на Java/Spring, NodeJS/Express и чистом PHP в данный момент находятся на GitHub.
Хотя в примере NodeJS мы используем ExpressJS, а в примере Java — Spring, в этих рантаймах не требуются какие-либо фреймворки/библиотеки для реализации FastComments SSO — работают встроенные криптопакеты.
Вам не нужно писать какие-либо новые API-эндпоинты для FastComments SSO. Просто зашифруйте информацию о пользователе, используя ваш секретный ключ, и передайте payload в виджет комментариев.
Получение вашего секретного ключа API
Ваш API Secret можно получить на этой странице. Эту страницу также можно найти, перейдя в My Account, кликнув плитку API/SSO и затем нажав "Get API Secret Key".
Параметры виджета комментариев
Высокоуровневая документация API для виджета комментариев доступна здесь.
Давайте подробно разберём, что означают эти параметры.
Виджет комментариев принимает объект конфигурации — вы уже передаёте его, если используете FastComments для передачи вашего tenantId.
Чтобы включить SSO, передайте новый объект "sso", который должен содержать следующие параметры. Значения должны генерироваться на стороне сервера.
- userDataJSONBase64: Данные пользователя в формате JSON, затем закодированные в Base64.
- verificationHash: HMAC-SHA256 хеш, созданный из UNIX_TIME_MILLIS + userDataJSONBase64.
- timestamp: Эпохальная метка времени в миллисекундах. Не должна быть в будущем и не более двух дней в прошлом.
- loginURL: URL, который виджет комментариев может показать для входа пользователя.
- logoutURL: URL, который виджет комментариев может показать для выхода пользователя.
- loginCallback: При передаче вместо login URL — функция, которую виджет вызовет при клике на кнопку входа.
- logoutCallback: При передаче вместо logout URL — функция, которую виджет вызовет при клике на кнопку выхода.

Объект пользователя
The User object contains the following schema:

Модераторы и администраторы
Для админов и модераторов передайте соответствующие флаги isAdmin или isModerator в объекте SSOUser.
Уведомления
Чтобы включить или отключить уведомления, установите значение optedInNotifications в true или false соответственно. При первом загрузке страницы пользователем с этим значением в SSO-пейлоаде его настройки уведомлений будут обновлены.
Кроме того, если вы хотите, чтобы пользователи получали email-уведомления о событиях на страницах, на которые они подписаны (в отличие от только внутренних уведомлений в приложении), установите optedInSubscriptionNotifications в true.
VIP-пользователи и специальные метки
Вы можете отображать специальную метку рядом с именем пользователя, используя необязательное поле "displayLabel".
Неаутентифицированные пользователи
Чтобы представить неаутентифицированного пользователя, просто не заполняйте userDataJSONBase64, verificationHash или timestamp. Предоставьте loginURL.
Эти пользователи не смогут комментировать; им будет показано сообщение о входе (сообщение, ссылка или кнопка, в зависимости от конфигурации).
Прямые примеры сериализации и хеширования данных пользователя
Больше деталей и примеров можно найти здесь (js), здесь (java) и здесь (php).
Мы понимаем, что любая интеграция может быть сложным и болезненным процессом. Не стесняйтесь обращаться к вашему представителю или использовать страницу поддержки.
Пользовательские интеграции — простой единый вход (SSO) 
С помощью Simple SSO мы можем предоставить виджету комментариев информацию о пользователе, чтобы не приходилось вводить имя пользователя или электронную почту для комментирования.
Мы можем настроить Simple SSO следующим образом:
Run 
Пользователь будет авторизован, и за кулисами будет создан SSO-пользователь. У пользователя будет установлено createdFromSimpleSSO в true, если данные получены через API.
Notes:
- Электронная почта является уникальным идентификатором для Simple SSO.
- Указание электронной почты при использовании Simple SSO не обязательно, однако по умолчанию их комментарии будут отображаться как "Не подтверждено". Если электронная почта не указана, пользователь не может быть полностью аутентифицирован.
- НОВОЕ С января 2022 года: имена пользователей не обязаны быть уникальными на всём сайте fastcomments.com
- Simple SSO может автоматически создавать и обновлять SSO-пользователей, если указана электронная почта и пользователь изначально не был создан через Secure SSO.
- Вы можете указать значки для пользователя с помощью свойства
badgeConfig. МассивbadgeIdsсодержит идентификаторы значков, которые следует связать с пользователем. Еслиoverrideустановлен вtrue, это заменит все существующие значки, отображаемые в комментариях; еслиfalse, новые значки будут добавлены к существующим.
Пользовательские интеграции — миграция с Disqus SSO 
Главные различия между Disqus и FastComments Secure SSO в том, что Disqus использует SHA1 для шифрования, тогда как мы используем SHA256. Это означает, что миграция с Disqus проста - поменяйте используемый алгоритм хеширования с SHA1 на SHA256 и обновите имена свойств, передаваемых в UI.
Пользовательские интеграции — миграция с Commento SSO 
Commento использует принципиально иной подход к SSO - они требуют, чтобы у вас был endpoint, который они вызывают для аутентификации пользователя. FastComments работает наоборот - просто закодируйте и захешируйте информацию о пользователе, используя ваш secret key, и передайте её.
Защита веток комментариев с помощью единого входа 
FastComments SSO (подробности здесь) предоставляет вашим пользователям возможность комментировать без необходимости входа в другую платформу.
Однако этого недостаточно для защиты ваших веток комментариев, поскольку по умолчанию данные комментариев являются общедоступной информацией — любой, кто может просмотреть страницу, может просмотреть комментарии.
Изменив настройку, мы можем запретить получение комментариев, если это не делает администратор или действительный пользователь SSO.
Настройка без кода
Если SSO настроен, мы можем предотвратить просмотр и взаимодействие с ветками комментариев, создав правило настройки.
При этом найдите SSO, и вы увидите этот вариант:
Включите её и сохраните правило настройки.
Защита только определённого домена или страницы
Чтобы защитить только определённый домен или страницу, мы просто настроим правило настройки соответствующим образом.
В верхней части интерфейса настройки вы найдёте два поля: Domain и URL ID.
Чтобы защитить конкретный домен, введите соответствующий домен в поле "domain".
Чтобы защитить отдельную страницу, введите URL страницы в поле "URL ID". Если у вас есть собственная интеграция с FastComments, вы можете ввести здесь тип идентификатора вместо URL.
Уровни безопасности
При включении требования SSO вам нужно решить, требуется ли Simple SSO или Secure SSO. Если требуется Simple SSO, разрешены оба варианта; если же требуется Secure SSO, то содержимое должно быть получено с использованием Secure SSO payload, хешированного вашим API key, чтобы его можно было просмотреть.
Параметр уровня безопасности появится, когда вы выберете "Требовать SSO для просмотра комментариев".
Защита помимо просмотра
Включение этой опции защитит страницу или домен от возможности оставлять комментарии, если пользователь не вошёл через SSO.
Подводные камни
Пользователи, которые оставляли комментарии до интеграции SSO, не смогут их видеть, пока не войдут через вашу SSO-интеграцию.
Разрешить анонимные комментарии 
По умолчанию FastComments требует адрес электронной почты для комментирования. Он не обязательно должен быть действительным, однако до тех пор, пока пользователь не перейдёт по ссылке, отправленной ему, его комментарий будет отображаться с меткой "Непроверенный комментарий".
Однако мы можем убрать требование электронной почты. Поле ввода электронной почты по-прежнему будет отображаться, но больше не будет обязательным.
Это можно настроить через интерфейс настройки виджета:
Предотвращение истечения срока действия анонимных комментариев 
FastComments можно настроить на удаление неподтверждённых комментариев через заданное количество дней. Это помогает бороться со спамом.
По умолчанию этого не происходит.
Это можно настроить или отключить на странице Настройки модерации.
Отключить ввод e-mail 
Когда пользователи комментируют, и они не вошли в систему, у них попросят указать свой адрес электронной почты.
Это создаст для этого пользователя "неверифицированную сессию", и мы попросим его подтвердить эту сессию по электронной почте.
Для некоторых сайтов или приложений желательно не спрашивать у пользователя адрес электронной почты при комментировании или голосовании.
Включение анонимных комментариев делает поле ввода электронной почты необязательным. Однако мы можем полностью его отключить. Сначала включите анонимные комментарии, затем появится опция отключения полей ввода электронной почты.
Когда это включено, поля электронной почты вообще не будут отображаться во всех наших продуктах для комментирования.
Обратите внимание, что с этой конфигурацией все комментарии будут непроверенными, если пользователь не создаст аккаунт и не войдёт на https://fastcomments.com.
Вы можете рассмотреть возможность отключения метки «Непроверенный».
Отключить метку «Непроверено» 
По умолчанию FastComments будет показывать метку "Unverified Comment" для комментариев, оставленных для пользователя, у которого есть непроверенная сессия браузера. Подробнее о непроверенных комментариях см. здесь.
Run 
Кроме того, эту функцию можно использовать, не написав ни строчки кода, в интерфейсе Customization UI:
Установка имени пользователя по умолчанию 
Когда пользователи комментируют или голосуют и не авторизованы, у них попросят указать адрес электронной почты и имя пользователя.
В случае анонимных комментариев иногда бывает полезно задать имя пользователя по умолчанию, чтобы снизить трение при комментировании. Это можно сделать через интерфейс настройки. Сначала должна быть включена функция анонимных комментариев.
Обратные вызовы 
Все библиотеки для виджета комментариев (в настоящее время Angular, React, Vue) поддерживают обратные вызовы.
Обратные вызовы задаются в объекте конфигурации и имеют одинаковую сигнатуру для каждой библиотеки.
Поддерживаемые обратные вызовы:
- onInit
- onAuthenticationChange
- onRender
- commentCountUpdated
- onReplySuccess
- onVoteSuccess
- onImageClicked
- onOpenProfile
- onCommentSubmitStart
- onCommentsRendered
Точные сигнатуры можно найти в Определениях TypeScript.
Вот пример, в котором используются все обратные вызовы:
Run 
Ручное задание локали пользователя 
По умолчанию FastComments будет отображать виджет комментариев в локали, определённой системой и браузером пользователя.
Когда пользователь оставляет комментарий или входит в систему, мы обновляем его последнюю используемую локаль и также используем её при отправке электронных писем.
Это влияет на то, как виджет комментариев переводится для пользователя. Локаль состоит из языка и региона пользователя, поэтому настройка локали будет обычно изменять язык, используемый для отображения текста пользователю.
Через интерфейс
Это можно задать с помощью интерфейса настройки виджета. См. опцию "Локаль / Язык":
Через код
Это можно переопределить, указав нужную локаль.
Run 
Поддерживаемые языки и коды локалей
Полный список поддерживаемых языков и соответствующих кодов локалей можно найти здесь.
Примечание по SSO
Если вы используете SSO, возможно, вы захотите передать локаль пользователя в объекте user, чтобы электронные письма и другие элементы были корректно локализованы для пользователя.
Ограничение допустимых языков 
По умолчанию FastComments не ограничивает языки, используемые для комментариев.
Иногда может потребоваться ограничить языки, которыми пользуется сообщество.
Это можно настроить без кода на странице настройки виджета:
Система проанализирует комментарий, определит его язык и сравнит его со списком разрешённых языков.
Если комментарий написан на языке, который не разрешён, будет показано локализованное сообщение об ошибке.
Заголовки страниц 
Текущий заголовок страницы связан с указанным urlId и сохраняется для использования в инструментах модерации.
По умолчанию он извлекается из document.title.
При необходимости можно указать собственный заголовок страницы следующим образом:
Run 
Запрет на новые ответы и отключение голосования 
Комментирование можно заблокировать так, чтобы новые комментарии или голоса не могли быть оставлены, установив флаг readonly в true.
Также комментарии нельзя будет редактировать или удалять.
Run 
Это можно настроить без кода, на странице настройки виджета, для всего домена или отдельной страницы:
Обновление!
Начиная с ноября 2022 года, администраторы и модераторы могут блокировать или разблокировать ветки в реальном времени через меню с тремя точками над областью ответа.
Это предотвратит появление новых комментариев, при этом по-прежнему позволяя голосовать и позволяя пользователям при желании удалять свои комментарии, тогда как readonly не позволяет этого.
Это соответствует полю isClosed в API Page.
Ограничение доменов ссылок 
По умолчанию FastComments позволяет добавлять ссылки на любые внешние сайты.
Это можно ограничить до списка желаемых сайтов или доменов. Попытка отправить ссылку на сайт или домен, который не входит в определённый список, приведёт к отображению ошибки для пользователя.
Эта проверка применяется только к виджету комментариев и API. Импорт не затрагивается.
Это делается без кода, на странице настройки виджета:
Счётчик комментариев и учёт всех вложенных ответов 
Количество комментариев, отображаемое в верхней части виджета комментариев, может показывать либо все «комментарии верхнего уровня», то есть те ответы, которые являются ответами непосредственно на страницу или саму статью, либо это может быть подсчёт всех вложенных комментариев.
По умолчанию это true — то есть считается второй вариант — все комментарии. В более старых версиях виджета комментариев значение по умолчанию было false.
Мы можем изменить поведение, чтобы это был подсчёт всех вложенных комментариев, установив флаг countAll в true.
Run 
Если мы хотели, чтобы счётчик отражал только комментарии верхнего уровня, мы устанавливаем флаг в false.
Run 
В настоящее время это нельзя настроить без изменений в коде.
Включение ссылок комментаторов 
По умолчанию FastComments запрашивает у пользователя только его комментарий, имя пользователя и адрес электронной почты.
Однако в некоторых случаях вы можете захотеть, чтобы пользователь оставил ссылку на свой блог или веб-сайт.
Мы можем включить показ дополнительного поля ввода для URL сайта пользователя, установив флаг enableCommenterLinks в true:
Run 
Когда такой URL указан, аккаунт пользователя будет обновлён, и отображаемые имена пользователя во всех предыдущих и последующих комментариях будут ссылаться на этот URL.
Это можно настроить без кода на странице настройки виджета:
Группы модерации 
Список идентификаторов, сгенерированных на странице Группы модерации.
Когда указано, комментарии, оставленные с использованием указанной конфигурации, будут содержать тот же набор moderationGroupIds.
Если у Moderator определена одна или несколько Группы модерации, они будут
видеть только комментарии на странице Moderate Comments, связанные с их группой(ами).
Run 
Идентификаторы групп для упоминаний 
Список идентификаторов, используемых для автозаполнения @упоминаний. Полезно, когда вы хотите предотвратить отметку пользователей, если у них нет пересекающихся групп.
Если указано, в автозаполнении после ввода символа @ будут предлагаться только пользователи из других групп.
Run 
Обход сторонних cookie 
Для аутентификации FastComments требует, чтобы в вашем браузере были включены сторонние cookies. Без них пользователям всегда придётся оставлять свой адрес электронной почты, чтобы комментировать (если поле ввода email не скрыто), а их комментарии по умолчанию будут отображаться как неподтверждённые.
Чтобы обойти это, вы можете включить обход блокировки сторонних cookies.
Когда эта опция включена, будет появляться небольшое всплывающее окно с сообщением о входе пользователя в систему. Это всплывающее окно появляется каждый раз, когда пользователь взаимодействует с виджетом комментариев; например, когда он оставляет комментарий.
Это можно сделать в коде, установив флаг enableThirdPartyCookieBypass в значение true:
Run 
Также это можно настроить через интерфейс настройки виджета (Widget Customization UI), в разделе Enable Third-Party Cookie Popup:
Удаление комментариев с ответами 
По умолчанию пользователи могут удалять свои комментарии. Также, удаление их комментария автоматически удаляет все дочерние и временные комментарии в ветке. Это поведение также реализовано в режиме реального времени.
Вы можете ограничить это следующими способами:
- Вместо этого анонимизируйте удалённый комментарий (установите name и text в
[deleted]или в пользовательское значение). - Не разрешать удалять комментарии, если есть ответы. Отображается настраиваемое сообщение об ошибке.
- Ограничить возможность удаления комментариев с ответами только администраторам и модераторам.
Это можно настроить в разделе Comment Thread Deletion в интерфейсе настройки виджета.
Показывать бейджи в верхней панели 
По умолчанию FastComments будет отображать бейджи пользователей только в их комментариях внутри потока комментариев.
Однако мы можем показать бейджи пользователя рядом с их именем над формой комментария, включив эту функцию на странице настройки виджета:
Это отображает бейджи пользователя рядом с его именем в верхней панели, делая достижения и статус более заметными во время написания комментария.
Учтите, что эта функция должна быть включена в интерфейсе настройки виджета, чтобы работать. Вы можете при желании установить флаг showBadgesInTopBar в false в конфигурации кода, чтобы выборочно отключить его даже когда он включен на стороне сервера:
Run 