FastComments.com


Personalizaciones y Configuración

Contexto

Aquí encontrarás documentación detallada sobre cada una de las funciones y ajustes que admite el widget de comentarios.

Esta documentación cubrirá conceptos fundamentales y profundizará en cada área de funcionalidad, con guías prácticas y problemas comunes.

Se proporcionarán ejemplos de código, con las líneas relevantes resaltadas. Se incluirán capturas de pantalla de las páginas de configuración cuando proceda.

Los ejemplos de código usarán nuestra biblioteca de JavaScript puro; sin embargo, las opciones de configuración usan exactamente los mismos nombres para todas las versiones del widget de comentarios (React, Vue, etc.).

La mayoría de las configuraciones y funciones descritas en esta guía no requieren escribir código.


Mostrar los mismos comentarios en diferentes páginas Internal Link


Dado que el parámetro urlId nos permite definir a qué página o id están vinculados los comentarios, podemos simplemente establecer urlId al mismo valor en esas páginas.

The Same Comments on Multiple Pages
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "urlId": "https://example.com/source-page"
8}];
9</script>
10

Fuentes personalizadas Internal Link

FastComments está diseñado para ser personalizado, y la fuente que usan nuestros widgets no es una excepción.

Por defecto, FastComments usa el system font stack para verse lo mejor posible en una amplia gama de dispositivos.

Para definir tus propias fuentes, consulta la documentación de CSS personalizado.

Allí encontrarás una forma de definir CSS personalizado, lo que te permitirá establecer las fuentes que desees.

Cómo definir la fuente

Para sobrescribir la fuente, recomendamos que definas tu CSS usando los selectores .fast-comments, textarea. Por ejemplo:

Ejemplo de fuente externa personalizada
Copy CopyRun External Link
1
2@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@300&display=swap');
3.fast-comments, textarea {
4 font-family: 'Roboto', sans-serif;
5}
6

Compatibilidad con fondos oscuros (modo oscuro) Internal Link

Por defecto, el widget de comentarios de FastComments detectará automáticamente el modo oscuro en la mayoría de los sitios.

Cuando se detecta el modo oscuro, FastComments cambiará de texto negro sobre fondos blancos a texto blanco sobre fondo negro. Las imágenes también cambiarán.

Al cargar la página, el widget intentará determinar cuán oscuro es el fondo de la página detrás del widget de comentarios. Esto significa que la página podría tener un fondo blanco, pero si coloca el widget de comentarios dentro de un contenedor con un fondo negro, el modo oscuro debería aun así habilitarse automáticamente para que los comentarios sean legibles.

Sin embargo, el mecanismo de detección, que se basa en determinar la "luminancia", puede no activar el modo oscuro cuando lo desee. Para forzarlo, establezca la bandera hasDarkBackground en true de la siguiente manera:

Force Dark Background Mode
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "hasDarkBackground": true
8}];
9</script>
10

Enlazar comentarios a páginas Internal Link

Al enviar correos electrónicos de notificación, o al renderizar comentarios en interfaces de usuario como la página de moderación, es útil poder enlazar desde el comentario a la página en la que se encuentra.

Si el ID de URL no es siempre un ID, entonces tenemos que almacenar la URL en otro lugar. Para eso sirve la propiedad "url", definida como sigue.

Defining a Custom URL
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "url": "https://example.com/article-5"
8}];
9</script>
10

Un caso de uso común es vincular el hilo de comentarios a un identificador, como un artículo, y luego enlazar de vuelta a una página en particular, por ejemplo:

Defining Custom URL and URL IDs together
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "url": "https://example.com/article-5",
8 "urlId": "article-5"
9}];
10</script>
11

La URL no se limpia de parámetros de marketing comunes. Por defecto, sea cual sea la URL de la página actual, esa es la URL que se guarda con el comentario.

Determinar qué página renderizar Internal Link

Al recuperar y renderizar los comentarios, el widget de comentarios necesita saber en qué página empezar. Por defecto, comienza en la primera página, renderizando únicamente esa página.

Si se desea, la página exacta que debe renderizarse puede pasarse al widget de comentarios como la configuración startingPage.

Specifying The Page to Render
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "startingPage": 1
8}];
9</script>
10

Tenga en cuenta que los números de página comienzan en cero, por lo que el ejemplo anterior renderiza la segunda página.

Cambiar hilos de comentarios sin recargar la página Internal Link

Hemos explicado cómo urlId es el identificador de la página o artículo al que están vinculados los comentarios.

Además, para recapitular, si no se define, urlId tomará por defecto la URL de la página actual.

¿Qué ocurre con las SPA, o Single-Page-Applications, donde la página o el contenido al que están vinculados los comentarios cambia dinámicamente sin recargar la página?

Angular, React, Vue, etc

Con nuestras librerías como Angular y React, simplemente actualizar la propiedad urlId que se pasa al widget hará que el widget de comentarios se actualice. Puedes ver esto en acción para la aplicación React, por ejemplo, aquí.

VanillaJS

Si estás usando la librería VanillaJS es un poco más complicado ya que no hay un framework como Angular o React para gestionar el enlace de datos o la propagación del estado.

Cuando instancias el widget de VanillaJS, devuelve algunas funciones que se pueden llamar para actualizarlo.

Aquí hay un ejemplo funcional donde cambiamos el hash de la página y actualizamos el widget de comentarios:

Ejemplo de cambio del hash de la página
Copy CopyRun External Link
1
2<script src="https://cdn.fastcomments.com/js/embed-v2.min.js"></script>
3<button id="change-page"></button>
4<div id="fastcomments-widget"></div>
5<script>
6 (function fastCommentsMain() {
7 let config = {
8 tenantId: 'demo'
9 };
10 let instance = window.FastCommentsUI(document.getElementById('fastcomments-widget'), config);
11
12 let page = '#page-1';
13 function getNextPage() {
14 if (page === '#page-1') {
15 return '#page-2';
16 } else {
17 return '#page-1';
18 }
19 }
20
21 let button = document.getElementById('change-page');
22 function nextPage() {
23 page = getNextPage();
24 button.innerText = 'Go to ' + getNextPage();
25 window.location.hash = page;
26 let locationString = window.location.toString();
27
28 config.url = locationString; // También actualizamos url, para que las notificaciones puedan enlazar de nuevo a la página correcta
29 config.urlId = locationString;
30
31 instance.update(config);
32 }
33 nextPage();
34 button.addEventListener('click', nextPage);
35 })();
36</script>
37

Desactivar redirección de imágenes Internal Link

Por defecto, FastComments permite a los usuarios subir imágenes. Cuando un usuario hace clic en esa imagen, FastComments, por defecto, abrirá una nueva pestaña para mostrar esa imagen a tamaño completo. Establecer este indicador a true desactiva este comportamiento:

Disable Image Redirect
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "disableImageRedirect": true
8}];
9</script>
10

Si no tienes previsto capturar el clic en la imagen tú mismo (ver onImageClicked), recomendamos combinar esto con algún estilo para que no parezca que la imagen se puede hacer clic.

Resaltar comentarios nuevos Internal Link


FastComments proporciona varias maneras de resaltar comentarios nuevos.

En primer lugar, por defecto los comentarios que activaron una notificación dentro de la aplicación (respuestas, respuestas en el mismo hilo, o comentarios en una página a la que estás suscrito), se resaltarán automáticamente con el avatar del usuario brillando ligeramente. El color se puede personalizar mediante CSS usando la clase is-unread.

Los comentarios publicados en las últimas 24 horas tienen aplicada la clase 24hr que puede usarse para el estilo.

Por último, cualquier comentario nuevo en vivo que aparezca en la sesión del usuario será resaltado durante varios segundos mediante una animación. Esto se realiza mediante la clase CSS

is-live y también se puede personalizar.

Plantillas de correo electrónico Internal Link

Los correos electrónicos enviados por FastComments a tus clientes pueden personalizarse. La plantilla, la lógica, y las traducciones se pueden modificar. El texto puede personalizarse por localización, y el estilo incluso puede cambiarse por dominio. Más información sobre plantillas de correo electrónico personalizadas aquí.

Colocar nuevos comentarios en vivo al final Internal Link

Por defecto, los nuevos comentarios en vivo aparecen en la parte superior de la lista de comentarios a medida que se publican en tiempo real.

Cuando esta opción está habilitada, los nuevos comentarios en vivo se añadirán en la parte inferior de la lista en su lugar. Esto afecta a cómo aparecen los comentarios cuando se publican en directo mientras los usuarios están viendo el hilo de comentarios.

New Live Comments to Bottom
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "newCommentsToBottom": true
8}];
9</script>
10

Con esta configuración habilitada:

  • Los nuevos comentarios en vivo publicados por otros usuarios aparecerán en la parte inferior de la lista de comentarios
  • Los usuarios verán aparecer nuevos comentarios por debajo de los comentarios existentes en tiempo real
  • Esto solo afecta a las actualizaciones de comentarios en vivo - no a la carga inicial de la página
  • Esto puede ayudar a mantener el flujo de lectura cuando los usuarios siguen una discusión

Tenga en cuenta que esta configuración solo afecta al lugar donde se colocan los nuevos comentarios en vivo cuando llegan en tiempo real. No afecta al orden de clasificación inicial cuando se carga la página.

Habilitar desplazamiento infinito Internal Link

Por defecto, el widget de FastComments se redimensionará verticalmente para ajustarse a todos los comentarios visibles. La paginación se consigue mediante un botón "Ver siguiente" al final de la página actual, ya que hemos comprobado que esta interacción resulta más agradable para la mayoría de los usuarios.

Sin embargo, hay algunos casos en los que se prefiere el desplazamiento infinito. Por ejemplo, usamos esta función en nuestro producto Stream Chat.

Podemos ocultar los botones "Ver siguiente" y cambiar a desplazamiento infinito estableciendo la bandera enableInfiniteScrolling a true:

Enabling Infinite Scrolling
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "enableInfiniteScrolling": true
8}];
9</script>
10

Esto también requiere la adición de CSS personalizado. Añada CSS personalizado para el selector .comments para habilitar el desplazamiento, por ejemplo:

Habilitar desplazamiento infinito
Copy CopyRun External Link
1
2.comments {
3 max-height: 500px;
4 overflow-y: auto;
5}
6

Un ejemplo completo y funcional sería:

Enabling Infinite Scrolling
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "enableInfiniteScrolling": true,
8 "customCSS": ".comments { max-height: 500px; overflow-y: auto; }"
9}];
10</script>
11

En el ejemplo anterior usamos la propiedad customCSS; sin embargo, se sugiere usar la interfaz de configuración del Widget en su lugar por razones de rendimiento. Consulte la documentación de CSS personalizado.

Mostrar todos los comentarios a la vez - desactivar paginación Internal Link


Para desactivar la paginación y mostrar todos los comentarios a la vez, establezca startingPage en -1.

Render All Comments
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "startingPage": -1
8}];
9</script>
10

Evitar nuevos comentarios de primer nivel Internal Link


Establecer noNewRootComments en true hará que el widget oculte el área de respuesta raíz, pero aún permita a los usuarios responder a comentarios secundarios. Por ejemplo, podrías establecer esto condicionalmente al cargar la página para permitir que solo algunos usuarios dejen comentarios de nivel superior.

Prevent New Root Comments
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "noNewRootComments": true
8}];
9</script>
10

Profundidad máxima de respuestas Internal Link

Por defecto, FastComments permite un anidamiento ilimitado de respuestas, creando una estructura de hilos donde los usuarios pueden responder a respuestas indefinidamente.

La opción maxReplyDepth te permite limitar hasta qué profundidad pueden llegar los hilos de respuestas. Cuando se alcanza la profundidad máxima, los usuarios ya no verán un botón de responder en los comentarios en ese nivel.

Limiting Reply Depth to 2 Levels
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "maxReplyDepth": 2
8}];
9</script>
10

Con maxReplyDepth establecido en 2:

  • Los usuarios pueden comentar en el nivel superior (profundidad 0)
  • Los usuarios pueden responder a los comentarios de nivel superior (profundidad 1)
  • Los usuarios pueden responder a esas respuestas (profundidad 2)
  • No se permiten más respuestas más allá de la profundidad 2

Configurar a 1 solo permitiría respuestas a comentarios de nivel superior, creando una estructura de discusión más plana.

Establecer maxReplyDepth a 0 deshabilitaría todas las respuestas, permitiendo solo comentarios de nivel superior. Si no se especifica, las respuestas pueden anidarse sin límite.

Resumen de inicio de sesión único (SSO) Internal Link

SSO, o inicio de sesión único, es un conjunto de convenciones que se usan para permitir que tú o tus usuarios utilicen FastComments sin tener que crear otra cuenta.

Suponiendo que no permites comentarios anónimos, se requiere una cuenta para comentar con FastComments. Hacemos que este proceso de registro sea muy sencillo: el usuario simplemente deja su correo electrónico cuando comenta. Sin embargo, entendemos que incluso eso es una fricción adicional que algunos sitios quieren evitar.

Podemos reducir esa fricción teniendo solo un flujo de inicio de sesión para todo tu sitio.

¿Cómo lo obtengo?

Todos los tipos de cuenta actualmente obtienen acceso a SSO. Sin embargo, el número máximo de usuarios SSO variará dependiendo de tu paquete. Como con otras funcionalidades, los planes Pro y superiores proporcionan soporte de desarrollo directo.

Comparemos las opciones, y luego entremos en los detalles de cada una.

Migraciones de Usuarios y Comentarios

Al migrar desde una plataforma con SSO como Disqus, ya tendrás usuarios y sus comentarios.

Los comentarios se importan como parte de tu migración, ya sea mediante la API, nuestra interfaz de importación, o el soporte al cliente. La interfaz de importación es preferida si soporta la plataforma desde la que estás migrando, ya que incorpora manejo de errores, extracción y subida de avatar y medios, y un sistema de monitoreo por lotes.

Los propios usuarios se agregan automáticamente al ver los hilos de comentarios por primera vez. Alternativamente, pueden pre-agregarse mediante la API, pero este trabajo no tiene muchas ventajas.

Si los comentarios se importan, y los usuarios SSO no se agregan manualmente vía la API, entonces los comentarios se migrarán automáticamente a la cuenta del usuario la primera vez que se cree cuando vean cualquier hilo de comentarios. Entonces podrán gestionar, editar y eliminar los comentarios que escribieron originalmente.

La migración automática se realiza mediante correo electrónico o nombre de usuario. Algunas plataformas no proporcionan correos electrónicos en la exportación, como Disqus, por lo que en ese caso recurrimos al nombre de usuario.

  • Siempre que pases un nombre de usuario coincidente, y un correo electrónico en el payload SSO, añadiremos el correo electrónico a los objetos de comentario individuales para que las notificaciones y menciones funcionen.

Si se desea importar tus comentarios y usuarios a la vez, trabaja con soporte para migrar los comentarios a las respectivas cuentas de los usuarios después de que los usuarios sean importados vía la API.

Entonces, para resumir, el camino más fácil para la migración es:

  1. Importar comentarios.
    1. Los avatares y otros medios se migran automáticamente si usas la Interfaz de Importación en Manage Data -> Imports.
  2. Configurar SSO Seguro o Simple.
  3. Dejar que la migración ocurra por usuario automáticamente cuando inicien sesión por primera vez.
    1. Esto usualmente añade menos de un segundo al tiempo de carga de la página si el usuario tiene menos de 50k comentarios.

Usuarios de WordPress

Si estás usando nuestro plugin de WordPress ¡no hay código que escribir! Simplemente ve a la página de administración del plugin, haz clic en Configuración SSO, y luego Habilitar.

Esto te llevará a un asistente de un solo botón que creará tu clave API, la enviará a tu instalación de WordPress y activará SSO. Hemos consolidado esto en un solo clic para ti.

Nota que si estás instalando el plugin por primera vez tendrás que completar el proceso de configuración antes de ver la página de administración con el botón de Configuración SSO.

SSO de WordPress - Moderadores

Ten en cuenta que actualmente para que la insignia "Moderator" se muestre junto a tus moderadores cuando comentan con el plugin de FastComments para WordPress, también deben ser añadidos como Moderador en el panel de FastComments, y tener su correo electrónico verificado.

Integraciones Personalizadas

Para integraciones personalizadas, hay dos opciones.

Opción Uno - SSO Seguro

Con SSO Seguro, FastComments sabe que el usuario que comenta, vota y lee comentarios es un usuario real de tu sitio.

Siempre que crees un payload válido, el usuario tendrá siempre una experiencia de comentarios sin fricciones.

Con SSO Seguro, el payload SSO se crea del lado del servidor usando autenticación HMAC y luego se pasa al widget en el cliente.

Con SSO Seguro, la cuenta del usuario está completamente separada del resto de la base de usuarios de FastComments. Esto significa que si tenemos dos socios Company A y Company B, cada uno puede tener un usuario SSO con el nombre de usuario "Bob".

Requisitos

  • Algunos conocimientos básicos sobre desarrollo backend.
  • Algunos conocimientos básicos sobre el manejo de claves API secretas.
  • Algunos conocimientos básicos sobre desarrollo de API o renderizado del lado del servidor.

Ventajas

  • Seguro.
  • Experiencia de comentarios sin fricciones.

Desventajas

  • Requiere desarrollo backend.

Actualización de Datos de Usuario

Con SSO Seguro, cada vez que pases el sso user payload, actualizaremos su usuario con la información más reciente. Por ejemplo, si el usuario tiene un nombre de usuario X, y pasas Y en el payload SSO, su nombre de usuario se convertirá en Y.

Si quieres eliminar valores usando este enfoque entonces configúralos a null (no undefined).

API de SSO Seguro

También proporcionamos una API para interactuar con los usuarios SSO. Ver la documentación.

Nota que al usar SSO Seguro, los usuarios se crean automáticamente detrás de escena al cargar la página. No tienes que importar tus usuarios en bloque.

Opción Dos - SSO Simple

La alternativa al SSO Seguro es simplemente pasar la información del usuario al widget de comentarios.

Proporcionar un correo electrónico con SSO Simple no es obligatorio, sin embargo sin esto sus comentarios aparecerán como "No verificado".

¡Nota! A principios de 2022 los nombres de usuario con SSO Simple no necesitan ser únicos en todo FastComments.com.

Idealmente, SSO Simple solo debería elegirse cuando se desarrolla en una plataforma que no proporciona acceso al backend.

Requisitos

  • Algunos conocimientos básicos sobre desarrollo del lado del cliente.
  • Tener al menos el correo electrónico del usuario.

Ventajas

  • Simple.
  • Toda la actividad sigue verificándose.
  • El usuario nunca introduce su nombre de usuario o correo electrónico.

Desventajas

  • Menos seguro que SSO Seguro ya que el payload del lado del cliente podría forjarse para convertirse en cualquier usuario.

API de SSO Simple

Los usuarios creados automáticamente a través del flujo SSO Simple se almacenan como objetos SSOUser. Pueden accederse y gestionarse vía la API SSOUser. Ver la documentación.

Integraciones personalizadas - Inicio de sesión único (SSO) simple Internal Link


Con Simple SSO, podemos proporcionar al widget de comentarios información sobre el usuario para que no tenga que introducir su nombre de usuario o correo electrónico para comentar.

Podemos configurar Simple SSO de la siguiente manera:

Simple SSO
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "simpleSSO": {
8 "username": "Bob",
9 "email": "bob@example.com",
10 "avatar": "https://example.com/bob.png",
11 "websiteUrl": "https://example.com/profiles/bob",
12 "displayName": "Bob's Name",
13 "displayLabel": "VIP User",
14 "loginURL": "https://example.com/login",
15 "logoutURL": "https://example.com/logout",
16 "badgeConfig": {
17 "badgeIds": [
18 "badge-id-1",
19 "badge-id-2"
20 ],
21 "override": false
22 }
23 }
24}];
25</script>
26

El usuario iniciará sesión y se creará un Usuario SSO en segundo plano. El usuario tendrá createdFromSimpleSSO establecido en true si se recupera desde la API.

Notas:

  • El correo electrónico es el identificador único para Simple SSO.
  • Proporcionar un correo electrónico con Simple SSO no es obligatorio; sin embargo, por defecto sus comentarios se mostrarán como "Sin verificar". Si no se proporciona un correo electrónico, el usuario no puede ser completamente autenticado.
  • NEW Desde enero de 2022: los nombres de usuario no tienen que ser únicos en todo fastcomments.com
  • Simple SSO puede crear y actualizar automáticamente usuarios SSO si se proporciona un correo electrónico y el usuario no fue creado originalmente mediante Secure SSO.
  • Puede especificar insignias para el usuario con la propiedad badgeConfig. La matriz badgeIds contiene los IDs de las insignias que se asociarán con el usuario. Si override se establece en true, reemplazará todas las insignias existentes mostradas en los comentarios; si false, las añadirá a las existentes.

Integraciones personalizadas - Migración desde Disqus SSO Internal Link

La mayor diferencia entre Disqus y FastComments Secure SSO es que Disqus usa SHA1 para el cifrado mientras que nosotros usamos SHA256.

Esto significa que migrar desde Disqus es fácil - cambie el algoritmo de hash usado de SHA1 a SHA256 y actualice los nombres de las propiedades pasadas a la UI.

Integraciones personalizadas - Migración desde Commento SSO Internal Link

Commento emplea un enfoque de SSO drásticamente diferente - requieren que tengas un endpoint que ellos invocan para autenticar al usuario.

FastComments funciona al revés - simplemente codifica y aplica un hash a la información del usuario usando tu clave secreta y pásala.

Callbacks Internal Link


Todas las bibliotecas para el widget de comentarios (actualmente Angular, React, Vue) soportan callbacks.

Los callbacks se especifican en el objeto de configuración, con la misma firma para cada biblioteca.

Los callbacks soportados son:

  • onInit
  • onAuthenticationChange
  • onRender
  • commentCountUpdated
  • onReplySuccess
  • onVoteSuccess
  • onImageClicked
  • onOpenProfile
  • onCommentSubmitStart
  • onCommentsRendered

Las firmas exactas se pueden encontrar en las TypeScript definitions.

Aquí hay un ejemplo con todos los callbacks usados:

Ejemplos de callbacks
Copy CopyRun External Link
1
2<script src="https://cdn.fastcomments.com/js/embed-v2.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5 window.FastCommentsUI(document.getElementById('fastcomments-widget'), {
6 tenantId: 'demo',
7 onInit: function () {
8 console.log('Library started to fetch comments!');
9 },
10 onAuthenticationChange: function (eventName, userObj) {
11 console.log('User authenticated!', eventName, userObj);
12 },
13 onRender: function () {
14 console.log('Render event happened!');
15 },
16 commentCountUpdated: function (newCount) {
17 console.log('New comment count:', newCount);
18 },
19 onReplySuccess: function (comment) {
20 console.log('New comment saved!', comment);
21 },
22 onVoteSuccess: function (comment, voteId, direction, status) {
23 console.log('New vote saved!', comment, voteId, direction, status);
24 },
25 onImageClicked: function (src) {
26 console.log('Image clicked!', src);
27 },
28 onOpenProfile: function (userId) {
29 console.log('User tried to open profile', userId);
30 // return true; // devolver true para evitar el comportamiento predeterminado (abrir el perfil de usuario en fastcomments.com).
31 },
32 onCommentSubmitStart: function(comment, continueSubmitFn, cancelFn) {
33 console.log('Trying to submit comment', comment);
34 setTimeout(function() { // emulando comportamiento asíncrono (llamando a la API, etc).
35 if(confirm('Should submit?')) {
36 continueSubmitFn();
37 } else {
38 cancelFn('Some optional error message');
39 }
40 }, 1000);
41 },
42 onCommentsRendered: function(comments) {
43 // comments está ordenado por la ordenación predeterminada en la página que puede ser Más relevantes (p. ej.: más votados, etc.) o Más recientes
44 const topCommentInList = comments[0];
45 console.log('First Comment Rendered:', topCommentInList.avatarSrc, topCommentInList.commenterName, topCommentInList.commentHTML);
46 }
47 });
48</script>
49

Títulos de página Internal Link

El título de la página actual está asociado con el urlId especificado y se guarda para su uso en las herramientas de moderación.

Por defecto, esto se obtiene de document.title.

Si lo desea, puede especificar su propio título de página de la siguiente manera:

Specifying The Page Title
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "pageTitle": "Article 42"
8}];
9</script>
10

El recuento de comentarios y el conteo de todas las respuestas anidadas Internal Link


El recuento de comentarios que se muestra en la parte superior del widget de comentarios puede mostrar ya sea todos los comentarios "nivel superior", es decir, aquellas respuestas que son respuestas directamente a la página o al artículo en sí, o puede ser un recuento de todos los comentarios anidados.

Por defecto, esto es true - es un recuento de lo último - todos los comentarios. En versiones anteriores del widget de comentarios el valor predeterminado es false.

Podemos cambiar el comportamiento, de modo que sea un recuento de todos los comentarios anidados estableciendo la bandera countAll en true.

Counting All Comments
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "countAll": true
8}];
9</script>
10

Si quisiéramos que el recuento reflejara sólo los comentarios de nivel superior, establecemos la bandera en false.

Counting Top Level Comments
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "countAll": false
8}];
9</script>
10

Esto actualmente no puede personalizarse sin cambios en el código.


Mencionar IDs de grupo Internal Link

Una lista de ids para usar en el autocompletado de @mentions. Útil cuando quieras evitar etiquetar usuarios que no comparten grupos.

Cuando se especifica, solo se incluirán en el autocompletado los usuarios de otros grupos después de escribir el carácter @.

Limit Groups for Mentions
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "mentionGroupIds": [
8 "yxZAhjzda",
9 "QT19nXbqB"
10 ]
11}];
12</script>
13