FastComments.com

FastComments Java SDK


To jest oficjalne SDK Java dla FastComments.

Oficjalne SDK Java dla API FastComments

Repozytorium

Zobacz na GitHub


Instalacja Internal Link

Maven

Dodaj repozytorium Repsy do pliku POM swojego projektu:

<repositories>
    <repository>
        <id>repsy</id>
        <name>FastComments Maven Repository on Repsy</name>
        <url>https://repo.repsy.io/mvn/winrid/fastcomments</url>
    </repository>
</repositories>

Następnie dodaj wymagane zależności:

<dependencies>
    <!-- API Client -->
    <dependency>
        <groupId>com.fastcomments</groupId>
        <artifactId>client</artifactId>
        <version>2.0.0</version>
    </dependency>
    
    <!-- Core Library (includes SSO) -->
    <dependency>
        <groupId>com.fastcomments</groupId>
        <artifactId>core</artifactId>
        <version>2.0.0</version>
    </dependency>
    
    <!-- PubSub Library (for live events) -->
    <dependency>
        <groupId>com.fastcomments</groupId>
        <artifactId>pubsub</artifactId>
        <version>2.0.0</version>
    </dependency>
</dependencies>

Gradle

Dodaj repozytorium Repsy do pliku build.gradle:

repositories {
    mavenCentral()
    maven {
        url "https://repo.repsy.io/mvn/winrid/fastcomments"
    }
}

dependencies {
    // API Client
    implementation "com.fastcomments:client:2.0.0"
    
    // Core Library (includes SSO)
    implementation "com.fastcomments:core:2.0.0"
    
    // PubSub Library (for live events)
    implementation "com.fastcomments:pubsub:2.0.0"
}

Library Contents

Ta biblioteka zawiera trzy moduły. Wygenerowany klient API, biblioteka core w Javie, która zawiera ręcznie napisane narzędzia ułatwiające pracę z API, oraz moduł pubsub, który jest biblioteką do subskrybowania strumieni zmian.

Public vs Secured APIs

Dla klienta API istnieją trzy klasy: DefaultApi, PublicApi oraz ModerationApi. DefaultApi zawiera metody, które wymagają Twojego klucza API, a PublicApi zawiera metody, które można wywołać bezpośrednio z przeglądarki/urządzenia mobilnego itp. bez uwierzytelniania.

ModerationApi zasila panel moderatora. Zawiera metody do moderacji komentarzy (lista, zliczanie, wyszukiwanie, logi i eksport), akcje moderacji (usuwanie/przywracanie, oznaczanie, ustawianie statusu do weryfikacji/spam/akceptacja, głosowanie oraz ponowne otwieranie/zamykanie wątku), blokady (zablokowanie komentowania, cofnięcie blokady, podsumowania przed blokadą, status i preferencje blokady oraz liczba zablokowanych użytkowników) oraz odznaki i zaufanie (przyznawanie/usuwanie odznaki, odznaki ręczne, pobieranie/ustawianie współczynnika zaufania oraz wewnętrzny profil użytkownika). Każda metoda ModerationApi przyjmuje parametr sso, dzięki czemu wywołanie może zostać wykonane w imieniu moderatora uwierzytelnionego przez SSO.

Quick Start Internal Link

Korzystanie z uwierzytelnionych interfejsów API (DefaultApi)

Ważne: Musisz ustawić swój klucz API w ApiClient przed wykonywaniem uwierzytelnionych żądań. Jeśli tego nie zrobisz, żądania zakończą się błędem 401.

import com.fastcomments.invoker.ApiClient;
import com.fastcomments.invoker.ApiException;
import com.fastcomments.api.DefaultApi;
import com.fastcomments.model.*;

public class Example {
    public static void main(String[] args) {
        // Utwórz i skonfiguruj klienta API
        ApiClient apiClient = new ApiClient();

        // WYMAGANE: Ustaw swój klucz API (pobierz go z pulpitu FastComments)
        apiClient.setApiKey("YOUR_API_KEY_HERE");

        // Utwórz instancję API z skonfigurowanym klientem
        DefaultApi api = new DefaultApi(apiClient);

        // Teraz możesz wykonywać uwierzytelnione wywołania API
        try {
            // Przykład: Dodaj użytkownika SSO
            CreateAPISSOUserData userData = new CreateAPISSOUserData();
            userData.setId("user-123");
            userData.setEmail("user@example.com");
            userData.setDisplayName("John Doe");

            AddSSOUserAPIResponse response = api.addSSOUser("YOUR_TENANT_ID", userData)
                .execute();
            System.out.println("User created: " + response);

        } catch (ApiException e) {
            System.err.println("Error: " + e.getResponseBody());
            // Typowe błędy:
            // - 401: brak klucza API lub jest nieprawidłowy
            // - 400: walidacja żądania nie powiodła się
        }
    }
}

Korzystanie z publicznych API (PublicApi)

Publiczne endpointy nie wymagają uwierzytelnienia:

import com.fastcomments.api.PublicApi;
import com.fastcomments.invoker.ApiException;

PublicApi publicApi = new PublicApi();

try {
    var response = publicApi.getCommentsPublic("YOUR_TENANT_ID", "page-url-id")
        .execute();
    System.out.println(response);
} catch (ApiException e) {
    e.printStackTrace();
}

Korzystanie z API moderacji (ModerationApi)

ModerationApi napędza panel moderatora. Każda metoda akceptuje parametr sso, identyfikujący moderatora uwierzytelnionego przez SSO, w imieniu którego wykonywane jest żądanie:

import com.fastcomments.api.ModerationApi;
import com.fastcomments.invoker.ApiException;
import com.fastcomments.model.*;

ModerationApi moderationApi = new ModerationApi();

try {
    // Wyświetl komentarze oczekujące na moderację
    ModerationAPIGetCommentsResponse response = moderationApi.getApiComments()
        .sso("YOUR_SSO_TOKEN")
        .execute();
    System.out.println(response);
} catch (ApiException e) {
    e.printStackTrace();
}

Typowe problemy

  1. 401 "missing-api-key" error: Upewnij się, że wywołujesz apiClient.setApiKey("YOUR_KEY") przed utworzeniem instancji DefaultApi.
  2. Wrong API class: Używaj DefaultApi do uwierzytelnionych żądań po stronie serwera, PublicApi do żądań po stronie klienta/publicznych.
  3. Null API key: SDK pominie uwierzytelnianie bez komunikatu, jeśli klucz API jest null, co prowadzi do błędów 401.

Notatki Internal Link

Identyfikatory broadcastów

Zobaczysz, że w niektórych wywołaniach API powinieneś przekazać broadcastId. Kiedy otrzymasz zdarzenia, otrzymasz z powrotem ten identyfikator, dzięki czemu będziesz wiedział, aby zignorować zdarzenie jeśli planujesz optymistycznie zastosować zmiany po stronie klienta (czego prawdopodobnie zechcesz zrobić, ponieważ daje to najlepsze doświadczenie). Przekaż tutaj UUID. Identyfikator powinien być na tyle unikalny, by nie pojawił się dwukrotnie w sesji przeglądarki.

Potrzebujesz pomocy?

Jeśli napotkasz jakiekolwiek problemy lub będziesz mieć pytania dotyczące Java SDK, prosimy:

Współtworzenie

Wkład jest mile widziany! Prosimy odwiedzić repozytorium GitHub po wytyczne dotyczące kontrybucji.