
Язык 🇷🇺 Русский
Основы
Внешний вид
Живые комментарии
Пагинация и сортировка
Поле ответа
SSO
Анонимные комментарии
Разное
Настройки и конфигурация
Контекст
Здесь вы найдете подробную документацию по каждой из функций и параметров, которые поддерживает виджет комментариев.
Эта документация охватит основные концепции и подробно рассмотрит каждую область функциональности, с практическими руководствами и типичными подводными камнями.
Будут приведены примеры кода с выделением соответствующих строк. По возможности будут предоставлены скриншоты страниц настроек.
Примеры кода будут использовать нашу библиотеку на чистом JavaScript, однако параметры конфигурации используют точно такие же имена во всех версиях виджета комментариев (React, Vue и т.д.).
Большинство настроек и функций, описанных в этом руководстве, не требуют написания кода.
Идентификация вашего аккаунта 
Возможно, вы заметите, что виджет комментариев можно использовать с Tenant ID "demo", например:
Run 
Это предназначено только для опробования и экспериментов с виджетом комментариев. В рабочем окружении вы должны передать ваш Tenant ID следующим образом:
Run 
Ваш Tenant ID уже может быть указан в фрагменте кода виджета комментариев в вашей учетной записи: фрагмент кода в вашей учетной записи.
Вы также можете найти свой Tenant ID и управлять ключами API на странице учетных данных API.
Начиная с этого момента, если вы вошли в FastComments, примеры кода будут использовать ваш реальный Tenant ID (если вы вошли на https://fastcomments.com).
Как комментарии привязаны к страницам и статьям 
При отображении потока комментариев или при добавлении комментария FastComments необходимо знать, к какой странице, статье или товару относятся эти комментарии.
Для этого мы используем то, что называем "URL ID". Это либо идентификатор, например строка или число, либо URL.
По умолчанию, если вы не укажете urlId, он станет URL страницы. Мы возьмем текущий URL страницы и очистим его, чтобы удалить любые общие маркетинговые параметры или идентификаторы отслеживания.
В случае сторонних интеграций, таких как WordPress, наш плагин обычно будет использовать идентификатор, который представляет просматриваемую в данный момент информацию, в качестве URL ID, например идентификатор статьи/страницы.
Run 
Одним из элементов, к которому мы часто будем обращаться в этом документе, является Пользовательский интерфейс настройки виджета.
Этот интерфейс можно использовать, чтобы внести многие изменения в виджет комментариев без использования кода.
При создании правила настройки мы часто захотим, чтобы оно применялось ко всем страницам нашего сайта. Однако в некоторых случаях мы хотим настроить виджет комментариев на конкретной странице, например применить пользовательские стили или сделать комментарии для этой страницы анонимными. Вы также, например, можете настроить отображение живых комментариев сразу на некоторых страницах, в то время как на других — скрывать их под кнопками уведомлений.
Все это возможно с помощью поля ввода URL ID на этой странице, которое выглядит следующим образом:
Значение в этом поле должно соответствовать параметру urlId, передаваемому в виджет комментариев. Если вы хотите, чтобы ваше правило настройки было независимым от urlId, оставьте это поле пустым или введите *.
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.
Подводные камни
- Если на вашей странице есть хеш-параметры (например example.com#page-1) - по умолчанию они станут частью URL ID.
- Во время миграций, например с WordPress на Gatsby, возможно, вам придется перенести значения URL ID у комментариев после первоначальной миграции. Для этого свяжитесь с нами.
Отображение одних и тех же комментариев на разных страницах 
Поскольку параметр urlId позволяет нам определить, к какой странице или идентификатору привязаны комментарии, мы можем просто установить urlId с тем же значением на этих страницах.
Run 
Пользовательская стилизация 
FastComments разработан для настройки. Сам виджет комментариев работает внутри iframe по соображениям безопасности, поэтому для применения пользовательских стилей нужно следовать одному из двух подходов.
Первый, самый простой подход, и предпочтительный для нас, — использовать widget customization page.
На странице настройки виджета найдите раздел "Show Advanced Options", в котором есть область с надписью "Custom CSS":
У этого подхода есть несколько преимуществ:
- Введённый CSS минифицируется перед отправкой пользователю, и форматирование сохраняется единообразным в интерфейсе редактирования.
- Вы получаете все преимущества UI настройки виджета, например простую возможность по-разному настраивать виджет комментариев для разных сайтов.
- Когда мы вносим изменения в виджет комментариев, ваши пользовательские стили будут проверяться в рамках нашего процесса релиза.
Второй подход — указать параметр customCSS в конфигурации виджета, как показано ниже:
Run 
Однако у этого подхода есть ограничения:
- Существует ограничение на объём пользовательского CSS, который можно передать, прежде чем наши серверы отклонят запрос из-за размера заголовков.
- Вам придётся управлять пользовательским CSS в вашей инфраструктуре и системе сборки. Для некоторых это может быть даже преимуществом.
- В этом сценарии добавляется дополнительная нагрузка в виде отправки пользовательского CSS по сети дважды: сначала он отправляется на наши серверы, а затем возвращается в содержимом iframe. Однако для большинства размеров полезной нагрузки это не заметно.
- Распространённая оптимизация — минификация CSS для уменьшения размера при передаче по сети, но при таком подходе вам придётся заниматься этим самостоятельно.
- Ваш пользовательский CSS не будет тестироваться нами при внесении изменений.
External CSS Files
Вы можете указать виджету загрузить внешний файл, используя @import!
Рекомендуется помещать @import в правило кастомизации. Таким образом, если нам когда-либо потребуется внести изменение в виджет комментариев, мы сможем использовать наши автоматизированные
инструменты для проверки вашей настройки. Например, вы можете создать правило кастомизации в UI настройки виджета, нажать 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. Без этого префикса пользовательские стили будут игнорироваться для модальных окон профиля пользователя.
Например:
Run 
Backwards Compatibility
В FastComments мы понимаем, что наши клиенты настраивают виджет комментариев. Это заложено в концепции — последнее, чего мы хотим, это чтобы наш продукт вызывал дизайнерские несоответствия в вашем продукте.
Поскольку это важная часть нашего продукта, у нас есть конвейер сборки, который позволяет нам просматривать изменения в виджете комментариев для каждого клиента при каждом релизе.
Если мы обнаружим незначительные проблемы, мы обновим ваш аккаунт, чтобы обеспечить плавность релиза. Если мы увидим существенные ломаюшие изменения, это позволит нам приостановить релиз.
Пользовательские шрифты 
FastComments разработан для настройки, и шрифт, используемый нашими виджетами, не является исключением.
По умолчанию FastComments использует system font stack чтобы выглядеть максимально хорошо на широком спектре устройств.
Чтобы задать собственные шрифты, см. документацию по Custom CSS.
Там вы найдете способ задать пользовательский CSS, который позволит использовать нужные вам шрифты.
Как задать шрифт
Чтобы переопределить шрифт, мы рекомендуем задать ваш CSS с использованием селекторов .fast-comments, textarea. Например:
Run 
Удаление брендинга 
Для клиентов с тарифами Pro или Enterprise разрешена белая маркировка. Просто свяжитесь с нами, и мы будем рады помочь.
Если вы просто хотите удалить наш логотип из виджета комментариев, это автоматически включено в тарифах Flex и Pro.
Эти тарифы также предоставляют ту же функциональность для электронных писем, отправляемых с нашей платформы.
Поддержка тёмных фонов (тёмная тема) 
По умолчанию виджет комментариев FastComments будет автоматически определять тёмную тему на большинстве сайтов.
Когда обнаруживается тёмная тема, FastComments переключится с чёрного текста на белом фоне на белый текст на чёрном фоне. Изображения также будут изменяться.
При загрузке страницы виджет попытается определить, насколько тёмный фон страницы позади виджета комментариев. Это означает, что страница может иметь белый фон, но если вы поместите виджет комментариев внутри контейнера с чёрным фоном, тёмная тема всё равно должна автоматически включиться, чтобы комментарии были читаемы.
Однако механизм определения, который опирается на вычисление «люминанса», может не включить тёмную тему тогда, когда вы этого хотите. Чтобы принудительно включить её, установите флаг hasDarkBackground в true следующим образом:
Run 
Переключение тёмной темы 
Для сайтов, которые позволяют переключать тёмный режим после первоначальной загрузки страницы, это требует дополнительных действий.
Во-первых, во всех текущих версиях библиотеки Comment widget (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)» под этим комментарием.
Если вы хотите показать все верхнеуровневые комментарии в сочетании с этой опцией, установите начальную страницу в -1.
Включить визуальный редактор (WYSIWYG) 
По умолчанию возможности форматирования в FastComments реализованы путём добавления видимых якорных тегов, таких как <b></b>, вокруг вашего текста. Нажатие на панель инструментов
или использование сочетаний клавиш делает это за вас. Однако некоторые сообщества могут захотеть выбрать использование форматирования без видимых якорных тегов. Это называется включением
WYSIWYG (то, что видишь — то и получаешь) редактора. Этот редактор выглядит точно так же, как и стандартный, за исключением того, что он загружает дополнительный
код, который позволяет пользователям делать текст жирным, подчёркивать и т.д. без видимых якорных тегов.
Run 
This can also be done without code. In the widget customization page, see the "Включить расширенное форматирование" option.
Отключение панели инструментов 
По умолчанию FastComments отображает панель инструментов при написании комментария, чтобы предоставить быстрые кнопки для оформления текста и загрузки изображений.
Эту панель инструментов можно отключить в коде или через интерфейс настройки.
Run 
Это также можно сделать без кода. На странице настройки виджета выберите опцию «Отключить панель ответов».
Отключение блокировки 
По умолчанию FastComments позволяет пользователям блокировать других пользователей. Блокировка пользователя приведёт к маскировке его комментариев и предотвратит отправку уведомлений между пользователями и т.д.
Иногда может потребоваться отключить эту функцию. Это можно сделать следующим образом:
Run 
Это также можно сделать без кода, что дополнительно обеспечивает корректную проверку на стороне сервера, через интерфейс настройки виджета:
Определение страницы для отображения 
При получении и отображении комментариев виджету комментариев нужно знать, с какой страницы начинать. По умолчанию он начинает с первой страницы и отображает только эту страницу.
Если нужно, точную страницу для отображения можно передать виджету комментариев через настройку startingPage.
Run 
Обратите внимание, что нумерация страниц начинается с нуля, поэтому приведённый выше пример отображает вторую страницу.
Переключение обсуждений без перезагрузки страницы 
Мы уже объясняли, что urlId — это идентификатор страницы или статьи, к которой привязаны комментарии.
Также, напомним, если urlId не задан, он по умолчанию будет равен текущему URL страницы.
А как быть с SPA, или Single-Page-Applications, где страница или содержимое, к которому привязаны комментарии, меняется динамически без полной перезагрузки страницы?
Angular, React, Vue и т. д.
В наших библиотеках, таких как Angular и React, простое обновление свойства urlId, передаваемого виджету,
вызывает обновление виджета комментариев. Например, вы можете увидеть это в действии для React-приложения здесь.
VanillaJS
Если вы используете библиотеку VanillaJS, это немного сложнее, так как нет фреймворка вроде Angular или React, который бы обрабатывал привязку данных или распространение состояния.
Когда вы создаёте экземпляр виджета VanillaJS, он возвращает несколько функций, которые можно вызвать для его обновления.
Вот рабочий пример, в котором мы меняем хэш страницы и обновляем виджет комментариев:
Run 
Абсолютные даты (отключить удобочитаемые отметки времени) 
По умолчанию используются локализованные относительные даты. Например, рядом с недавно оставленным комментарием вы можете увидеть "11 минут назад".
Иногда может потребоваться или предпочтительнее использовать абсолютные даты, в этом случае установите этот параметр в true.
Run 
Это можно настроить без кода, на странице настройки виджета, в разделе «Дополнительные параметры»:
Показать абсолютные и относительные даты 
По умолчанию используются локализованные относительные даты. Например, рядом с недавно оставленным комментарием вы можете увидеть "11 минут назад".
Иногда необходимо или желательно сохранить этот формат относительной даты, но также показать полную дату рядом с ней — в этом случае установите этот параметр в true.
Run 
Это можно настроить без кода на странице настройки виджета, в разделе «Дополнительные параметры». Сначала вам нужно включить «Абсолютные даты», чтобы увидеть эту опцию в интерфейсе.
Добавление текста заголовка 
Некоторый текст, например заголовок или сообщение, может отображаться ниже счётчика комментариев, но выше текста статуса входа.
Мы называем это заголовком, и по умолчанию он скрыт.
Run 
Это можно настроить без кода на странице настройки виджета, в разделе «Дополнительные параметры»:
Отображать ссылки как текст 
По умолчанию FastComments отображает ссылки так: https://exmaple.com - где URL ссылки становится кликабельной HTML-ссылкой.
Некоторые сайты могут захотеть отключить это, например, чтобы отпугнуть мошенников. Мы предоставляем эту возможность, установив Comment HTML Rendering Option в значение Links as Text.
Это можно настроить без кода, на странице настройки виджета, для всего домена, или страницы:
Переключать комментарии кнопкой 
По умолчанию FastComments одновременно отображает поле ввода комментария и поток комментариев. Чтобы сэкономить вертикальное пространство, он также скрывает любые другие обязательные поля до взаимодействия с виджетом.
Однако виджет комментариев можно спрятать за кнопкой, например:
Кнопка использует разный переводимый текст в зависимости от того, отображаются ли в данный момент комментарии. Если комментарии скрыты, используется translations.SHOW_COMMENTS_BUTTON_TEXT. Если
комментарии отображаются, используется translations.HIDE_COMMENTS_BUTTON_TEXT. В переводе может содержаться текст [count], который будет
заменён на локализованное количество.
Run 
Это предназначено для замены конфигурации hideCommentsUnderCountTextFormat.
Количество обновляется в реальном времени вместе с потоком комментариев. Кнопка не отображается, если комментариев нет.
Это можно включить без кода, создав правило кастомизации и включив "Нажмите, чтобы показать комментарии":
Настройка текста счётчика комментариев 
Текст счётчика, отображаемый в верхней части виджета комментариев, можно настроить.
Его можно заменить любой строкой, а значение [count] будет заменено на число, локализованное для пользователя.
Run 
Это можно настроить без написания кода на странице настройки виджета:
Отключить перенаправление изображений 
По умолчанию FastComments позволяет пользователям загружать изображения. Когда пользователь нажимает на изображение, FastComments по умолчанию откроет новую вкладку, чтобы показать это изображение в полном размере. Установка этого флага в true отключает это поведение:
Run 
Если вы не планируете обрабатывать щелчок по изображению самостоятельно (см. onImageClicked), мы рекомендуем сочетать это с применением стилей, чтобы убрать видимость того, что изображение можно нажать.
Отключить автоматическое создание хэштегов 
Когда пользователи вводят хештеги в форме #someexampletag, FastComments автоматически создаст этот HashTag и выделит его в их комментарии.
В некоторых случаях желательно отключить эту функцию или управлять тем, какие хештеги можно использовать через API.
Для этого просто включите Disable Automatic #hashtag Creation в интерфейсе настройки виджета.
Отключить колокольчик уведомлений 
По умолчанию FastComments отображает значок уведомлений в правом верхнем углу области комментариев.
Этот значок станет красным и покажет количество уведомлений у пользователя. Примеры уведомлений:
- Пользователь ответил вам.
- Пользователь ответил в ветке, в которой вы комментировали.
- Пользователь проголосовал за ваш комментарий.
- Пользователь ответил на странице, на которую вы подписаны.
Значок уведомлений также предоставляет механизм подписки на всю страницу.
Однако можно полностью отключить значок уведомлений:
Run 
Это также можно сделать без кода. На странице настройки виджета см. раздел "Disable Notification Bell".
Отключить профили 
По умолчанию FastComments покажет профиль пользователя, когда вы кликаете на его аватар.
Однако эту функциональность можно отключить:
Run 
Это также можно сделать без кода. На странице настройки виджета см. раздел "Disable Profiles".
Отключить сообщение об успехе 
По умолчанию FastComments показывает сообщение об успешной отправке после комментирования. Это можно отключить следующим образом:
Run 
Это также можно сделать без кода. На странице настройки виджета:
Изменить рейтинг контента GIF 
По умолчанию виджет комментариев FastComments устанавливает gif rating в pg.
Доступные варианты: g, pg, pg-13 и r.
Это можно задать в коде или через интерфейс. В коде это делается следующим образом:
Run 
В интерфейсе это находится в разделе Gif Picker Rating, при условии что опция Disable Image Uploads? не отмечена.
Модерация изображений 
По умолчанию в виджете комментариев FastComments модерация изображений отключена off.
Доступные варианты: off, low, medium и high.
В интерфейсе настройки виджета это находится в разделе Image Content Moderation Level, при условии, что опция Disable Image Uploads? не отмечена.
Изменить стиль голосования 
По умолчанию FastComments отображает варианты голосования в виде стрелок вверх и вниз, позволяя пользователям либо голосовать за комментарий, либо против него.
Однако можно изменить стиль панели голосования. Текущие варианты — стандартные кнопки Up/Down или механизм голосования в стиле Heart.
Мы используем флаг voteStyle следующим образом:
Run 
Мы настоятельно рекомендуем делать это без кода, так как это также включает серверную валидацию. На странице настройки виджета смотрите раздел "Vote Style".
Голосование также можно отключить, см. Disable Voting выше параметров стиля.
Отключить удаление 
По умолчанию FastComments позволяет пользователям удалять свои комментарии.
Однако это можно запретить.
На странице настройки виджета найдите опцию "Отключить удаление".
- Это влияет только на обычных комментаторов и не затрагивает модераторов или администраторов, которые по-прежнему смогут удалять.
- Это также повлияет на интеграции через API в случаях, когда передаётся
contextUserId.
Отключить редактирование 
По умолчанию FastComments позволяет пользователям редактировать свои комментарии.
Однако это можно запретить.
На странице настройки виджета найдите опцию "Disable Editing".
- Это влияет только на обычных комментаторов и не затрагивает модераторов или администраторов, которые по-прежнему смогут редактировать.
- Это также повлияет на интеграции через API, когда передается
contextUserId.
Выделение новых комментариев 
FastComments предоставляет несколько способов выделения новых комментариев.
Прежде всего, по умолчанию комментарии, которые вызвали уведомление в приложении (ответы, ответы в той же ветке, или комментарии на странице
на которую вы подписаны), автоматически будут выделены: аватар пользователя слегка подсвечивается. Цвет можно настроить через CSS
используя класс is-unread.
Комментарии, опубликованные в последние 24 часа, получают применяемый класс 24hr, который можно использовать для стилизации.
Наконец, любые новые живые комментарии, которые появляются в сессии пользователя, будут выделяться в течение нескольких секунд с помощью анимации. Это делается через
is-live CSS class и также может быть настроено.
Размеры страниц 
По умолчанию размер страницы в FastComments — 30. Это включает ответы в ветках.
Размер страницы можно настроить в интерфейсе настройки виджета в диапазоне от 10 до 200.
Обратите внимание, что изменение размера страницы требует перерасчёта всех тредов комментариев в вашей учетной записи. Это может занять несколько минут.
Это нельзя настроить в клиентском виджете, поскольку страницы вычисляются на стороне сервера.
Пример конфигурации показан ниже:
Размеры страниц можно настроить глобально, для домена или для отдельной страницы, создав разные правила настройки.
Это повлияет на всех клиентов, интеграции и фреймворки, которые вы используете для отображения комментариев через нашу платформу.
Шаблоны писем 
Письма, отправляемые FastComments вашим клиентам, можно настроить. Шаблон, логика, и переводы — всё это можно изменить. Текст можно настроить для каждой локали, а стили можно даже изменить для каждого домена. Узнайте больше о настраиваемых шаблонах писем здесь.
Форматы имён пользователей 
По умолчанию FastComments будет отображать имя пользователя так, как он ввёл его, или так, как оно было передано нам через SSO.
Однако иногда требуется скрыть или показать имя пользователя иначе. Например, если имя пользователя — Allen Rex, возможно, вы захотите показывать только "Allen R.".
Это можно сделать без кода в интерфейсе настройки виджета (Widget Customization UI), в настройке под названием 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 
Это можно настроить без кода на странице настройки виджета:
Мы отслеживаем user id* который просматривал комментарий, поэтому при повторном просмотре комментарий не увеличивает счетчик. Если вы просмотрите комментарий снова спустя два года, счетчик увеличится.
- *Примечание: или anon session id, или IP пользователя в виде хэш-значения.
Показывать живые комментарии сразу 
По умолчанию включены живые комментарии. Это означает, что если какие-либо комментарии добавляются, удаляются, редактируются или закрепляются, изменения должны появляться у всех пользователей, просматривающих поток комментариев одновременно.
Однако по умолчанию эти новые комментарии будут появляться под динамически отображаемой кнопкой с текстом, например «Показать 2 новых комментария».
Если новые комментарии являются ответами непосредственно на страницу, кнопка отобразится вверху потока комментариев. Если они являются ответами на конкретный комментарий, кнопка отобразится под этим комментарием.
Это делается для того, чтобы размер страницы не менялся постоянно для пользователя, что могло бы вызывать раздражение при попытке схватиться за полосу прокрутки.
Для некоторых вариантов использования, таких как живые торги или онлайн-мероприятия, такое поведение нежелательно — возможно, вы захотите, чтобы виджет комментариев был больше похож на «чат», где новые комментарии «появляются сразу».
Отсюда и название флага, который включает эту функцию: showLiveRightAway.
Мы можем включить его следующим образом:
Run 
Это можно настроить без кода, на странице настройки виджета:
Отключение живых комментариев 
По умолчанию в FastComments включено живое комментирование.
Это означает, что каждый, кто просматривает ветку комментариев, увидит одно и то же содержимое.
Например, если добавлен комментарий, этот комментарий должен отображаться. Если комментарий отредактирован или удалён, то эти комментарии будут отредактированы или удалены для всех просматривающих ветку. То же самое относится к голосам и ко всем действиям модерации.
Однако это можно отключить:
Run 
Это также можно сделать без кода. На странице настройки виджета см. раздел "Отключить живое комментирование".
Новые живые комментарии внизу 
По умолчанию новые живые комментарии появляются в верхней части списка комментариев по мере их публикации в реальном времени.
Когда эта опция включена, новые живые комментарии будут добавляться в нижнюю часть списка. Это влияет на то, как комментарии отображаются при их публикации в реальном времени, пока пользователи просматривают ветку комментариев.
Run 
При включенной этой настройке:
- Новые живые комментарии, опубликованные другими пользователями, будут появляться внизу списка комментариев
- Пользователи будут видеть, как новые комментарии появляются под существующими в режиме реального времени
- Это влияет только на обновления живых комментариев - а не на начальную загрузку страницы
- Это может помочь поддерживать плавность чтения, когда пользователи следят за обсуждением
Обратите внимание, что эта настройка влияет только на то, где размещаются новые живые комментарии по мере их поступления в реальном времени. Она не влияет на начальный порядок сортировки при загрузке страницы.
Включение бесконечной прокрутки 
По умолчанию виджет FastComments автоматически изменяет высоту, чтобы вместить все видимые комментарии. Разбиение на страницы реализовано с помощью кнопки «Показать далее» в конце текущей страницы — мы обнаружили, что такое взаимодействие наиболее удобно для большинства пользователей.
Однако в некоторых случаях предпочитают бесконечную прокрутку. Например, мы используем эту функцию в продукте Stream Chat.
Мы можем скрыть кнопки «Показать далее» и переключиться на бесконечную прокрутку, установив флаг enableInfiniteScrolling в true:
Run 
Для этого также требуется добавить пользовательский CSS. Добавьте пользовательский CSS для селектора .comments, чтобы включить прокрутку, например:
Run 
Полный рабочий пример будет выглядеть так:
Run 
В приведённом выше примере мы используем свойство customCSS, однако для повышения производительности рекомендуется использовать интерфейс настройки виджета. См. документацию по пользовательскому CSS.
Изменение направления сортировки по умолчанию 
По умолчанию FastComments будет сортировать комментарии по направлению сортировки "Most Relevant".
Сортировка "Most Relevant" учитывает время, когда был оставлен комментарий, и количество голосов при сортировке.
Пользователь затем может изменить направление сортировки на либо Oldest, либо Newest First в пользовательском интерфейсе виджета комментариев.
Однако мы можем изменить значение по умолчанию на любое из трёх. Например, если вы хотите показывать сначала самые старые комментарии:
Run 
Мы устанавливаем значение defaultSortDirection в "OF", чтобы задать направление "OF".
Для направления сортировки "новые сначала" мы бы сделали следующее:
Run 
Допустимые значения для defaultSortDirection:
- MR: "Самые недавние"
- NF: "Сначала новые"
- OF: "Сначала самые старые"
Это также можно сделать без кода. На странице настройки виджета см. раздел "Default Sort Direction".
Обратите внимание, что комментарии на каждой странице для каждого направления сортировки предварительно вычисляются, поэтому все направления сортировки имеют одинаковую производительность.
Отображать все комментарии сразу — отключить пагинацию 
Чтобы отключить пагинацию и отобразить все комментарии сразу, установите startingPage в -1.
Run 
Переместить поле ответа после комментариев 
По умолчанию область ввода комментария находится перед потоком комментариев. Однако, установив этот параметр конфигурации в значение true, мы можем переместить её после.
Run 
Это можно настроить без кода, на странице настройки виджета:
Ограничение длины комментария 
Максимальное количество символов, которые допускаются в поле ввода комментария, можно ограничить параметром maxCommentCharacterLength.
Значение по умолчанию — 2000.
Такие элементы, как URL изображений, не учитываются при определении длины.
Run 
Это можно настроить без написания кода на странице настройки виджета:
Отключить многострочные комментарии 
По умолчанию FastComments позволяет пользователю вводить комментарий из любого количества строк в пределах установленного по умолчанию лимита символов.
Однако может возникнуть необходимость ограничить пользователя вводом только одной строки текста. Примеры использования включают онлайн-торги или живой чат, для которых FastComments можно использовать.
Включаем флаг useSingleLineCommentInput следующим образом:
Run 
Это также можно сделать без кода. На странице настройки виджета смотрите раздел "Включить ввод комментария в одну строку".
Обратите внимание, что комментарии на каждой странице для каждого направления сортировки предварительно вычислены, поэтому все направления сортировки имеют одинаковую производительность.
Ограничить количество комментариев на пользователя 
По умолчанию каждый пользователь может отправить не более 5 comments за одну минуту.
Это отслеживается по user id, anon user id и ip address (hashed).
Это можно настроить без кода на странице настройки виджета:
Обратите внимание, что если вы используете comment creation API, возможно, стоит передать исходный ip пользователя в запросе на наш бэкенд, чтобы ограничение скорости применялось к каждому пользователю, а не глобально к вашей учетной записи.
Запретить новые комментарии верхнего уровня 
Установка noNewRootComments в true приведёт к тому, что виджет скроет область ответа для корневых комментариев, но всё ещё позволит пользователям отвечать
на дочерние комментарии. Вы могли бы, например, установить это условно при загрузке страницы, чтобы разрешать оставлять корневые комментарии только некоторым пользователям.
Run 
Максимальная глубина ответов 
По умолчанию FastComments допускает неограниченную вложенность ответов, создавая древовидную структуру, в которой пользователи могут бесконечно отвечать на ответы.
Параметр maxReplyDepth позволяет ограничить, насколько глубоко могут уходить ветви ответов. Когда достигается максимальная глубина, пользователи больше не будут видеть кнопку ответа на комментариях на этом уровне.
Run 
При установке maxReplyDepth в 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 plugin отображалась бейдж «Moderator», они также должны быть добавлены как Moderator в панели управления FastComments и иметь подтверждённый email.
Custom Integrations
Для кастомных интеграций есть два варианта.
Option One - Secure SSO
С Secure SSO FastComments знает, что пользователь, комментирующий, голосующий и читающий комментарии, является реальным пользователем вашего сайта.
Пока вы создаёте корректную полезную нагрузку, пользователь всегда будет иметь бесшовный опыт комментирования.
С Secure SSO полезная нагрузка SSO создаётся на стороне сервера с использованием HMAC-аутентификации и затем передаётся виджету на клиенте.
С Secure SSO учётная запись пользователя полностью отделена от остальной базы пользователей FastComments. Это означает, что если у нас есть два партнёра — Company A и Company B, — у каждого может быть SSO-пользователь с именем пользователя "Bob".
Requirements
- Базовые знания разработки backend.
- Базовые знания работы с секретными 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".
Note! Начиная с начала 2022 года имена пользователей при Simple SSO не обязаны быть уникальными по всему FastComments.com.
Идеально, если Simple SSO выбирается только при разработке на платформе, где нет доступа к backend.
Requirements
- Базовые знания клиентской разработки.
- Необходимо знать по крайней мере email пользователя.
Pros
- Просто.
- Вся активность всё ещё проходит проверку.
- Пользователь никогда не вводит своё имя пользователя или email.
Cons
- Менее безопасно, чем Secure SSO, так как полезная нагрузка на стороне клиента может быть подделана, чтобы притвориться любым пользователем.
Simple SSO API
Пользователи, автоматически создаваемые через поток Simple SSO, сохраняются как объекты SSOUser. К ним можно получить доступ и управлять ими через API SSOUser. Смотрите the docs.
Пользовательские интеграции — безопасный единый вход (SSO) 
FastComments Secure SSO использует HMAC-SHA256 шифрование как механизм реализации SSO. Сначала мы рассмотрим общую архитектуру, приведём примеры и детальные шаги.
Также есть документация по миграции от других провайдеров с аналогичными механизмами SSO и по отличиям.
The flow looks like this:
Поскольку Secure SSO требует full-stack разработки, полнофункциональные работающие примеры кода на Java/Spring, NodeJS/Express и чистом PHP в настоящее время на GitHub.
Хотя в примере для NodeJS мы используем ExpressJS, а в примере для Java — Spring, в этих средах для реализации FastComments SSO не требуются дополнительные фреймворки/библиотеки — работают встроенные криптографические пакеты.
Вам не нужно создавать новые API-эндпойнты для FastComments SSO. Просто зашифруйте информацию о пользователе с помощью вашего секретного ключа и передайте полезную нагрузку в виджет комментариев.
Получение вашего API Secret Key
Ваш 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: При передаче вместо loginURL — функция, которую виджет комментариев вызовет при клике по кнопке входа.
- logoutCallback: При передаче вместо logoutURL — функция, которую виджет комментариев вызовет при клике по кнопке выхода.

The User Object

Moderators and Administrators
Для администраторов и модераторов передайте соответствующие флаги isAdmin или isModerator в объекте SSOUser.
Notifications
Чтобы включить или отключить уведомления, установите значение optedInNotifications в true или false соответственно. При первом загрузке страницы пользователем с этим значением в SSO-пейлоаде его настройки уведомлений будут обновлены.
Кроме того, если вы хотите, чтобы пользователи получали уведомления по электронной почте о действиях на страницах, на которые они подписаны (в отличие от только внутренних уведомлений в приложении), установите optedInSubscriptionNotifications в true.
VIP Users & Special Labels
Вы можете отображать специальную метку рядом с именем пользователя, используя необязательное поле "displayLabel".
Unauthenticated users
Чтобы представить неаутентифицированного пользователя, просто не заполняйте userDataJSONBase64, verificationHash или timestamp. Укажите loginURL.
Эти пользователи не смогут оставлять комментарии; вместо этого им будет показано сообщение о входе (сообщение, ссылка или кнопка, в зависимости от конфигурации).
Direct Examples for Serializing and Hashing User Data
Более подробные примеры доступны здесь (js), здесь (java) и здесь (php).
Мы понимаем, что любая интеграция может быть сложным и болезненным процессом. Не стесняйтесь обращаться к вашему представителю или воспользоваться страницей поддержки.
Пользовательские интеграции — простой единый вход (SSO) 
С помощью Simple SSO мы можем предоставить виджету комментариев информацию о пользователе, чтобы ему не нужно было вводить имя пользователя или электронную почту для комментирования.
Мы можем настроить Simple SSO следующим образом:
Run 
Пользователь будет авторизован, и за кулисами будет создан SSO-пользователь. У пользователя будет поле createdFromSimpleSSO, установленное в true, если он получен через API.
Notes:
- Email является уникальным идентификатором для Simple SSO.
- Предоставление электронной почты при использовании Simple SSO не обязательно, однако по умолчанию их комментарии будут отображаться как "Unverified". Если электронная почта не указана, пользователь не может быть полностью аутентифицирован.
- НОВОЕ С января 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 или страницу, просто сконфигурируйте правило настройки соответствующим образом.
Вверху интерфейса настройки вы найдёте два поля ввода: Domain и URL ID.
Чтобы защитить конкретный домен, введите соответствующий домен в поле "domain".
Чтобы защитить конкретную страницу, введите URL страницы в поле "URL ID". Если у вас собственная интеграция с FastComments, вы можете ввести здесь какой-либо тип идентификатора вместо URL.
Уровни безопасности
При требовании SSO вам нужно решить, требуется ли вам Simple SSO или Secure SSO. Если требуется Simple SSO, разрешены оба варианта, но если требуется Secure SSO, то содержимое должно быть получено с помощью Secure SSO payload, захешированного вашим API key, чтобы его можно было просмотреть.
Параметр уровня безопасности появится, когда вы выберете "Require SSO To View Comments".
Защита помимо просмотра
Включение этой опции защитит страницу или домен от комментирования, если пользователь не вошёл через SSO.
Подводные камни
Пользователи, создавшие комментарии до интеграции SSO, не смогут их видеть, если только они не войдут через вашу интеграцию SSO.
Разрешить анонимные комментарии 
По умолчанию FastComments будет требовать указать электронную почту для комментирования. Она не обязательно должна быть действительной, однако до тех пор, пока пользователь не перейдёт по отправленной ему ссылке, его комментарий будет отображаться с меткой "Неподтверждённый комментарий".
Однако мы можем убрать требование об электронной почте. Поле ввода электронной почты по-прежнему будет отображаться, но больше не будет обязательным.
Это можно настроить через интерфейс настройки виджета:
Предотвращение истечения срока действия анонимных комментариев 
FastComments можно настроить так, чтобы удалять неподтверждённые комментарии через заданное количество дней. Это помогает бороться со спамом.
По умолчанию этого не происходит.
Это можно настроить или отключить на странице Настройки модерации.
Отключить поля для e-mail 
Когда пользователи комментируют, и они не вошли в систему, у них попросят указать свой адрес электронной почты.
Это создаст "непроверенную сессию" для этого пользователя, и мы попросим его подтвердить эту сессию по электронной почте.
Для некоторых сайтов или приложений желательно не спрашивать у пользователя его электронную почту при комментировании или голосовании.
Включение анонимного комментирования делает поле ввода электронной почты необязательным. Однако мы можем полностью отключить его. Сначала включите анонимное комментирование, и затем появится опция отключения полей ввода электронной почты.
При включённой опции поля электронной почты вообще не будут отображаться во всех наших продуктах для комментирования.
Обратите внимание, что при этой конфигурации все комментарии будут непроверенными, если пользователь не создаст аккаунт и не войдёт на https://fastcomments.com.
Возможно, вы захотите рассмотреть отключение метки "непроверено".
Отключить метку «непроверено» 
По умолчанию FastComments будет показывать метку "Непроверенный комментарий" для комментариев, которые были оставлены для пользователя, у которого сеанс браузера не подтверждён. Подробнее о непроверенных комментариях читайте здесь.
Run 
Кроме того, эту функцию можно использовать без написания кода в интерфейсе Customization UI:
Установка имени пользователя по умолчанию 
Когда пользователи комментируют или голосуют и не вошли в систему, у них попросят указать электронную почту и имя пользователя.
В случае анонимного комментирования иногда целесообразно задать имя пользователя по умолчанию, чтобы снизить трение при комментировании. Это можно сделать из Customization UI. Anonymous Commenting must be enabled first.
Обратные вызовы 
Все библиотеки для виджета комментариев (в настоящее время Angular, React, Vue) поддерживают обратные вызовы.
Обратные вызовы указываются в объекте конфигурации и имеют одинаковую сигнатуру для каждой библиотеки.
Поддерживаемые обратные вызовы:
- onInit
- onAuthenticationChange
- onRender
- commentCountUpdated
- onReplySuccess
- onVoteSuccess
- onImageClicked
- onOpenProfile
- onCommentSubmitStart
- onCommentsRendered
Точные сигнатуры можно найти в определениях TypeScript.
Ниже приведён пример со всеми обратными вызовами:
Run 
Ручное задание локали пользователя 
По умолчанию FastComments отображает виджет комментариев в локали, определяемой системой и браузером пользователя.
Когда пользователь оставляет комментарий или выполняет вход, мы обновляем его последнюю использованную локаль и используем её также для отправки писем.
Это влияет на то, как виджет комментариев переводится для пользователя. Локаль состоит из языка и региона пользователя, поэтому настройка локали обычно меняет язык, используемый для отображения текста пользователю.
Via The UI
Это можно задать с помощью интерфейса настройки виджета. См. опцию "Locale / Language":
Via Code
Это можно переопределить, указав желаемую локаль.
Run 
Supported Languages and Locale Codes
Полный список поддерживаемых языков и соответствующих кодов локалей можно найти здесь.
SSO Note
Если вы используете 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 
Идентификаторы групп для упоминаний 
Список идентификаторов, используемых для автодополнения @mentions. Полезно, когда вы хотите предотвратить упоминание пользователей, если у них нет пересекающихся групп.
Когда задано, в автозаполнении после ввода символа @ будут предлагаться только пользователи из других групп.
Run 
Обход сторонних cookie 
Для аутентификации FastComments требует включённых сторонних cookie в вашем браузере. Без них пользователям всегда придётся указывать свой email, чтобы комментировать (если только поле ввода email не скрыто), а их комментарии по умолчанию будут помечаться как непроверенные.
Чтобы обойти это, можно включить обход сторонних cookie.
При включении этой настройки появится небольшое всплывающее окно с сообщением о том, что пользователь проходит авторизацию. Это всплывающее окно появляется каждый раз, когда пользователь взаимодействует с виджетом комментариев; например, когда он оставляет комментарий.
Мы можем сделать это в коде, установив флаг enableThirdPartyCookieBypass в true:
Run 
Также это можно настроить через интерфейс настройки виджета, в пункте Enable Third-Party Cookie Popup:
Удаление комментариев с ответами 
По умолчанию пользователи могут удалять свои собственные комментарии. Также удаление их комментария автоматически удаляет все дочерние и временные комментарии в ветке. Это поведение также действует в реальном времени.
Вы можете ограничить это следующими способами:
- Вместо этого анонимизируйте удалённый комментарий (установите name и text в
[deleted]или в произвольное значение). - Запретите удаление комментариев, если есть ответы. Отображается настраиваемое сообщение об ошибке.
- Ограничьте удаление комментариев с ответами только для администраторов и модераторов.
Это можно настроить в разделе Comment Thread Deletion в интерфейсе настройки виджета.
Показывать бейджи в верхней панели 
По умолчанию FastComments отображает значки пользователей только на их комментариях в ветке комментариев.
Однако мы можем показывать значки пользователей рядом с их именем над формой комментария, включив эту функцию на странице настройки виджета:
Это будет отображать значки пользователя рядом с его именем в верхней панели, делая их достижения и статус более заметными, когда пользователь пишет комментарий.
Обратите внимание, что эта функция должна быть включена в интерфейсе настройки виджета, чтобы работать. При необходимости вы можете установить флаг showBadgesInTopBar в false в конфигурации кода, чтобы выборочно отключить её, даже если он включён на уровне сервера:
Run 