FastComments.com

Προσαρμογές και Διαμόρφωση

Πλαίσιο

Εδώ θα βρείτε εκτενή τεκμηρίωση για κάθε μία από τις λειτουργίες και τις ρυθμίσεις που υποστηρίζει το widget σχολίων.

Αυτή η τεκμηρίωση θα καλύψει βασικές έννοιες και θα εισέλθει σε βάθος σε κάθε περιοχή λειτουργικότητας, με οδηγίες βήμα-προς-βήμα και κοινές παγίδες.

Θα παρέχονται παραδείγματα κώδικα, με τις σχετικές γραμμές επισημασμένες. Θα παρέχονται στιγμιότυπα οθόνης των σελίδων ρυθμίσεων όπου εφαρμόζεται.

Τα παραδείγματα κώδικα θα χρησιμοποιούν τη βιβλιοθήκη vanilla JavaScript μας, ωστόσο οι επιλογές διαμόρφωσης χρησιμοποιούν ακριβώς τα ίδια ονόματα για όλες τις εκδόσεις του widget σχολίων (React, Vue, κ.λπ.).

Οι περισσότερες ρυθμίσεις και λειτουργίες που περιγράφονται σε αυτόν τον οδηγό δεν απαιτούν τη γραφή κώδικα.

Απεικόνιση των ίδιων σχολίων σε διαφορετικές σελίδες Internal Link


Εφόσον η παράμετρος urlId μας επιτρέπει να ορίσουμε σε ποια σελίδα, ή σε ποιο id, συνδέονται τα σχόλια, μπορούμε απλώς να ορίσουμε την urlId στην ίδια τιμή σε αυτές τις σελίδες.

Τα ίδια σχόλια σε πολλαπλές σελίδες
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

Προσαρμοσμένες γραμματοσειρές Internal Link

FastComments is designed to be customized, and the font our widgets use is no exception.

By default, FastComments uses the system font stack to look as good as possible on a wide range of devices.

To define your own fonts, see the Τεκμηρίωση προσαρμοσμένου CSS.

Εκεί θα βρείτε έναν τρόπο να ορίσετε προσαρμοσμένο CSS, το οποίο θα σας επιτρέψει να καθορίσετε τις γραμματοσειρές που επιθυμείτε.

Πώς να Ορίσετε τη Γραμματοσειρά

To override the font, we recommend you define your CSS using the .fast-comments, textarea selectors. For example:

Παράδειγμα Εξωτερικής Προσαρμοσμένης Γραμματοσειράς
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

Υποστήριξη σκούρων φόντων (Σκοτεινή λειτουργία) Internal Link

Εξ ορισμού, το widget σχολίων FastComments θα εντοπίζει αυτόματα τη σκοτεινή λειτουργία στις περισσότερες ιστοσελίδες.

Όταν εντοπιστεί η σκοτεινή λειτουργία, το FastComments θα αλλάξει από μαύρο κείμενο σε λευκό φόντο, σε λευκό κείμενο σε μαύρο φόντο. Οι εικόνες θα αλλάξουν επίσης.

Κατά τη φόρτωση της σελίδας, το widget θα προσπαθήσει να προσδιορίσει πόσο σκούρο είναι το φόντο της σελίδας πίσω από το widget σχολίων. Αυτό σημαίνει ότι η σελίδα μπορεί να έχει λευκό φόντο, αλλά αν τοποθετήσετε το widget σχολίων μέσα σε ένα κοντέινερ με μαύρο φόντο, η σκοτεινή λειτουργία θα πρέπει να ενεργοποιηθεί αυτόματα ώστε τα σχόλια να είναι ευανάγνωστα.

Ωστόσο, ο μηχανισμός ανίχνευσης, που βασίζεται στον προσδιορισμό της «φωτεινότητας» (luminance), ενδέχεται να μην ενεργοποιήσει τη σκοτεινή λειτουργία όταν το θέλετε. Για να την ενεργοποιήσετε καταναγκαστικά, ορίστε τη σημαία hasDarkBackground σε true ως εξής:

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

Σύνδεση από σχόλια σε σελίδες Internal Link

Κατά την αποστολή ειδοποιητικών email, ή κατά την απόδοση σχολίων σε διεπαφές χρήστη όπως η σελίδα μετριασμού, είναι χρήσιμο να μπορείτε να συνδέσετε το σχόλιο με τη σελίδα στην οποία βρίσκεται.

Αν το URL ID δεν είναι πάντα ένα ID, τότε πρέπει να αποθηκεύσουμε το URL κάπου αλλού. Γι' αυτό υπάρχει η ιδιότητα "url", ορισμένη ως εξής.

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

Μια συνηθισμένη περίπτωση χρήσης είναι να συσχετίσετε το νήμα σχολίων με έναν αναγνωριστικό, όπως ένα άρθρο, και στη συνέχεια να συνδέσετε πίσω σε μια συγκεκριμένη σελίδα, για παράδειγμα:

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

Το URL δεν καθαρίζεται από κοινές παραμέτρους μάρκετινγκ. Από προεπιλογή, όποιο κι αν είναι το τρέχον URL της σελίδας, αυτό είναι το URL που αποθηκεύεται με το σχόλιο.

Προσδιορισμός ποια σελίδα θα αποδοθεί Internal Link


Κατά την ανάκτηση και απόδοση σχολίων, το widget σχολίων χρειάζεται να γνωρίζει από ποια σελίδα να ξεκινήσει. Από προεπιλογή, ξεκινά με την πρώτη σελίδα, αποδίδοντας μόνο εκείνη τη σελίδα.

Εάν επιθυμείτε, η ακριβής σελίδα που θα αποδοθεί μπορεί να περαστεί στο widget σχολίων ως η ρύθμιση 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

Σημειώστε ότι οι αριθμοί των σελίδων ξεκινούν από το μηδέν, οπότε το παραπάνω παράδειγμα αποδίδει τη δεύτερη σελίδα.


Αλλαγή νημάτων σχολίων χωρίς επαναφόρτωση της σελίδας Internal Link

Έχουμε εξηγήσει πως το urlId είναι το αναγνωριστικό της σελίδας ή του άρθρου στο οποίο συνδέονται τα σχόλια.

Επίσης, για επανάληψη, αν δεν οριστεί, το urlId θα έχει προεπιλογή το URL της τρέχουσας σελίδας.

Τι γίνεται με τις εφαρμογές μίας σελίδας (SPAs), όπου η σελίδα ή το περιεχόμενο στο οποίο συνδέονται τα σχόλια αλλάζει δυναμικά χωρίς πλήρη επαναφόρτωση της σελίδας;

Angular, React, Vue, κ.λπ.

Με τις βιβλιοθήκες μας όπως οι Angular και React, το απλό ενημέρωμα της ιδιότητας urlId που δίνεται στο widget θα προκαλέσει ανανέωση του widget σχολίων. Μπορείτε να δείτε αυτό σε δράση για την εφαρμογή React, για παράδειγμα, εδώ.

VanillaJS

Αν χρησιμοποιείτε τη βιβλιοθήκη VanillaJS είναι ελαφρώς πιο περίπλοκο καθώς δεν υπάρχει ένα πλαίσιο όπως ο Angular ή ο React για να χειριστεί το binding δεδομένων ή τη διάδοση κατάστασης.

Όταν δημιουργείτε μια παρουσία του widget VanillaJS, επιστρέφει μερικές συναρτήσεις που μπορούν να κληθούν για να το ενημερώσουν.

Ιδού ένα λειτουργικό παράδειγμα όπου αλλάζουμε το hash της σελίδας και ενημερώνουμε το widget σχολίων:

Παράδειγμα αλλαγής hash σελίδας
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; // We update url, too, so notifications can link back to the right page
29 config.urlId = locationString;
30
31 instance.update(config);
32 }
33 nextPage();
34 button.addEventListener('click', nextPage);
35 })();
36</script>
37

Απενεργοποίηση ανακατεύθυνσης εικόνων Internal Link


Από προεπιλογή, το FastComments επιτρέπει στους χρήστες να ανεβάζουν εικόνες. Όταν ένας χρήστης κάνει κλικ σε αυτήν την εικόνα, το FastComments θα, εξ ορισμού, ανοίξει μια νέα καρτέλα για να δείξει την εικόνα σε πλήρες μέγεθος. Ορισμός αυτής της σημαίας σε true απενεργοποιεί αυτή τη συμπεριφορά:

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

Εάν δεν σκοπεύετε να χειριστείτε το κλικ στην εικόνα εσείς οι ίδιοι (δείτε onImageClicked), προτείνουμε να συνδυάσετε αυτό με κάποια μορφοποίηση ώστε να αφαιρέσετε την εντύπωση ότι η εικόνα μπορεί να κλικάρεται.


Επισήμανση νέων σχολίων Internal Link

Το FastComments παρέχει διάφορους τρόπους για να επισημαίνονται νέα σχόλια.

Πρώτα απ' όλα, εξ ορισμού τα σχόλια που προκάλεσαν ειδοποίηση εντός της εφαρμογής (απαντήσεις, απαντήσεις στο ίδιο νήμα, ή σχόλια σε μια σελίδα στην οποία έχετε εγγραφεί), θα επισημαίνονται αυτόματα με το avatar του χρήστη να έχει μια ελαφριά λάμψη. Το χρώμα μπορεί να προσαρμοστεί μέσω CSS χρησιμοποιώντας την κλάση is-unread.

Τα σχόλια που δημοσιεύτηκαν τις τελευταίες 24 ώρες έχουν εφαρμοσμένη την κλάση 24hr που μπορεί να χρησιμοποιηθεί για εφαρμογή στυλ.

Τέλος, οποιαδήποτε νέα ζωντανά σχόλια που εμφανίζονται στη συνεδρία του χρήστη θα επισημαίνονται για μερικά δευτερόλεπτα μέσω μιας κινούμενης απεικόνισης. Αυτό γίνεται μέσω της is-live κλάσης CSS και μπορεί επίσης να προσαρμοστεί.

Πρότυπα ηλεκτρονικού ταχυδρομείου Internal Link

Τα email που αποστέλλονται από το FastComments στους πελάτες σας μπορούν να προσαρμοστούν. Το πρότυπο, η λογική, και οι μεταφράσεις μπορούν όλα να αλλάξουν. Το κείμενο μπορεί να προσαρμοστεί ανά locale, και το στυλ μπορεί ακόμη να αλλάξει ανά domain. Μάθετε περισσότερα για τα προσαρμοσμένα πρότυπα email εδώ.

Νέα ζωντανά σχόλια στο κάτω μέρος Internal Link

Από προεπιλογή, τα νέα σχόλια που δημοσιεύονται σε πραγματικό χρόνο εμφανίζονται στην κορυφή της λίστας σχολίων.

Όταν αυτή η επιλογή είναι ενεργοποιημένη, τα νέα σχόλια σε πραγματικό χρόνο προστίθενται στο κάτω μέρος της λίστας. Αυτό επηρεάζει τον τρόπο με τον οποίο τα σχόλια εμφανίζονται όταν δημοσιεύονται σε πραγματικό χρόνο ενώ οι χρήστες βλέπουν τη συνομιλία σχολίων.

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

Με αυτή τη ρύθμιση ενεργοποιημένη:

  • Τα νέα σχόλια σε πραγματικό χρόνο που δημοσιεύονται από άλλους χρήστες θα εμφανίζονται στο κάτω μέρος της λίστας σχολίων
  • Οι χρήστες θα βλέπουν τα νέα σχόλια να εμφανίζονται κάτω από τα υπάρχοντα σχόλια σε πραγματικό χρόνο
  • Αυτό επηρεάζει μόνο τις ενημερώσεις σχολίων σε πραγματικό χρόνο - όχι την αρχική φόρτωση της σελίδας
  • Αυτό μπορεί να βοηθήσει στη διατήρηση της ροής ανάγνωσης όταν οι χρήστες ακολουθούν μια συζήτηση

Σημειώστε ότι αυτή η ρύθμιση επηρεάζει μόνο το πού τοποθετούνται τα νέα σχόλια σε πραγματικό χρόνο καθώς φτάνουν. Δεν επηρεάζει την αρχική σειρά ταξινόμησης όταν φορτώνει η σελίδα.

Ενεργοποίηση άπειρης κύλισης Internal Link

Από προεπιλογή, το widget FastComments θα αλλάζει το ύψος του κάθετα ώστε να χωράει όλα τα ορατά σχόλια. Η σελιδοποίηση επιτυγχάνεται μέσω ενός κουμπιού "Προβολή Επόμενων" στο τέλος της τρέχουσας σελίδας, καθώς διαπιστώσαμε ότι αυτή η αλληλεπίδραση είναι η πιο άνετη για τους περισσότερους χρήστες.

Ωστόσο, υπάρχουν περιπτώσεις όπου προτιμάται η άπειρη κύλιση. Για παράδειγμα, χρησιμοποιούμε αυτή τη δυνατότητα στο προϊόν Stream Chat.

Μπορούμε να αποκρύψουμε τα κουμπιά "Προβολή Επόμενων" και να μεταβούμε στην άπειρη κύλιση ρυθμίζοντας τη σημαία enableInfiniteScrolling σε 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

Αυτό απαιτεί επίσης την προσθήκη προσαρμοσμένου CSS. Προσθέστε προσαρμοσμένο CSS για τον επιλεκτή .comments για να ενεργοποιήσετε την κύλιση, για παράδειγμα:

Ενεργοποίηση Άπειρης Κύλισης
Copy CopyRun External Link
1
2.comments {
3 max-height: 500px;
4 overflow-y: auto;
5}
6

Ένα πλήρες λειτουργικό παράδειγμα θα ήταν:

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

Στο παραπάνω παράδειγμα χρησιμοποιούμε την ιδιότητα customCSS, ωστόσο συνιστάται να χρησιμοποιηθεί η διεπαφή διαμόρφωσης του widget (Widget Configuration UI) για λόγους απόδοσης. Δείτε την τεκμηρίωση για το Custom CSS.

Απόδοση όλων των σχολίων ταυτόχρονα - Απενεργοποίηση σελιδοποίησης Internal Link

Για να απενεργοποιήσετε τη σελιδοποίηση και να εμφανίσετε όλα τα σχόλια ταυτόχρονα, ορίστε το startingPage σε -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

Αποτροπή νέων σχολίων πρώτου επιπέδου Internal Link


Ορίζοντας την noNewRootComments σε true θα προκαλέσει το widget να κρύψει τη περιοχή απάντησης ρίζας, αλλά θα επιτρέψει στους χρήστες να απαντούν σε υποσχόλια. Μπορείτε, για παράδειγμα, να το ορίσετε υπό όρο κατά τη φόρτωση της σελίδας, ώστε να επιτρέπεται μόνο σε ορισμένους χρήστες να αφήνουν σχόλια πρώτου επιπέδου.

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

Μέγιστο βάθος απαντήσεων Internal Link

Από προεπιλογή, το FastComments επιτρέπει απεριόριστη εμφώλευση απαντήσεων, δημιουργώντας μια δομή συζήτησης όπου οι χρήστες μπορούν να απαντούν σε απαντήσεις επ' αόριστον.

Η επιλογή maxReplyDepth σας επιτρέπει να περιορίσετε πόσο βαθιά μπορούν να φτάσουν τα νήματα απαντήσεων. Όταν επιτευχθεί το μέγιστο βάθος, οι χρήστες δεν θα βλέπουν πλέον κουμπί απάντησης σε σχόλια σε εκείνο το επίπεδο.

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

Με το maxReplyDepth ορισμένο σε 2:

  • Οι χρήστες μπορούν να σχολιάζουν στο ανώτερο επίπεδο (βάθος 0)
  • Οι χρήστες μπορούν να απαντούν σε σχόλια ανώτερου επιπέδου (βάθος 1)
  • Οι χρήστες μπορούν να απαντούν σε αυτές τις απαντήσεις (βάθος 2)
  • Δεν επιτρέπονται περαιτέρω απαντήσεις πέραν του βάθους 2

Ορίζοντας το σε 1 θα επιτρέπονται μόνο απαντήσεις σε σχόλια ανώτερου επιπέδου, δημιουργώντας μια πιο επίπεδη δομή συζήτησης.

Ορίζοντας το maxReplyDepth σε 0 θα απενεργοποιηθούν όλες οι απαντήσεις, επιτρέποντας μόνο σχόλια ανώτερου επιπέδου. Αν δεν οριστεί, οι απαντήσεις μπορούν να εμφωλεύονται χωρίς όριο.

Επισκόπηση Ενιαίας Σύνδεσης (SSO) Internal Link

Το SSO, ή single-sign-on, είναι ένα σύνολο συμβάσεων που χρησιμοποιείται για να επιτρέψει σε εσάς ή στους χρήστες σας να χρησιμοποιείτε το FastComments χωρίς να χρειάζεται να δημιουργήσετε άλλο λογαριασμό.

Αν υποθέσουμε ότι δεν επιτρέπετε ανώνυμα σχόλια, απαιτείται λογαριασμός για να σχολιάσει κάποιος με το FastComments. Κάνουμε αυτή τη διαδικασία εγγραφής πολύ απλή - ο χρήστης απλώς αφήνει το email του όταν σχολιάζει. Ωστόσο, κατανοούμε ότι ακόμα και αυτό είναι επιπλέον τριβή που κάποια sites θέλουν να αποφύγουν.

Μπορούμε να μειώσουμε αυτή την τριβή έχοντας μόνο μια ροή σύνδεσης για ολόκληρο το site σας.

How do I get it?

Όλοι οι τύποι λογαριασμών αποκτούν πρόσβαση στο SSO. Ωστόσο, ο μέγιστος αριθμός χρηστών SSO ποικίλλει ανάλογα με το πακέτο σας. Όπως με άλλα χαρακτηριστικά, τα Pro πλάνα και υψηλότερα παρέχουν άμεση υποστήριξη ανάπτυξης.

Ας συγκρίνουμε τις επιλογές και μετά ας δούμε λεπτομέρειες για κάθε μία.

User and Comment Migrations

Όταν μετακινείστε από μια πλατφόρμα με SSO όπως το Disqus, θα έχετε ήδη χρήστες και τα σχόλιά τους.

Τα σχόλια εισάγονται ως μέρος της μετανάστευσής σας, είτε μέσω του API, είτε μέσω του Import UI, είτε μέσω της υποστήριξης πελατών. Το Import UI προτιμάται εάν υποστηρίζει την πλατφόρμα από την οποία μετακινείστε, καθώς ενσωματώνει χειρισμό σφαλμάτων, εξαγωγή και ανέβασμα avatar και μέσων, και ένα σύστημα παρακολούθησης εργασιών παρτίδας.

Οι ίδιοι οι χρήστες προστίθενται αυτόματα όταν βλέπουν για πρώτη φορά νήματα σχολίων. Εναλλακτικά, μπορούν να προ-προστεθούν μέσω του API, αλλά αυτή η δουλειά δεν έχει πολλά πλεονεκτήματα.

Εάν τα σχόλια εισαχθούν και οι χρήστες SSO δεν προστεθούν χειροκίνητα μέσω του API, τότε τα σχόλια θα μεταφερθούν αυτόματα στον λογαριασμό του χρήστη την πρώτη φορά που θα δημιουργηθεί όταν δει οποιοδήποτε νήμα σχολίων. Θα μπορούν τότε να διαχειρίζονται, να επεξεργάζονται και να διαγράφουν τα σχόλια που αρχικά έγραψαν.

Η αυτόματη μετανάστευση γίνεται μέσω email ή username. Ορισμένες πλατφόρμες δεν παρέχουν emails κατά την εξαγωγή, όπως το Disqus, οπότε σε αυτή την περίπτωση χρησιμοποιούμε ως εναλλακτική το username.

  • Εφόσον παρέχετε ένα ταιριαστό username, και ένα email στο SSO payload, θα προσθέσουμε το email στα μεμονωμένα αντικείμενα σχολίων ώστε οι ειδοποιήσεις και οι αναφορές να λειτουργούν.

Εάν επιθυμείτε να εισαγάγετε τα σχόλια και τους χρήστες ταυτόχρονα, συνεργαστείτε με την υποστήριξη για να μεταφέρετε τα σχόλια στους αντίστοιχους λογαριασμούς των χρηστών αφού οι χρήστες εισαχθούν μέσω του API.

Συνοψίζοντας, η πιο εύκολη πορεία για τη μετανάστευση είναι:

  1. Εισαγάγετε τα σχόλια.
    1. Τα avatars και άλλα μέσα μεταφέρονται αυτόματα εάν χρησιμοποιείτε το Import UI στο Manage Data -> Imports.
  2. Ρυθμίστε Secure ή Simple SSO.
  3. Αφήστε τη μετανάστευση να συμβεί ανά χρήστη αυτόματα όταν συνδεθούν για πρώτη φορά.
    1. Αυτό συνήθως προσθέτει λιγότερο από ένα δευτερόλεπτο στο χρόνο φόρτωσης της σελίδας αν ο χρήστης έχει λιγότερα από 50k σχόλια.

WordPress Users

Εάν χρησιμοποιείτε το πρόσθετό μας για WordPress, τότε δεν χρειάζεται να γράψετε κώδικα! Απλώς πηγαίνετε στη Σελίδα διαχείρισης του πρόσθετου, κάντε κλικ στις Ρυθμίσεις SSO, και μετά Ενεργοποίηση.

Αυτό θα σας οδηγήσει σε έναν οδηγό με ένα κουμπί που θα δημιουργήσει το API key σας, θα το στείλει στην εγκατάσταση WordPress σας και θα ενεργοποιήσει το SSO. Το έχουμε ενοποιήσει σε ένα μόνο κλικ για εσάς.

Σημειώστε ότι αν εγκαθιστάτε το πρόσθετο για πρώτη φορά θα πρέπει να ολοκληρώσετε τη διαδικασία εγκατάστασης πριν δείτε τη σελίδα διαχείρισης με το κουμπί Ρυθμίσεις SSO.

WordPress SSO - Moderators

Σημειώστε ότι αυτή τη στιγμή για να εμφανίζεται η ένδειξη «Διαχειριστής» δίπλα στους moderators όταν σχολιάζουν με το πρόσθετο FastComments για WordPress, πρέπει επίσης να προστεθούν ως Διαχειριστές στον πίνακα ελέγχου του FastComments, και να έχουν το email τους επαληθευμένο.

Custom Integrations

Για προσαρμοσμένες ενσωματώσεις, υπάρχουν δύο επιλογές.

Option One - Secure SSO

Με το Secure SSO, το FastComments γνωρίζει ότι ο χρήστης που σχολιάζει, ψηφίζει και διαβάζει σχόλια είναι ένας πραγματικός χρήστης στον ιστότοπό σας.

Εφόσον δημιουργήσετε ένα έγκυρο payload, ο χρήστης θα έχει πάντα μια αδιάκοπη εμπειρία σχολιασμού.

Με το Secure SSO, το SSO payload δημιουργείται από την πλευρά του server χρησιμοποιώντας HMAC authentication και στη συνέχεια μεταβιβάζεται στο widget στον πελάτη.

Με το Secure SSO, ο λογαριασμός του χρήστη είναι εντελώς ξεχωριστός από το υπόλοιπο user-base του FastComments. Αυτό σημαίνει ότι αν έχουμε δύο συνεργάτες Company A και Company B, ο καθένας μπορεί να έχει έναν χρήστη SSO με το username "Bob".

Requirements

  • Κάποιες βασικές γνώσεις ανάπτυξης backend.
  • Κάποιες βασικές γνώσεις διαχείρισης μυστικών API keys.
  • Κάποιες βασικές γνώσεις ανάπτυξης API ή server-side rendering.

Pros

  • Ασφαλές.
  • Αδιάλειπτη εμπειρία σχολιασμού.

Cons

  • Απαιτεί ανάπτυξη backend.

Updating User Data

Με το Secure SSO, κάθε φορά που στέλνετε το sso user payload, θα ενημερώνουμε τον χρήστη με τις πιο πρόσφατες πληροφορίες. Για παράδειγμα, αν ο χρήστης έχει username X, και εσείς περάσετε Y στο SSO payload, το username του θα γίνει Y.

Εάν θέλετε να αφαιρέσετε τιμές χρησιμοποιώντας αυτή την προσέγγιση τότε ορίστε τις σε null (όχι undefined).

Secure SSO API

Παρέχουμε επίσης ένα API για αλληλεπίδραση με τους χρήστες SSO. Δείτε την τεκμηρίωση.

Σημειώστε ότι όταν χρησιμοποιείτε Secure SSO, οι χρήστες δημιουργούνται αυτόματα πίσω από τα παρασκήνια κατά τη φόρτωση της σελίδας. Δεν χρειάζεται να κάνετε μαζική εισαγωγή των χρηστών σας.

Option Two - Simple SSO

Η εναλλακτική στο Secure SSO είναι να περάσετε απλώς τις πληροφορίες του χρήστη στο widget σχολιασμού.

Η παροχή email με το Simple SSO δεν είναι απαραίτητη, ωστόσο χωρίς αυτό τα σχόλιά τους θα εμφανίζονται ως "Unverified".

Σημείωση! Από τις αρχές του 2022 τα usernames με το Simple SSO δεν χρειάζεται να είναι μοναδικά σε όλο το FastComments.com.

Ιδανικά, το Simple SSO θα πρέπει να επιλέγεται μόνο όταν αναπτύσσετε σε μια πλατφόρμα που δεν παρέχει πρόσβαση στο backend.

Requirements

  • Κάποιες βασικές γνώσεις ανάπτυξης από την πλευρά του πελάτη.
  • Πρέπει να γνωρίζετε τουλάχιστον το email του χρήστη.

Pros

  • Απλό.
  • Όλη η δραστηριότητα εξακολουθεί να επαληθεύεται.
  • Ο χρήστης δεν εισάγει ποτέ το username ή το email του.

Cons

  • Λιγότερο ασφαλές από το Secure SSO καθώς το payload από την πλευρά του client θα μπορούσε να κατασκευαστεί έτσι ώστε να γίνει οποιοσδήποτε χρήστης.

Simple SSO API

Οι χρήστες που δημιουργούνται αυτόματα μέσω της ροής Simple SSO αποθηκεύονται ως αντικείμενα SSOUser. Μπορούν να προσπελαστούν και να διαχειριστούν μέσω του SSOUser API. Δείτε την τεκμηρίωση.

Προσαρμοσμένες Ενσωματώσεις - Απλή Ενιαία Σύνδεση (SSO) Internal Link

Με το Simple SSO, μπορούμε να παρέχουμε στο widget σχολιασμού πληροφορίες για τον χρήστη ώστε να μην χρειάζεται να εισάγει το όνομα χρήστη ή το email του για να σχολιάσει.

Μπορούμε να ρυθμίσουμε το Simple SSO ως εξής:

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

Ο χρήστης θα είναι συνδεδεμένος και θα δημιουργηθεί ένας SSO χρήστης στο παρασκήνιο. Ο χρήστης θα έχει την ιδιότητα createdFromSimpleSSO ορισμένη σε true αν ανακτηθεί από το API.

Σημειώσεις:

  • Το email είναι ο μοναδικός αναγνωριστής για το Simple SSO.
  • Η παροχή email με το Simple SSO δεν είναι απαραίτητη, ωστόσο από προεπιλογή τα σχόλιά τους θα εμφανίζονται ως "Μη Επαληθευμένο". Εάν δεν παρέχεται email, ο χρήστης δεν μπορεί να πιστοποιηθεί πλήρως.
  • ΝΕΟ Από Ιαν 2022: Τα ονόματα χρήστη δεν χρειάζεται να είναι μοναδικά σε όλο το fastcomments.com
  • Το Simple SSO μπορεί να δημιουργεί και να ενημερώνει αυτόματα SSO χρήστες, εάν παρέχεται email, και εφόσον ο χρήστης δεν είχε αρχικά δημιουργηθεί μέσω Secure SSO.
  • Μπορείτε να καθορίσετε διακριτικά για τον χρήστη με την ιδιότητα badgeConfig. Ο πίνακας badgeIds περιέχει τα IDs των διακριτικών που θα συσχετιστούν με τον χρήστη. Εάν το override οριστεί σε true, θα αντικαταστήσει όλα τα υπάρχοντα διακριτικά που εμφανίζονται στα σχόλια· εάν σε false, θα προστεθεί στα υπάρχοντα διακριτικά.

Προσαρμοσμένες Ενσωματώσεις - Μεταφορά από Disqus SSO Internal Link

Οι μεγαλύτερες διαφορές μεταξύ του Disqus και του FastComments Secure SSO είναι ότι το Disqus χρησιμοποιεί SHA1 για κρυπτογράφηση, ενώ εμείς χρησιμοποιούμε SHA256. Αυτό σημαίνει ότι η μετανάστευση από το Disqus είναι εύκολη - αλλάξτε τον αλγόριθμο κατακερματισμού που χρησιμοποιείται από SHA1 σε SHA256 και ενημερώστε τα ονόματα ιδιοτήτων που περνιούνται στο UI.

Προσαρμοσμένες Ενσωματώσεις - Μεταφορά από Commento SSO Internal Link


Το Commento χρησιμοποιεί μια ριζικά διαφορετική προσέγγιση SSO - απαιτεί να έχετε ένα endpoint το οποίο καλεί για να πιστοποιήσει τον χρήστη. Το FastComments είναι το αντίστροφο - απλώς κωδικοποιήστε και κάντε hash τις πληροφορίες του χρήστη χρησιμοποιώντας το μυστικό σας κλειδί και προωθήστε τις.

Κλήσεις επιστροφής Internal Link

Όλες οι βιβλιοθήκες για το widget σχολίων (προς το παρόν Angular, React, Vue) υποστηρίζουν callbacks.

Οι callbacks ορίζονται στο αντικείμενο ρυθμίσεων, με την ίδια υπογραφή για κάθε βιβλιοθήκη.

Οι υποστηριζόμενες callbacks είναι:

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

Οι ακριβείς υπογραφές μπορούν να βρεθούν στις Ορισμοί TypeScript.

Ακολουθεί ένα παράδειγμα με όλες τις callbacks:

Παραδείγματα 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; // επιστροφή true για να αποτρέψετε την προεπιλεγμένη συμπεριφορά (άνοιγμα προφίλ χρήστη στο fastcomments.com).
31 },
32 onCommentSubmitStart: function(comment, continueSubmitFn, cancelFn) {
33 console.log('Trying to submit comment', comment);
34 setTimeout(function() { // προσωμοίωση ασύγχρονης συμπεριφοράς (κλήση API κ.λπ).
35 if(confirm('Should submit?')) {
36 continueSubmitFn();
37 } else {
38 cancelFn('Some optional error message');
39 }
40 }, 1000);
41 },
42 onCommentsRendered: function(comments) {
43 // τα σχόλια είναι ταξινομημένα σύμφωνα με την προεπιλεγμένη ταξινόμηση στη σελίδα, η οποία μπορεί να είναι 'Most Relevant' (π.χ. πιο πολυψήφισμένα κ.λπ.) ή 'Newest First'
44 const topCommentInList = comments[0];
45 console.log('First Comment Rendered:', topCommentInList.avatarSrc, topCommentInList.commenterName, topCommentInList.commentHTML);
46 }
47 });
48</script>
49

Τίτλοι σελίδων Internal Link

Ο τρέχων τίτλος της σελίδας συσχετίζεται με το καθορισμένο urlId και αποθηκεύεται για χρήση στα εργαλεία διαχείρισης περιεχομένου.

Κατά προεπιλογή, αυτό ανακτάται από το document.title.

Εάν το επιθυμείτε, μπορείτε να καθορίσετε τον δικό σας τίτλο σελίδας ως εξής:

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

Ο αριθμός σχολίων και η καταμέτρηση όλων των εμφωλευμένων απαντήσεων Internal Link

Ο αριθμός σχολίων που εμφανίζεται στην κορυφή του στοιχείου σχολιασμού μπορεί είτε να δείχνει όλα τα "σχόλια πρώτου επιπέδου", δηλαδή τις απαντήσεις που είναι απαντήσεις απευθείας στη σελίδα ή στο άρθρο, είτε να είναι καταμέτρηση όλων των εμφωλευμένων σχολίων.

Εξ ορισμού, αυτό είναι true - είναι καταμέτρηση του δεύτερου - όλων των σχολίων. Σε παλαιότερες εκδόσεις του στοιχείου σχολιασμού η προεπιλεγμένη τιμή είναι false.

Μπορούμε να αλλάξουμε τη συμπεριφορά, ώστε να είναι καταμέτρηση όλων των εμφωλευμένων σχολίων ρυθμίζοντας τη σημαία countAll σε 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

Αν θέλαμε η καταμέτρηση να αντανακλά μόνο τα σχόλια πρώτου επιπέδου, ορίζουμε τη σημαία σε 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

Αυτό προς το παρόν δεν μπορεί να προσαρμοστεί χωρίς αλλαγές στον κώδικα.

Αναφορά αναγνωριστικών ομάδων Internal Link

Μια λίστα αναγνωριστικών (IDs) για χρήση στην αυτόματη συμπλήρωση των @mentions. Χρήσιμο όταν θέλετε να αποτρέψετε τη σήμανση χρηστών όταν δεν έχουν κοινές ομάδες.

Όταν καθορίζεται, μόνο χρήστες από άλλες ομάδες θα εμφανίζονται στην αυτόματη συμπλήρωση μετά την πληκτρολόγηση του χαρακτήρα @.

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