FastComments.com

Dostosowania i konfiguracja

Kontekst

Tutaj znajdziesz szczegółową dokumentację dotyczącą każdej z funkcji i ustawień, które obsługuje widżet komentarzy.

Dokumentacja obejmuje podstawowe koncepcje i dogłębnie wnika w każde obszar funkcjonalności, zawierając instrukcje krok po kroku oraz typowe pułapki.

Przykłady kodu zostaną przedstawione z wyróżnionymi istotnymi liniami. Tam, gdzie to stosowne, zostaną dostarczone zrzuty ekranów stron konfiguracyjnych.

Przykłady kodu będą używać naszej biblioteki w czystym JavaScript, jednak opcje konfiguracji używają dokładnie tych samych nazw dla wszystkich wersji widżetu komentarzy (React, Vue itp.).

Większość konfiguracji i funkcji opisanych w tym przewodniku nie wymaga pisania żadnego kodu.


Wyświetlanie tych samych komentarzy na różnych stronach Internal Link

Ponieważ parametr urlId pozwala zdefiniować, z którą stroną lub identyfikatorem powiązane są komentarze, możemy po prostu ustawić urlId na tę samą wartość na tych stronach.

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

Własne czcionki Internal Link

FastComments jest zaprojektowany tak, aby można go było dostosować, a czcionka używana przez nasze widżety nie jest wyjątkiem.

Domyślnie FastComments używa system font stack, aby prezentować się możliwie najlepiej na różnych urządzeniach.

Aby zdefiniować własne czcionki, zobacz Dokumentację niestandardowego CSS.

Tam znajdziesz sposób na zdefiniowanie niestandardowego CSS, co pozwoli ci określić pożądane czcionki.

Jak zdefiniować czcionkę

Aby nadpisać czcionkę, zalecamy zdefiniować swój CSS przy użyciu selektorów .fast-comments, textarea. Na przykład:

Przykład zewnętrznej niestandardowej czcionki
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

Obsługa ciemnego tła (tryb ciemny) Internal Link

Domyślnie widget komentarzy FastComments automatycznie wykrywa tryb ciemny na większości stron.

Gdy wykryty zostanie tryb ciemny, FastComments zmieni czarny tekst na białym tle na biały tekst na czarnym tle. Obrazy również ulegną zmianie.

Podczas ładowania strony widget spróbuje określić, jak ciemne jest tło strony za widgetem komentarzy. Oznacza to, że strona może mieć białe tło, lecz jeśli umieścisz widget komentarzy wewnątrz kontenera o czarnym tle, tryb ciemny nadal powinien zostać automatycznie włączony, aby komentarze były czytelne.

Jednakże mechanizm wykrywania, który opiera się na określaniu "luminance", może nie włączyć trybu ciemnego wtedy, kiedy tego chcesz. Aby wymusić jego włączenie, ustaw flagę hasDarkBackground na true w następujący sposób:

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

Łączenie komentarzy ze stronami Internal Link

Kiedy wysyłasz powiadomienia e-mail, lub renderujesz komentarze w interfejsach użytkownika, takich jak strona moderacji, przydatne jest umożliwienie linkowania z komentarza do strony, na której się znajduje.

Jeśli identyfikator URL nie zawsze jest rzeczywistym identyfikatorem, musimy przechowywać URL gdzie indziej. Do tego służy właściwość "url", zdefiniowana w następujący sposób.

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

Typowym przypadkiem użycia jest powiązanie wątku komentarzy z identyfikatorem, takim jak artykuł, a następnie odwołanie się do konkretnej strony, na przykład:

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 nie jest oczyszczany z typowych parametrów marketingowych. Domyślnie zapisywany z komentarzem jest dokładnie bieżący URL strony.

Określanie, którą stronę wyświetlić Internal Link

Kiedy pobierane i renderowane są komentarze, widżet komentarzy musi wiedzieć, od której strony rozpocząć. Domyślnie zaczyna od pierwszej strony i renderuje tylko tę stronę.

W razie potrzeby dokładna strona do wyrenderowania może zostać przekazana do widżetu komentarzy jako ustawienie 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

Zwróć uwagę, że numeracja stron zaczyna się od zera, więc powyższy przykład renderuje drugą stronę.

Przełączanie wątków komentarzy bez przeładowania strony Internal Link

Omówiliśmy, jak urlId jest identyfikatorem strony lub artykułu, z którym powiązane są komentarze.

Aby przypomnieć: jeśli nie zostanie zdefiniowany, urlId domyślnie przyjmie wartość bieżącego adresu URL strony.

A co z aplikacjami SPA, czyli Single-Page-Applications, gdzie strona lub zawartość, do której przypisane są komentarze, zmienia się dynamicznie bez pełnego przeładowania strony?

Angular, React, Vue itp.

W naszych bibliotekach, takich jak Angular i React, wystarczy zaktualizować właściwość urlId przekazywaną do widżetu, aby widżet komentarzy odświeżył się. Możesz zobaczyć to w akcji dla aplikacji React, na przykład tutaj.

VanillaJS

Jeśli używasz biblioteki VanillaJS, jest to nieco bardziej skomplikowane, ponieważ nie ma tam frameworka takiego jak Angular czy React, który obsługiwałby wiązanie danych lub propagację stanu.

Kiedy tworzysz instancję widżetu VanillaJS, zwraca on kilka funkcji, które można wywołać, aby go zaktualizować.

Oto działający przykład, w którym zmieniamy fragment strony (hash) i aktualizujemy widżet komentarzy:

Przykład zmiany fragmentu (hash) strony
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

Wyłącz przekierowanie obrazów Internal Link

Domyślnie FastComments pozwala użytkownikom na przesyłanie obrazów. Kiedy użytkownik kliknie ten obraz, FastComments domyślnie otworzy nową kartę, aby wyświetlić obraz w pełnym rozmiarze. Ustawienie tego przełącznika na true wyłącza to zachowanie:

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

Jeśli nie zamierzasz samodzielnie przechwytywać kliknięć obrazów (zobacz onImageClicked), zalecamy połączenie tego ze stylem, który usunie wygląd sugerujący, że obraz jest klikalny.

Wyróżnianie nowych komentarzy Internal Link

FastComments oferuje kilka sposobów wyróżniania nowych komentarzy.

Przede wszystkim, domyślnie komentarze, które wywołały powiadomienie w aplikacji (odpowiedzi, odpowiedzi w tym samym wątku, lub komentarze na stronie którą subskrybujesz), będą automatycznie wyróżnione poprzez lekkie świecenie awatara użytkownika. Kolor można dostosować przez CSS używając klasy is-unread.

Komentarze opublikowane w ciągu ostatnich 24 godzin mają przypisaną klasę 24hr, którą można wykorzystać do stylizacji.

Wreszcie, wszystkie nowe komentarze na żywo, które pojawią się w sesji użytkownika, będą przez kilka sekund wyróżnione animacją. Odbywa się to za pomocą klasy CSS is-live i również można to dostosować.

Szablony e-mail Internal Link


E-maile wysyłane przez FastComments do Twoich klientów można dostosować. Szablon, logika, i tłumaczenia można zmienić. Treść można dostosować w zależności od lokalizacji (locale), a styl można nawet zmieniać w zależności od domeny. Dowiedz się więcej o niestandardowych szablonach e-mail tutaj.


Nowe komentarze na żywo na dół Internal Link

Domyślnie nowe komentarze na żywo pojawiają się na górze listy komentarzy w momencie ich publikacji w czasie rzeczywistym.

Po włączeniu tej opcji nowe komentarze na żywo będą dodawane zamiast tego na dół listy. Ma to wpływ na sposób wyświetlania komentarzy, gdy są publikowane na żywo podczas przeglądania wątku komentarzy przez użytkowników.

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

Po włączeniu tego ustawienia:

  • Nowe komentarze na żywo publikowane przez innych użytkowników będą pojawiać się na dole listy komentarzy
  • Użytkownicy będą widzieć nowe komentarze pojawiające się poniżej istniejących komentarzy w czasie rzeczywistym
  • To wpływa tylko na aktualizacje komentarzy na żywo - nie na początkowe ładowanie strony
  • Może to pomóc w zachowaniu ciągłości czytania, gdy użytkownicy śledzą dyskusję

Zwróć uwagę, że to ustawienie wpływa tylko na to, gdzie umieszczane są nowe komentarze na żywo w momencie ich nadejścia w czasie rzeczywistym. Nie ma wpływu na początkowe ustawienie sortowania przy ładowaniu strony.

Włączanie nieskończonego przewijania Internal Link

Domyślnie widżet FastComments automatycznie dopasowuje swoją wysokość, aby zmieścić wszystkie widoczne komentarze. Paginacja jest realizowana za pomocą przycisku "Pokaż następne" na końcu bieżącej strony, ponieważ uznaliśmy, że taka interakcja jest najbardziej naturalna dla większości użytkowników.

Jednak w niektórych przypadkach preferowane jest przewijanie nieskończone. Na przykład używamy tej funkcji w naszym produkcie Stream Chat.

Możemy ukryć przyciski "Pokaż następne" i przełączyć na przewijanie nieskończone ustawiając flagę enableInfiniteScrolling na 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

Wymaga to również dodania niestandardowego CSS. Dodaj niestandardowy CSS dla selektora .comments, aby włączyć przewijanie, na przykład:

Włączenie przewijania nieskończonego
Copy CopyRun External Link
1
2.comments {
3 max-height: 500px;
4 overflow-y: auto;
5}
6

Pełny, działający przykład wyglądałby następująco:

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

W powyższym przykładzie używamy właściwości customCSS, jednak zalecane jest użycie interfejsu konfiguracji widżetu ze względów wydajnościowych. Zobacz dokumentację niestandardowego CSS.

Wyświetlanie wszystkich komentarzy naraz — wyłącz paginację Internal Link


Aby wyłączyć paginację i wyświetlić wszystkie komentarze jednocześnie, ustaw startingPage na -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

Zablokuj dodawanie nowych komentarzy najwyższego poziomu Internal Link


Ustawienie noNewRootComments na true spowoduje, że widżet ukryje obszar odpowiedzi głównej, ale nadal pozwoli użytkownikom odpowiadać na komentarze podrzędne. Możesz na przykład ustawić to warunkowo podczas ładowania strony, aby tylko niektórzy użytkownicy mogli zostawiać komentarze najwyższego poziomu.

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

Maksymalna głębokość odpowiedzi Internal Link

Domyślnie FastComments pozwala na nieograniczone zagnieżdżanie odpowiedzi, tworząc strukturę wątków, w której użytkownicy mogą odpowiadać na odpowiedzi w nieskończoność.

Opcja maxReplyDepth pozwala ograniczyć, jak głęboko mogą sięgać wątki odpowiedzi. Gdy osiągnięty zostanie maksymalny poziom, użytkownicy nie będą już widzieć przycisku odpowiedzi przy komentarzach na tym poziomie.

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

Przy ustawieniu maxReplyDepth na 2:

  • Użytkownicy mogą komentować na najwyższym poziomie (głębokość 0)
  • Użytkownicy mogą odpowiadać na komentarze najwyższego poziomu (głębokość 1)
  • Użytkownicy mogą odpowiadać na te odpowiedzi (głębokość 2)
  • Dalsze odpowiedzi poza głębokością 2 nie są dozwolone

Ustawienie na 1 pozwoliłoby tylko na odpowiedzi na komentarze najwyższego poziomu, tworząc płytszą strukturę dyskusji.

Ustawienie maxReplyDepth na 0 wyłączyłoby wszystkie odpowiedzi, pozwalając jedynie na komentarze najwyższego poziomu. Jeśli nie zostanie określone, odpowiedzi mogą być zagnieżdżane bez ograniczeń.

Przegląd Single Sign-On (SSO) Internal Link

SSO, czyli single-sign-on, to zbiór konwencji używanych, aby umożliwić Tobie lub Twoim użytkownikom korzystanie z FastComments bez tworzenia kolejnego konta.

Zakładając, że nie dopuszczasz anonimowego komentowania, konto jest wymagane, aby komentować za pomocą FastComments. Upraszczamy ten proces rejestracji — użytkownik po prostu zostawia swój e-mail przy komentowaniu. Rozumiemy jednak, że nawet to może być dodatkową barierą, której niektóre serwisy chcą uniknąć.

Możemy zredukować to utrudnienie, stosując tylko jeden przepływ logowania dla całej Twojej witryny.

Jak to uzyskać?

Wszystkie typy kont obecnie mają dostęp do SSO. Jednak maksymalna liczba użytkowników SSO będzie się różnić w zależności od Twojego pakietu. Podobnie jak w przypadku innych funkcji, plany Pro i wyższe zapewniają bezpośrednie wsparcie deweloperskie.

Porównajmy opcje, a następnie przejdźmy do szczegółów każdej z nich.

Migracje użytkowników i komentarzy

Podczas migracji z platformy ze SSO, takiej jak Disqus, będziesz już mieć użytkowników i ich komentarze.

Komentarze są importowane w ramach migracji, albo przez API, nasze narzędzie Import UI, albo przez wsparcie klienta. Import UI jest preferowany, jeśli obsługuje platformę, z której migrujesz, ponieważ zawiera obsługę błędów, ekstrakcję i przesyłanie avatarów oraz mediów oraz system monitorowania zadań wsadowych.

Sami użytkownicy są dodawani automatycznie przy pierwszym wyświetleniu wątków komentarzy. Alternatywnie mogą być wcześniej dodani za pomocą API, ale takie działanie nie daje wielu korzyści.

Jeśli komentarze są importowane, a użytkownicy SSO nie zostaną dodani ręcznie przez API, to komentarze zostaną automatycznie przypisane do kont użytkowników w momencie, gdy konto zostanie utworzone po ich pierwszym wyświetleniu dowolnego wątku komentarzy. Wówczas będą mogli zarządzać, edytować i usuwać komentarze, które pierwotnie napisali.

Automatyczna migracja odbywa się za pomocą e-maila lub nazwy użytkownika. Niektóre platformy nie udostępniają e-maili podczas eksportu, jak Disqus, więc w takim przypadku używamy nazwy użytkownika jako zastępstwa.

  • Jeśli podasz pasującą nazwę użytkownika oraz e-mail w SSO payload, dodamy e-mail do poszczególnych obiektów komentarzy, aby powiadomienia i wzmianki działały.

Jeśli chcesz zaimportować komentarze i użytkowników jednocześnie, współpracuj ze wsparciem, aby przenieść komentarze do odpowiednich kont użytkowników po zaimportowaniu użytkowników przez API.

Podsumowując, najprostsza ścieżka migracji to:

  1. Import komentarzy.
    1. Avatary i inne media są migrowane automatycznie, jeśli używasz Import UI w Manage Data -> Imports.
  2. Skonfiguruj Secure lub Simple SSO.
  3. Pozwól, aby migracja odbyła się automatycznie dla każdego użytkownika przy jego pierwszym logowaniu.
    1. Zazwyczaj dodaje to mniej niż sekundę do czasu ładowania strony, jeśli użytkownik ma mniej niż 50k komentarzy.

Użytkownicy WordPress

Jeśli używasz naszej wtyczki WordPress, nie musisz pisać żadnego kodu! Po prostu przejdź do strony administracyjnej wtyczki, kliknij SSO Settings, a następnie Enable.

Spowoduje to uruchomienie kreatora z jednym przyciskiem, który utworzy Twój klucz API, wyśle go do Twojej instalacji WordPress i włączy SSO. Uprościliśmy to dla Ciebie do jednego kliknięcia.

Zwróć uwagę, że jeśli instalujesz wtyczkę po raz pierwszy, będziesz musiał przejść proces konfiguracji, zanim zobaczysz stronę administracyjną z przyciskiem SSO Settings.

WordPress SSO - Moderatorzy

Zauważ, że obecnie aby obok komentarzy Twoich moderatorów pojawiła się odznaka "Moderator" podczas komentowania przy użyciu wtyczki FastComments dla WordPress, musi on być również dodany jako Moderator w panelu FastComments oraz mieć zweryfikowany e-mail.

Integracje niestandardowe

Dla integracji niestandardowych istnieją dwie opcje.

Opcja pierwsza - Secure SSO

W przypadku Secure SSO FastComments wie, że użytkownik komentujący, głosujący i czytający komentarze jest prawdziwym użytkownikiem na Twojej stronie.

Jeśli utworzysz prawidłowy payload, użytkownik zawsze będzie miał płynne doświadczenie komentowania.

W Secure SSO payload SSO jest tworzony po stronie server-side przy użyciu uwierzytelniania HMAC, a następnie przekazywany do widżetu po stronie client.

W Secure SSO konto użytkownika jest całkowicie oddzielone od reszty bazy użytkowników FastComments. Oznacza to, że jeśli mamy dwóch partnerów Company A i Company B, każdy z nich może mieć użytkownika SSO o nazwie użytkownika "Bob".

Wymagania

  • Podstawowa wiedza z zakresu tworzenia backendu.
  • Podstawowa wiedza dotycząca obchodzenia się z tajnymi kluczami API.
  • Podstawowa wiedza dotycząca tworzenia API lub renderowania po stronie serwera.

Zalety

  • Bezpieczne.
  • Płynne doświadczenie komentowania.

Wady

  • Wymaga prac backendowych.

Aktualizowanie danych użytkownika

W Secure SSO za każdym razem, gdy przekażesz sso user payload, zaktualizujemy użytkownika do najnowszych informacji. Na przykład, jeśli użytkownik ma nazwę użytkownika X, a Ty przekażesz Y w SSO payload, jego nazwa użytkownika zmieni się na Y.

Jeśli chcesz usunąć wartości przy użyciu tego podejścia, ustaw je na null (nie undefined).

Secure SSO API

Udostępniamy również API do interakcji z użytkownikami SSO. Zobacz the docs.

Zwróć uwagę, że przy użyciu Secure SSO, użytkownicy są tworzeni automatycznie w tle podczas ładowania strony. Nie musisz masowo importować swoich użytkowników.

Opcja druga - Simple SSO

Alternatywą dla Secure SSO jest po prostu przekazanie informacji o użytkowniku do widżetu komentarzy.

Podanie e-maila przy Simple SSO nie jest wymagane, jednak bez niego ich komentarze będą wyświetlane jako "Unverified".

Uwaga! Od początku 2022 nazwy użytkowników w Simple SSO nie muszą być unikalne w całym serwisie FastComments.com.

Idealnie Simple SSO powinno być wybierane tylko podczas tworzenia na platformie, która nie daje dostępu do backendu.

Wymagania

  • Podstawowa wiedza z zakresu programowania po stronie klienta.
  • Znajomość przynajmniej e-maila użytkownika.

Zalety

  • Proste.
  • Wszystkie działania są nadal weryfikowane.
  • Użytkownik nigdy nie wprowadza swojej nazwy użytkownika ani e-maila.

Wady

  • Mniej bezpieczne niż Secure SSO, ponieważ payload po stronie klienta może być spreparowany, aby podszyć się pod dowolnego użytkownika.

Simple SSO API

Użytkownicy tworzeni automatycznie przez przepływ Simple SSO są przechowywani jako obiekty SSOUser. Można uzyskać do nich dostęp i nimi zarządzać za pomocą API SSOUser. Zobacz the docs.

Integracje niestandardowe — proste Single Sign-On (SSO) Internal Link


Dzięki Simple SSO możemy dostarczyć widgetowi komentarzy informacje o użytkowniku, aby nie musiał podawać swojej nazwy użytkownika ani adresu e-mail, aby skomentować.

Możemy skonfigurować Simple SSO w następujący sposób:

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

Użytkownik zostanie zalogowany i za kulisami zostanie utworzony użytkownik SSO. Użytkownik będzie miał ustawione createdFromSimpleSSO na true, jeśli zostanie pobrany z API.

Notes:

  • E-mail jest unikalnym identyfikatorem dla Simple SSO.
  • Podanie adresu e-mail przy Simple SSO nie jest wymagane, jednak domyślnie ich komentarze będą wyświetlane jako "Niezweryfikowany". Jeśli nie zostanie podany adres e-mail, użytkownik nie może zostać w pełni uwierzytelniony.
  • NOWOŚĆ Od stycznia 2022: Nazwy użytkowników nie muszą być unikalne w całym fastcomments.com
  • Simple SSO może automatycznie tworzyć i aktualizować użytkowników SSO, jeśli podany jest adres e-mail i użytkownik nie został pierwotnie utworzony przez Secure SSO.
  • Możesz określić odznaki dla użytkownika za pomocą właściwości badgeConfig. Tablica badgeIds zawiera identyfikatory odznak, które mają być powiązane z użytkownikiem. Jeśli override jest ustawione na true, zastąpi wszystkie istniejące odznaki wyświetlane przy komentarzach; jeśli false, doda je do istniejących odznak.

Integracje niestandardowe — migracja z Disqus SSO Internal Link

Największe różnice między Disqus a FastComments Secure SSO polegają na tym, że Disqus używa SHA1 do szyfrowania, podczas gdy my używamy SHA256. Oznacza to, że migracja z Disqus jest prosta - zmień używany algorytm skrótu z SHA1 na SHA256 i zaktualizuj nazwy właściwości przekazywanych do UI.

Integracje niestandardowe — migracja z Commento SSO Internal Link

Commento używa radykalnie innego podejścia do SSO - wymagają udostępnienia punktu końcowego, który wywołują w celu uwierzytelnienia użytkownika.

FastComments działa odwrotnie - po prostu zakoduj i oblicz skrót informacji o użytkowniku przy użyciu swojego klucza tajnego i przekaż je dalej.

Wywołania zwrotne Internal Link

Wszystkie biblioteki dla widżetu komentarzy (obecnie Angular, React, Vue) obsługują wywołania zwrotne.

Wywołania zwrotne są określane w obiekcie konfiguracji, z tym samym podpisem dla każdej biblioteki.

Wywołania zwrotne obsługiwane to:

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

Dokładne sygnatury można znaleźć w definicjach TypeScript.

Oto przykład z użyciem wszystkich wywołań zwrotnych:

Przykłady wywołań zwrotnych
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; // zwróć true, aby zapobiec domyślnemu zachowaniu (otwieraniu profilu użytkownika na fastcomments.com).
31 },
32 onCommentSubmitStart: function(comment, continueSubmitFn, cancelFn) {
33 console.log('Trying to submit comment', comment);
34 setTimeout(function() { // symulowanie zachowania asynchronicznego (wywoływanie API itp.).
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 są posortowane według domyślnego sortowania na stronie, które może być Najbardziej istotne (np. najbardziej głosowane itp.), lub Najnowsze najpierw
44 const topCommentInList = comments[0];
45 console.log('First Comment Rendered:', topCommentInList.avatarSrc, topCommentInList.commenterName, topCommentInList.commentHTML);
46 }
47 });
48</script>
49

Tytuły stron Internal Link


Aktualny tytuł strony jest powiązany ze wskazanym urlId i zapisany do wykorzystania w narzędziach moderacji.

Domyślnie jest pobierany z document.title.

Jeżeli chcesz, możesz określić własny tytuł strony w następujący sposób:

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

Liczba komentarzy i zliczanie wszystkich zagnieżdżonych odpowiedzi Internal Link

Liczba komentarzy wyświetlana u góry widżetu komentarzy może albo pokazywać wszystkie "top-level" komentarze, czyli te odpowiedzi, które są odpowiedziami bezpośrednio do strony lub artykułu, albo może być liczbą wszystkich zagnieżdżonych komentarzy.

Domyślnie jest to true - jest to liczba tej drugiej kategorii - wszystkich komentarzy. W starszych wersjach widżetu komentarzy wartością domyślną jest false.

Możemy zmienić zachowanie, tak aby była to liczba wszystkich zagnieżdżonych komentarzy, ustawiając flagę countAll na 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

Jeśli chcielibyśmy, aby liczba odzwierciedlała tylko komentarze najwyższego poziomu, ustawiamy flagę na 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

Obecnie nie można tego dostosować bez zmiany kodu.


Identyfikatory grup do wzmiankowania Internal Link

Lista identyfikatorów do użycia w autouzupełnianiu @mentions. Przydatne, gdy chcesz zapobiec oznaczaniu użytkowników, którzy nie mają wspólnych grup.

Jeśli zostanie określone, w autouzupełnianiu będą wyświetlani tylko użytkownicy z innych grup po wpisaniu znaku @.

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