FastComments.com

Personalizzazioni e Configurazione

Contesto

Qui troverai una documentazione approfondita su ciascuna delle funzionalità e impostazioni supportate dal widget dei commenti.

Questa documentazione coprirà i concetti fondamentali e approfondirà ciascuna area di funzionalità, con guide pratiche e problemi comuni.

Saranno forniti esempi di codice, con le righe rilevanti evidenziate. Verranno fornite schermate delle pagine di configurazione dove applicabile.

Gli esempi di codice useranno la nostra libreria vanilla JavaScript; tuttavia le opzioni di configurazione utilizzano esattamente gli stessi nomi per tutte le versioni del widget dei commenti (React, Vue, ecc.).

La maggior parte delle configurazioni e delle funzionalità descritte in questa guida non richiedono la scrittura di codice.

Visualizzare gli stessi commenti su pagine diverse Internal Link


Poiché il parametro urlId ci permette di definire a quale pagina, o id, sono collegati i commenti, possiamo semplicemente impostare urlId allo stesso valore su quelle pagine.

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

Caratteri personalizzati Internal Link

FastComments è progettato per essere personalizzato, e il font utilizzato dai nostri widget non fa eccezione.

Per impostazione predefinita, FastComments utilizza la system font stack per apparire al meglio su un'ampia gamma di dispositivi.

Per definire i tuoi font, vedi la documentazione sul CSS personalizzato.

Lì troverai un modo per definire CSS personalizzato, che ti permetterà di impostare i font desiderati.

Come definire il font

Per sovrascrivere il font, ti consigliamo di definire il tuo CSS usando i selettori .fast-comments, textarea. Per esempio:

Esempio di font esterno personalizzato
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

Supporto per sfondi scuri (Modalità scura) Internal Link

Per impostazione predefinita, il widget dei commenti FastComments rileva automaticamente la modalità scura nella maggior parte dei siti.

Quando viene rilevata la modalità scura, FastComments passerà da testo nero su sfondo bianco a testo bianco su sfondo nero. Anche le immagini cambieranno.

Al caricamento della pagina, il widget cercherà di determinare quanto scuro sia lo sfondo della pagina dietro il widget dei commenti. Ciò significa che la pagina potrebbe avere uno sfondo bianco, ma se posizioni il widget dei commenti all'interno di un contenitore con sfondo nero, la modalità scura dovrebbe comunque attivarsi automaticamente per rendere i commenti leggibili.

Tuttavia, il meccanismo di rilevamento, che si basa sulla determinazione della "luminosità", potrebbe non attivare la modalità scura quando desideri. Per forzarla, imposta il flag hasDarkBackground su true come segue:

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

Collegamento dai commenti alle pagine Internal Link

Quando si inviano email di notifica, o si visualizzano i commenti in interfacce utente come la pagina di moderazione, è utile poter collegare dal commento alla pagina su cui si trova.

Se l'ID dell'URL non è sempre un vero e proprio ID, allora dobbiamo memorizzare l'URL altrove. È per questo che esiste la proprietà "url", definita come segue.

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 d'uso comune è collegare il thread dei commenti a un identificatore, come un articolo, e poi rimandare a una pagina specifica, per esempio:

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

L'URL non viene ripulito dai comuni parametri di marketing. Per impostazione predefinita, qualunque sia l'URL della pagina corrente, è l'URL che viene memorizzato con il commento.

Determinare quale pagina visualizzare Internal Link


Quando si recuperano e si visualizzano i commenti, il widget dei commenti deve sapere da quale pagina iniziare. Per impostazione predefinita, inizia con la prima pagina, visualizzando solo quella pagina.

Se lo si desidera, la pagina esatta da visualizzare può essere passata al widget dei commenti come impostazione 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

Nota che i numeri delle pagine partono da zero, quindi l'esempio sopra visualizza la seconda pagina.


Passare tra i thread di commento senza ricaricare la pagina Internal Link

Abbiamo spiegato come urlId sia l'id della pagina o dell'articolo a cui sono associati i commenti.

Inoltre, per ricapitolare, se non è definito il urlId verrà impostato di default sull'URL della pagina corrente.

Che succede con le SPA, o applicazioni a pagina singola, dove la pagina o il contenuto a cui sono associati i commenti cambia dinamicamente senza un ricaricamento della pagina?

Angular, React, Vue, ecc.

Con le nostre librerie come Angular e React, aggiornare semplicemente la proprietà urlId passata al widget farà sì che il widget dei commenti si aggiorni. Puoi vedere questo in azione per l'app React, per esempio, qui.

VanillaJS

Se stai usando la libreria VanillaJS è un po' più complicato poiché non c'è un framework come Angular o React che gestisca il data binding o la propagazione dello stato.

Quando istanzi il widget VanillaJS, questo restituisce alcune funzioni che possono essere chiamate per aggiornarlo.

Ecco un esempio funzionale in cui cambiamo l'hash della pagina e aggiorniamo il widget dei commenti:

Esempio di cambio dell'hash della pagina
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; // Aggiorniamo anche url, così le notifiche possono collegarsi alla pagina corretta
29 config.urlId = locationString;
30
31 instance.update(config);
32 }
33 nextPage();
34 button.addEventListener('click', nextPage);
35 })();
36</script>
37

Disabilitare il reindirizzamento delle immagini Internal Link

Per impostazione predefinita, FastComments consente agli utenti di caricare immagini. Quando un utente clicca quell'immagine, FastComments, per impostazione predefinita, apre una nuova scheda per mostrarla a grandezza intera. Impostando questo flag su true si disabilita questo 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 non prevedi di intercettare tu stesso il clic sull'immagine (vedi onImageClicked), consigliamo di combinare questa impostazione con qualche regola di stile per rimuovere l'aspetto che l'immagine sia cliccabile.


Evidenziare i nuovi commenti Internal Link

FastComments offre diversi modi per evidenziare i nuovi commenti.

In primo luogo, per impostazione predefinita i commenti che hanno attivato una notifica in-app (risposte, risposte nello stesso thread, o commenti su una pagina a cui sei iscritto), verranno evidenziati automaticamente con l'avatar dell'utente che brilla leggermente. Il colore può essere personalizzato tramite CSS usando la classe is-unread.

I commenti pubblicati nelle ultime 24 ore hanno applicata la classe 24hr, che può essere utilizzata per applicare uno stile.

Infine, tutti i nuovi commenti live che compaiono nella sessione dell'utente verranno evidenziati per alcuni secondi tramite un'animazione. Questo è fatto tramite la classe CSS is-live e può essere personalizzata a sua volta.

Modelli di email Internal Link


Le email inviate da FastComments ai tuoi clienti possono essere personalizzate. Il modello, la logica, e le traduzioni possono essere modificate. Il testo può essere personalizzato per locale, e lo stile può persino essere modificato per dominio. Scopri di più sui modelli di email personalizzati qui.


Posizionare i nuovi commenti in tempo reale in fondo Internal Link

Per impostazione predefinita, i nuovi commenti in tempo reale appaiono in cima all'elenco dei commenti man mano che vengono pubblicati.

Quando questa opzione è abilitata, i nuovi commenti in tempo reale verranno aggiunti invece in fondo all'elenco. Questo influisce su come i commenti appaiono quando vengono pubblicati in diretta mentre gli utenti visualizzano la discussione.

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 questa impostazione abilitata:

  • I nuovi commenti in tempo reale pubblicati da altri utenti appariranno in fondo all'elenco dei commenti
  • Gli utenti vedranno i nuovi commenti apparire sotto i commenti esistenti in tempo reale
  • Questo influisce solo sugli aggiornamenti dei commenti in tempo reale - non sul caricamento iniziale della pagina
  • Questo può aiutare a mantenere il flusso di lettura quando gli utenti seguono una discussione

Nota che questa impostazione influisce solo su dove vengono posizionati i nuovi commenti in tempo reale mentre arrivano. Non influenza l'ordinamento iniziale quando la pagina viene caricata.

Abilitare lo scorrimento infinito Internal Link

Per impostazione predefinita, il widget FastComments si ridimensiona verticalmente per adattarsi a tutti i commenti visibili. La paginazione avviene tramite un pulsante "Mostra altri" alla fine della pagina corrente, poiché abbiamo riscontrato che questa interazione risulta la più naturale per la maggior parte degli utenti.

Tuttavia, ci sono alcuni casi in cui è preferibile lo scorrimento infinito. Ad esempio, utilizziamo questa funzionalità nel nostro prodotto Stream Chat.

Possiamo nascondere i pulsanti "Mostra altri" e passare allo scorrimento infinito impostando il flag enableInfiniteScrolling su 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

Ciò richiede anche l'aggiunta di CSS personalizzato. Aggiungi CSS personalizzato per il selettore .comments per abilitare lo scorrimento, ad esempio:

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

Un esempio completo e funzionante sarebbe:

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

Nell'esempio sopra utilizziamo la proprietà customCSS, tuttavia si consiglia di utilizzare invece l'interfaccia di configurazione del Widget per motivi di prestazioni. Consulta la documentazione sul Custom CSS.

Visualizzare tutti i commenti contemporaneamente - disabilitare la paginazione Internal Link


Per disabilitare la paginazione e visualizzare tutti i commenti contemporaneamente, impostare startingPage su -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

Impedire nuovi commenti di primo livello Internal Link

Impostare noNewRootComments su true farà sì che il widget nasconda l'area di risposta principale, ma consentirà comunque agli utenti di rispondere ai commenti figli. Ad esempio, potresti impostarlo in modo condizionale al caricamento della pagina per consentire solo ad alcuni utenti di lasciare commenti di primo livello.

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

Profondità massima delle risposte Internal Link

Per impostazione predefinita, FastComments consente un annidamento illimitato delle risposte, creando una struttura a thread in cui gli utenti possono rispondere indefinitamente alle risposte.

L'opzione maxReplyDepth ti consente di limitare la profondità massima dei thread di risposte. Quando viene raggiunta la profondità massima, gli utenti non vedranno più il pulsante di risposta sui commenti a quel livello.

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 impostato su 2:

  • Gli utenti possono commentare al livello principale (profondità 0)
  • Gli utenti possono rispondere ai commenti di livello principale (profondità 1)
  • Gli utenti possono rispondere a quelle risposte (profondità 2)
  • Non sono consentite ulteriori risposte oltre la profondità 2

Impostarlo su 1 consentirebbe solo risposte ai commenti di livello principale, creando una struttura di discussione più piatta.

Impostare maxReplyDepth a 0 disabiliterebbe tutte le risposte, permettendo solo commenti di livello principale. Se non specificato, le risposte possono essere annidate senza limiti.

Panoramica sul Single Sign On (SSO) Internal Link

SSO, o single-sign-on, è un insieme di convenzioni usate per permettere a te o ai tuoi utenti di usare FastComments senza dover creare un altro account.

Assumendo che non permetti commenti anonimi, è necessario un account per commentare con FastComments. Rendiamo questo processo di registrazione molto semplice: l'utente lascia semplicemente la sua email quando commenta. Tuttavia, capiamo che anche questo è un'ulteriore frizione che alcuni siti vogliono evitare.

Possiamo ridurre questa frizione avendo un unico flusso di accesso per l'intero sito.

Come lo ottengo?

Tutti i tipi di account attualmente hanno accesso a SSO. Tuttavia, il numero massimo di utenti SSO varierà a seconda del tuo pacchetto. Come per le altre funzionalità, i piani Pro e superiori forniscono supporto diretto allo sviluppo.

Confrontiamo le opzioni, e poi entriamo nei dettagli di ciascuna.

Migrazione di utenti e commenti

Quando si esegue la migrazione da una piattaforma con SSO come Disqus, avrai già utenti e i loro commenti.

I commenti vengono importati come parte della tua migrazione, tramite l'API, la nostra Import UI, o il supporto clienti. L'Import UI è preferita se supporta la piattaforma da cui stai migrando, poiché incorpora gestione degli errori, estrazione e upload di avatar e media, e un sistema di monitoraggio dei job in batch.

Gli utenti stessi vengono aggiunti automaticamente quando visualizzano per la prima volta le discussioni dei commenti. In alternativa, possono essere aggiunti in anticipo tramite l'API, ma questo lavoro non offre molti vantaggi.

Se i commenti vengono importati e gli utenti SSO non vengono aggiunti manualmente tramite l'API, allora i commenti verranno automaticamente assegnati all'account dell'utente la prima volta che questo viene creato quando visualizza una qualsiasi discussione di commenti. Potranno quindi gestire, modificare ed eliminare i commenti che avevano scritto originariamente.

La migrazione automatica viene eseguita tramite email o username. Alcune piattaforme non forniscono le email nell'export, come Disqus, quindi in questo caso facciamo fallback sull'username.

  • Finché passi un username corrispondente e una email nel payload SSO, aggiungeremo l'email ai singoli oggetti commento in modo che le notifiche e le menzioni funzionino.

Se desideri importare commenti e utenti contemporaneamente, lavora con il supporto per migrare i commenti agli account rispettivi degli utenti dopo che questi sono stati importati tramite l'API.

Quindi, per riassumere, il percorso più semplice da seguire per la migrazione è:

  1. Importa i commenti.
    1. Avatar e altri media vengono migrati automaticamente se si utilizza l'Import UI in Manage Data -> Imports.
  2. Configura Secure o Simple SSO.
  3. Lascia che la migrazione avvenga per utente automaticamente quando eseguono il login per la prima volta.
    1. Questo di solito aggiunge meno di un secondo al tempo di caricamento della pagina se l'utente ha meno di 50k commenti.

Utenti WordPress

Se stai usando il nostro plugin per WordPress allora non c'è codice da scrivere! Vai semplicemente alla pagina Admin del plugin, clicca su Impostazioni SSO, e poi su Abilita.

Questo ti porterà a un wizard a singolo click che creerà la tua API key, la invierà alla tua installazione WordPress e attiverà SSO. Abbiamo consolidato tutto questo in un singolo click per te.

Nota che se stai installando il plugin per la prima volta dovrai completare il processo di setup prima di vedere la pagina di amministrazione con il pulsante Impostazioni SSO.

SSO per WordPress - Moderatori

Nota che attualmente, affinché il badge "Moderatore" appaia accanto ai tuoi moderatori quando commentano con il plugin per WordPress di FastComments, devono anche essere aggiunti come Moderatore nella dashboard di FastComments e avere la loro email verificata.

Integrazioni personalizzate

Per integrazioni personalizzate, ci sono due opzioni.

Opzione Uno - Secure SSO

Con Secure SSO, FastComments sa che l'utente che commenta, vota e legge i commenti è un utente reale del tuo sito.

Finché crei un payload valido, l'utente avrà sempre un'esperienza di commento senza interruzioni.

Con Secure SSO, il payload SSO viene creato lato server usando l'autenticazione HMAC e poi passato al widget sul client.

Con Secure SSO, l'account dell'utente è completamente separato dal resto della base utenti di FastComments. Questo significa che se abbiamo due partner Azienda A e Azienda B, ognuno può avere un utente SSO con lo username "Bob".

Requisiti

  • Conoscenze di base nello sviluppo backend.
  • Conoscenze di base nella gestione di chiavi API segrete.
  • Conoscenze di base nello sviluppo di API o nel server-side rendering.

Vantaggi

  • Sicuro.
  • Esperienza di commento senza interruzioni.

Svantaggi

  • Richiede sviluppo backend.

Aggiornamento dei dati utente

Con Secure SSO, ogni volta che passi il payload utente sso, aggiorneremo il loro utente con le informazioni più recenti. Per esempio, se l'utente ha uno username X, e passi Y nel payload SSO, il loro username diventerà Y.

Se vuoi rimuovere dei valori usando questo approccio allora impostali a null (non undefined).

API Secure SSO

Forniamo inoltre un'API per interagire con gli utenti SSO. Vedi la documentazione.

Nota che quando si utilizza Secure SSO, gli utenti vengono creati automaticamente dietro le quinte al caricamento della pagina. Non è necessario importare in blocco i tuoi utenti.

Opzione Due - Simple SSO

L'alternativa a Secure SSO è semplicemente passare le informazioni dell'utente al widget dei commenti.

Fornire un'email con Simple SSO non è obbligatorio, tuttavia senza questa i loro commenti appariranno come "Non verificato".

Nota! A partire dai primi mesi del 2022 i nomi utente con Simple SSO non devono essere unici su tutto FastComments.com.

Idealmente, Simple SSO dovrebbe essere scelto solo quando si sviluppa su una piattaforma che non fornisce accesso al backend.

Requisiti

  • Conoscenze di base nello sviluppo lato client.
  • È necessario conoscere almeno l'email dell'utente.

Vantaggi

  • Semplice.
  • Tutte le attività vengono comunque verificate.
  • L'utente non inserisce mai il proprio username o email.

Svantaggi

  • Meno sicuro rispetto a Secure SSO poiché il payload lato client potrebbe essere manipolato per impersonare qualsiasi utente.

API Simple SSO

Gli utenti creati automaticamente tramite il flusso Simple SSO vengono memorizzati come oggetti SSOUser. Possono essere accessi e gestiti tramite l'API SSOUser. Vedi la documentazione.

Integrazioni personalizzate - Single Sign On semplice (SSO) Internal Link

Con Simple SSO, possiamo fornire al widget dei commenti informazioni sull'utente in modo che non debba inserire il proprio nome utente o la propria email per commentare.

Possiamo configurare Simple SSO come segue:

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

L'utente verrà autenticato e verrà creato un utente SSO in background. L'utente avrà createdFromSimpleSSO impostato su true se recuperato dall'API.

Notes:

  • L'email è l'identificatore univoco per Simple SSO.
  • Fornire un'email con Simple SSO non è obbligatorio, tuttavia per impostazione predefinita i loro commenti verranno mostrati come "Non verificato". Se non viene fornita un'email, l'utente non può essere completamente autenticato.
  • NUOVO Da gennaio 2022: i nomi utente non devono essere univoci su tutto fastcomments.com
  • Simple SSO può creare e aggiornare automaticamente gli utenti SSO se viene fornita un'email e l'utente non è stato originariamente creato tramite Secure SSO.
  • È possibile specificare badge per l'utente con la proprietà badgeConfig. L'array badgeIds contiene gli ID dei badge da associare all'utente. Se override è impostato su true, sostituirà tutti i badge esistenti visualizzati nei commenti; se false verrà aggiunto ai badge esistenti.

Integrazioni personalizzate - Migrazione da Disqus SSO Internal Link

Le principali differenze tra Disqus e FastComments Secure SSO sono che Disqus usa SHA1 per la crittografia mentre noi usiamo SHA256. Ciò significa che migrare da Disqus è semplice - basta cambiare l'algoritmo di hashing da SHA1 a SHA256 e aggiornare i nomi delle proprietà passate alla UI.

Integrazioni personalizzate - Migrazione da Commento SSO Internal Link

Commento utilizza un approccio SSO drasticamente diverso - richiedono che tu abbia un endpoint che invocano per autenticare l'utente. FastComments è l'opposto - semplicemente codificare e calcolare l'hash delle informazioni dell'utente usando la tua chiave segreta e passarle.

Callback Internal Link

Tutte le librerie per il widget dei commenti (attualmente Angular, React, Vue) supportano callback.

I callback sono specificati nell'oggetto di configurazione, con la stessa firma per ogni libreria.

I callback supportati sono:

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

Le firme esatte possono essere trovate nelle TypeScript definitions.

Ecco un esempio con tutti i callback utilizzati:

Esempi di callback
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; // restituisci true per impedire il comportamento predefinito (aprire il profilo utente su fastcomments.com).
31 },
32 onCommentSubmitStart: function(comment, continueSubmitFn, cancelFn) {
33 console.log('Trying to submit comment', comment);
34 setTimeout(function() { // emulazione di comportamento asincrono (chiamata di API, ecc.).
35 if(confirm('Should submit?')) {
36 continueSubmitFn();
37 } else {
38 cancelFn('Some optional error message');
39 }
40 }, 1000);
41 },
42 onCommentsRendered: function(comments) {
43 // i commenti sono ordinati in base all'ordinamento predefinito della pagina che può essere "Più rilevanti" (es.: più votati, ecc.) o "Più recenti"
44 const topCommentInList = comments[0];
45 console.log('First Comment Rendered:', topCommentInList.avatarSrc, topCommentInList.commenterName, topCommentInList.commentHTML);
46 }
47 });
48</script>
49

Titoli delle pagine Internal Link

Il titolo della pagina corrente è associato al urlId specificato e salvato per l'uso negli strumenti di moderazione.

Per impostazione predefinita, questo viene recuperato da document.title.

Se desiderato, è possibile specificare un titolo di pagina personalizzato come segue:

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

Il conteggio dei commenti e il conteggio di tutte le risposte nidificate Internal Link

Il conteggio dei commenti visualizzato nella parte superiore del widget dei commenti può mostrare o tutti i commenti "di primo livello", ovvero le risposte che sono risposte direttamente alla pagina o all'articolo stesso, oppure può essere un conteggio di tutti i commenti nidificati.

Per impostazione predefinita, questo è true - è un conteggio del secondo tipo - tutti i commenti. Nelle versioni precedenti del widget dei commenti il valore predefinito era false.

Possiamo cambiare il comportamento, così che sia un conteggio di tutti i commenti nidificati impostando il flag countAll su 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 volessimo che il conteggio riflettesse solo i commenti di primo livello, impostiamo il flag su 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

Attualmente questo non può essere personalizzato senza modifiche al codice.


ID dei gruppi per le menzioni Internal Link

Una lista di ID da usare per l'autocompletamento delle @mentions. Utile quando vuoi evitare di taggare utenti che non hanno gruppi in comune.

Quando specificato, solo gli utenti appartenenti ad altri gruppi verranno mostrati nell'autocompletamento dopo aver digitato il carattere @.

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