FastComments.com

Personalizações e Configuração

Contexto

Aqui você encontrará documentação detalhada sobre cada um dos recursos e configurações que o widget de comentários suporta.

Esta documentação cobrirá os conceitos principais e se aprofundará em cada área de funcionalidade, com instruções práticas e armadilhas comuns.

Exemplos de código serão fornecidos, com as linhas relevantes destacadas. Capturas de tela das páginas de configuração serão fornecidas quando aplicável.

Os exemplos de código utilizarão nossa biblioteca vanilla JavaScript; no entanto, as opções de configuração usam exatamente os mesmos nomes para todas as versões do widget de comentários (React, Vue, etc.).

A maioria das configurações e recursos descritos neste guia não exige escrever código.


Exibindo os mesmos comentários em páginas diferentes Internal Link

Como o parâmetro urlId nos permite definir a qual página, ou id, os comentários estão vinculados, podemos simplesmente definir urlId para o mesmo valor nessas 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

Fontes personalizadas Internal Link

O FastComments foi projetado para ser personalizado, e a fonte que nossos widgets usam não é exceção.

Por padrão, o FastComments usa o system font stack para ter a melhor aparência possível em uma ampla variedade de dispositivos.

Para definir suas próprias fontes, consulte a documentação de CSS personalizado.

Lá você encontrará uma forma de definir CSS personalizado, o que permitirá especificar as fontes desejadas.

Como Definir a Fonte

Para sobrescrever a fonte, recomendamos definir seu CSS usando os seletores .fast-comments, textarea. Por exemplo:

Exemplo de Fonte 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

Suporte a fundos escuros (modo escuro) Internal Link

Por padrão, o widget de comentários FastComments detectará automaticamente o modo escuro na maioria dos sites.

Quando o modo escuro é detectado, o FastComments mudará do texto preto em fundos brancos para texto branco em um fundo preto. Imagens também serão alteradas.

Ao carregar a página, o widget tentará determinar quão escuro é o plano de fundo da página por trás do widget de comentários. Isso significa que a página pode ter um fundo branco, mas se você colocar o widget de comentários dentro de um contêiner com um fundo preto, o modo escuro ainda deverá ser ativado automaticamente para tornar os comentários legíveis.

No entanto, o mecanismo de detecção, que depende de determinar a "luminância", pode não ativar o modo escuro quando você desejar. Para forçá-lo a ativar, defina a flag hasDarkBackground como true da seguinte forma:

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

Vinculando comentários a páginas Internal Link


Ao enviar e-mails de notificação, ou ao renderizar comentários em interfaces de usuário como a página de moderação, é útil poder vincular do comentário para a página em que ele se encontra.

Se o ID da URL nem sempre for um ID, então precisamos armazenar a URL em outro lugar. É para isso que serve a propriedade "url", definida da seguinte forma.

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

Um caso de uso comum é vincular a thread de comentários a um identificador, como um artigo, e então fornecer um link de volta para uma página específica, por exemplo:

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

A URL não é limpa dos parâmetros de marketing comuns. Por padrão, qualquer que seja a URL da página atual, é essa URL que é armazenada com o comentário.


Determinando qual página renderizar Internal Link

Ao buscar e renderizar comentários, o widget de comentários precisa saber em qual página começar. Por padrão, ele começa com a primeira página, renderizando apenas essa página.

Se desejado, a página exata a ser renderizada pode ser passada para o widget de comentários como a configuração 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

Observe que os números das páginas começam em zero, então o exemplo acima renderiza a segunda página.

Alternando tópicos de comentário sem recarregar a página Internal Link

Cobrimos como urlId é o id da página ou do artigo ao qual os comentários estão vinculados.

Além disso, para recapitular, se não definido o urlId será padrão para a URL da página atual.

O que acontece com SPAs, ou Single-Page-Applications, onde a página ou o conteúdo ao qual os comentários estão vinculados muda dinamicamente sem um recarregamento completo da página?

Angular, React, Vue, etc

Com nossas bibliotecas, como Angular e React, simplesmente atualizar a propriedade urlId passada para o widget fará com que o widget de comentários seja atualizado. Você pode ver isso em ação para o app React, por exemplo, aqui.

VanillaJS

Se você estiver usando a biblioteca VanillaJS é um pouco mais complicado, já que não existe um framework como Angular ou React para lidar com data binding ou propagação de estado.

Quando você instancia o widget VanillaJS, ele retorna algumas funções que podem ser chamadas para atualizá-lo.

Aqui está um exemplo funcional onde mudamos o hash da página e atualizamos o widget de comentários:

Exemplo de troca do hash da 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; // Também atualizamos a url, para que as notificações possam vincular de volta à página correta
29 config.urlId = locationString;
30
31 instance.update(config);
32 }
33 nextPage();
34 button.addEventListener('click', nextPage);
35 })();
36</script>
37

Desativar redirecionamento de imagem Internal Link

Por padrão, o FastComments permite que usuários façam upload de imagens. Quando um usuário clica nessa imagem, o FastComments, por padrão, abrirá uma nova aba para mostrar a imagem em tamanho completo. Definir essa flag como true desativa esse comportamento:

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

Se você não pretende capturar o clique na imagem por conta própria (veja onImageClicked), recomendamos que isso seja combinado com algum styling para remover a aparência de que a imagem pode ser clicada.


Destacar novos comentários Internal Link


FastComments fornece várias maneiras de destacar novos comentários.

First and foremost, by default comments that triggered an in-app notification (respostas, respostas no mesmo tópico, ou comentários em uma página que você está inscrito), will automatically be highlighted with the user's avatar glowing slightly. The color can be customized via CSS using the is-unread class.

Comentários publicados nas últimas 24 horas têm a classe 24hr aplicada que pode ser usada para estilização.

Finalmente, quaisquer novos comentários ao vivo que apareçam na sessão do usuário serão destacados por vários segundos através de uma animação. Isso é feito via a is-live CSS class e também pode ser personalizada.


Modelos de e-mail Internal Link

E-mails enviados pelo FastComments aos seus clientes podem ser personalizados. O modelo, a lógica, e as traduções podem ser alterados. O texto pode ser personalizado por localidade, e o estilo pode até ser alterado por domínio. Saiba mais sobre modelos de e-mail personalizados aqui.

Novos comentários ao vivo no final Internal Link

Por padrão, novos comentários ao vivo aparecem no topo da lista de comentários à medida que são publicados em tempo real.

Quando essa opção está habilitada, novos comentários ao vivo serão adicionados ao final da lista. Isso afeta como os comentários aparecem quando são publicados ao vivo enquanto os usuários estão visualizando o tópico de comentários.

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

Com essa configuração habilitada:

  • Novos comentários ao vivo postados por outros usuários aparecerão no final da lista de comentários
  • Os usuários verão novos comentários aparecerem abaixo dos comentários existentes em tempo real
  • Isso afeta apenas as atualizações de comentários ao vivo - não o carregamento inicial da página
  • Isso pode ajudar a manter o fluxo de leitura quando os usuários estão acompanhando uma discussão

Observe que esta configuração afeta apenas onde novos comentários ao vivo são colocados conforme chegam em tempo real. Ela não afeta a ordem de classificação inicial quando a página é carregada.

Ativar rolagem infinita Internal Link

Por padrão, o widget do FastComments redimensiona-se verticalmente para ajustar todos os comentários visíveis. A paginação é feita através de um botão "Ver próximos" ao final da página atual, pois descobrimos que essa é a interação que mais agrada a maioria dos usuários.

No entanto, existem alguns casos em que a rolagem infinita é preferida. Por exemplo, usamos esse recurso em nosso produto Stream Chat.

Podemos ocultar os botões "Ver próximos" e alternar para rolagem infinita definindo a flag enableInfiniteScrolling como 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

Isso também requer a adição de CSS personalizado. Adicione CSS personalizado para o seletor .comments para habilitar a rolagem, por exemplo:

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

Um exemplo completo e funcional seria:

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

No exemplo acima usamos a propriedade customCSS, no entanto, é sugerido usar a UI de Configuração do Widget em vez disso por razões de desempenho. Veja a documentação de CSS personalizado.

Exibir todos os comentários de uma vez - desativar paginação Internal Link

Para desativar a paginação e renderizar todos os comentários de uma vez, defina startingPage como -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

Impedir novos comentários de nível superior Internal Link

Definir noNewRootComments como true fará com que o widget oculte a área de resposta raiz, mas ainda permitir que os usuários respondam a comentários filhos. Você poderia, por exemplo, definir isso condicionalmente ao carregar a página para permitir que apenas alguns usuários deixem comentários de nível 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

Profundidade máxima de respostas Internal Link

Por padrão, o FastComments permite aninhamento ilimitado de respostas, criando uma estrutura de thread onde os usuários podem responder a respostas indefinidamente.

A opção maxReplyDepth permite limitar o quão profundas as threads de respostas podem ser. Quando a profundidade máxima é atingida, os usuários não verão mais o botão de resposta nos comentários nesse nível.

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

Com maxReplyDepth definido como 2:

  • Usuários podem comentar no nível superior (depth 0)
  • Usuários podem responder a comentários de nível superior (depth 1)
  • Usuários podem responder a essas respostas (depth 2)
  • Não são permitidas mais respostas além da profundidade 2

Definir como 1 permitiria apenas respostas a comentários de nível superior, criando uma estrutura de discussão mais rasa.

Definir maxReplyDepth como 0 desabilitaria todas as respostas, permitindo apenas comentários de nível superior. Se não especificado, as respostas podem ser aninhadas sem limite.

Visão geral do Single Sign-On (SSO) Internal Link

SSO, ou autenticação única (single-sign-on), é um conjunto de convenções utilizado para permitir que você ou seus usuários usem o FastComments sem precisar criar outra conta.

Assumindo que você não permita comentários anônimos, uma conta é necessária para comentar no FastComments. Tornamos esse processo de cadastro muito fácil — o usuário apenas deixa seu e-mail ao comentar. Entendemos, porém, que mesmo isso é uma fricção adicional que alguns sites querem evitar.

Podemos reduzir essa fricção ao ter apenas um fluxo de login para todo o seu site.

How do I get it?

Todos os tipos de conta atualmente têm acesso ao SSO. Entretanto, o número máximo de usuários SSO varia de acordo com seu pacote. Como em outros recursos, os planos Pro e superiores oferecem suporte de desenvolvimento direto.

Vamos comparar as opções e, em seguida, detalhar cada uma.

User and Comment Migrations

Ao migrar de uma plataforma com SSO como o Disqus, você já terá os usuários e seus comentários.

Os comentários são importados como parte da sua migração, seja pela API, pela nossa Import UI, ou pelo suporte ao cliente. A Import UI é preferida se suportar a plataforma da qual você está migrando, pois ela incorpora tratamento de erros, extração e upload de avatares e mídias, e um sistema de monitoramento de jobs em lote.

Os próprios usuários são adicionados automaticamente ao visualizarem os tópicos de comentários pela primeira vez. Alternativamente, eles podem ser pré-adicionados via API, mas esse trabalho não traz muitas vantagens.

Se os comentários forem importados e os usuários SSO não forem adicionados manualmente via API, então os comentários serão automaticamente migrados para a conta do usuário na primeira vez que ela for criada quando visualizarem qualquer tópico de comentário. Eles então poderão gerenciar, editar e excluir os comentários que originalmente escreveram.

A migração automática é feita por e-mail ou nome de usuário. Algumas plataformas não fornecem e-mails na exportação, como o Disqus, então nesse caso usamos o nome de usuário.

  • Desde que você passe um nome de usuário correspondente e um e-mail no payload do SSO, adicionaremos o e-mail aos objetos de comentário individuais para que notificações e menções funcionem.

Se desejar importar seus comentários e usuários de uma vez, trabalhe com o suporte para migrar os comentários para as respectivas contas dos usuários após os usuários serem importados via a API.

So to summarize the easiest path to take for the migration is:

  1. Import comments.
    1. Avatares e outras mídias são migrados automaticamente se usar a Import UI em Manage Data -> Imports.
  2. Setup Secure or Simple SSO.
  3. Deixe a migração ocorrer por usuário automaticamente quando eles fizerem login pela primeira vez.
    1. Isso geralmente adiciona menos de um segundo ao tempo de carregamento da página se o usuário tiver menos de 50k comentários.

WordPress Users

Se você estiver usando nosso plugin do WordPress, não há código para escrever! Simplesmente vá para a página de administração do plugin, clique em Configurações de SSO e então Ativar.

Isso o levará a um assistente de um único botão que criará sua chave de API, a enviará para sua instalação do WordPress e ativará o SSO. Consolidamos isso em um único clique para você.

Observe que se você estiver instalando o plugin pela primeira vez, terá que seguir o processo de configuração antes de ver a página de administração com o botão Configurações de SSO.

WordPress SSO - Moderators

Observe que atualmente, para que a insígnia "Moderator" apareça ao lado dos seus moderadores quando eles comentarem com o plugin FastComments para WordPress, eles também devem ser adicionados como Moderadores no painel do FastComments e ter o e-mail verificado.

Custom Integrations

Para integrações personalizadas, há duas opções.

Option One - Secure SSO

Com o Secure SSO, o FastComments sabe que o usuário que comenta, vota e lê comentários é um usuário real do seu site.

Contanto que você crie um payload válido, o usuário sempre terá uma experiência de comentários sem interrupções.

Com o Secure SSO, o payload do SSO é criado no lado do servidor usando autenticação HMAC e então passado para o widget no cliente.

Com o Secure SSO, a conta do usuário é completamente separada do restante da base de usuários do FastComments. Isso significa que, se tivermos dois parceiros Empresa A e Empresa B, cada um pode ter um usuário SSO com o nome de usuário "Bob".

Requirements

  • Algum conhecimento básico de desenvolvimento backend.
  • Algum conhecimento básico sobre como lidar com chaves de API secretas.
  • Algum conhecimento básico sobre desenvolvimento de APIs ou renderização no lado do servidor.

Pros

  • Seguro.
  • Experiência de comentários sem interrupções.

Cons

  • Requer desenvolvimento backend.

Updating User Data

Com o Secure SSO, cada vez que você enviar o payload de usuário SSO, atualizaremos o usuário com as informações mais recentes. Por exemplo, se o usuário tem o nome de usuário X, e você enviar Y no payload do SSO, o nome de usuário dele se tornará Y.

Se você quiser remover valores usando essa abordagem, defina-os como null (não undefined).

Secure SSO API

Também fornecemos uma API para interagir com os usuários SSO. Veja a documentação.

Observe que, ao usar o Secure SSO, os usuários são criados automaticamente nos bastidores ao carregar a página. Você não precisa importar seus usuários em massa.

Option Two - Simple SSO

A alternativa ao Secure SSO é simplesmente passar as informações do usuário para o widget de comentários.

Fornecer um e-mail com o Simple SSO não é obrigatório; no entanto, sem isso os comentários aparecerão como "Não verificado".

Observação! A partir do início de 2022, nomes de usuário com Simple SSO não precisam ser únicos em todo o FastComments.com.

Idealmente, o Simple SSO deve ser escolhido apenas quando se desenvolve em uma plataforma que não fornece acesso ao backend.

Requirements

  • Algum conhecimento básico de desenvolvimento do lado do cliente.
  • É necessário conhecer pelo menos o e-mail do usuário.

Pros

  • Simples.
  • Toda a atividade ainda é verificada.
  • O usuário nunca precisa inserir seu nome de usuário ou e-mail.

Cons

  • Menos seguro que o Secure SSO, já que o payload do lado do cliente poderia ser forjado para se tornar qualquer usuário.

Simple SSO API

Usuários criados automaticamente via o fluxo Simple SSO são armazenados como objetos SSOUser. Eles podem ser acessados e gerenciados via a API SSOUser. Veja a documentação.


Integrações personalizadas - Single Sign-On simples (SSO) Internal Link

Com o Simple SSO, podemos fornecer ao widget de comentários informações sobre o usuário para que ele não precise inserir seu nome de usuário ou e-mail para comentar.

Podemos configurar o Simple SSO da seguinte forma:

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

O usuário será autenticado, e um Usuário SSO será criado nos bastidores. O usuário terá createdFromSimpleSSO definido como true se buscado pela API.

Notes:

  • O e-mail é o identificador único para o Simple SSO.
  • Fornecer um e-mail com o Simple SSO não é obrigatório, entretanto por padrão os comentários deles aparecerão como "Não verificado". Se nenhum e-mail for fornecido, o usuário não poderá ser totalmente autenticado.
  • NEW Desde Jan 2022: Nomes de usuário não precisam ser exclusivos em todo o fastcomments.com
  • O Simple SSO pode criar e atualizar usuários SSO automaticamente, se um e-mail for fornecido, e o usuário não tiver sido originalmente criado a partir do Secure SSO.
  • Você pode especificar badges para o usuário com a propriedade badgeConfig. O array badgeIds contém os IDs dos badges a serem associados ao usuário. Se override estiver definido como true, ele substituirá todos os badges existentes exibidos nos comentários; se false, ele adicionará aos badges existentes.

Integrações personalizadas - Migração do SSO do Disqus Internal Link

A maior diferença entre Disqus e o FastComments Secure SSO é que o Disqus usa SHA1 para criptografia enquanto nós usamos SHA256. Isso significa que migrar do Disqus é fácil - altere o algoritmo de hashing usado de SHA1 para SHA256 e atualize os nomes das propriedades passadas para a UI.

Integrações personalizadas - Migração do SSO do Commento Internal Link

Commento usa uma abordagem de SSO drasticamente diferente - eles exigem que você tenha um endpoint que eles invoquem para autenticar o usuário. FastComments é o contrário - simplesmente codifique e aplique hash nas informações do usuário usando sua chave secreta e as envie.

Callbacks Internal Link

Todas as bibliotecas para o widget de comentários (atualmente Angular, React, Vue) suportam callbacks.

Os callbacks são especificados no objeto de configuração, com a mesma assinatura para cada biblioteca.

Os callbacks suportados são:

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

As assinaturas exatas podem ser encontradas nas definições TypeScript.

Aqui está um exemplo com todos os callbacks usados:

Exemplos 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; // retorne true para prevenir o comportamento padrão (abrir o perfil do usuário em fastcomments.com).
31 },
32 onCommentSubmitStart: function(comment, continueSubmitFn, cancelFn) {
33 console.log('Trying to submit comment', comment);
34 setTimeout(function() { // simulando comportamento assíncrono (chamando 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 // os comentários estão ordenados pelo critério padrão da página, que pode ser Mais Relevantes (ex: mais votados, etc.), ou Mais Recentes
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


O título da página atual é associado ao urlId especificado e salvo para uso nas ferramentas de moderação.

Por padrão, ele é obtido de document.title.

Se desejar, você pode especificar seu próprio título de página da seguinte forma:

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

A contagem de comentários e a contagem de todas as respostas aninhadas Internal Link

A contagem de comentários exibida no topo do widget de comentários pode mostrar ou todos os comentários "top-level", ou seja, aquelas respostas que são respostas diretamente para a página ou artigo em si, ou pode ser uma contagem de todos os comentários aninhados.

Por padrão, isso é true - é uma contagem do último caso - todos os comentários. Em versões antigas do widget de comentários o valor padrão é false.

Podemos alterar o comportamento, de modo que seja uma contagem de todos os comentários aninhados definindo a flag countAll para 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

Se quiséssemos que a contagem refletisse apenas os comentários de nível superior, definimos a flag para 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

Atualmente, isso não pode ser personalizado sem alterações no código.


Mencionar IDs de grupo Internal Link

Uma lista de ids para usar no autocompletar de @mentions. Útil quando você quer evitar marcar usuários que não possuem grupos em comum.

Quando especificado, apenas usuários de outros grupos serão exibidos no autocompletar após digitar o caractere @.

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