FastComments.com

FastComments Java SDK

To jest oficjalne SDK Java dla FastComments.

Oficjalne SDK Java dla API FastComments

Repozytorium

Zobacz na GitHub

Agenci kodowania AI Internal Link

skills.sh

Daj swojemu agentowi programistycznemu kontekst FastComments, którego potrzebuje – widgety, konfiguracja, Secure SSO, REST API i SDK:

npx skills add fastcomments/skills

Działa z Claude Code, Codex, Cursor, Copilot, Gemini oraz każdym innym agentem obsługiwanym przez skills CLI.

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 potrzebne zależności:

<dependencies>
    <!-- Klient API -->
    <dependency>
        <groupId>com.fastcomments</groupId>
        <artifactId>client</artifactId>
        <version>3.1.1</version>
    </dependency>
    
    <!-- Biblioteka Core (zawiera SSO) -->
    <dependency>
        <groupId>com.fastcomments</groupId>
        <artifactId>core</artifactId>
        <version>3.1.1</version>
    </dependency>
    
    <!-- Biblioteka PubSub (dla zdarzeń na żywo) -->
    <dependency>
        <groupId>com.fastcomments</groupId>
        <artifactId>pubsub</artifactId>
        <version>3.1.1</version>
    </dependency>
</dependencies>

Gradle

Dodaj repozytorium Repsy do pliku build.gradle:

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

dependencies {
    // Klient API
    implementation "com.fastcomments:client:3.1.1"
    
    // Biblioteka Core (zawiera SSO)
    implementation "com.fastcomments:core:3.1.1"
    
    // Biblioteka PubSub (dla zdarzeń na żywo)
    implementation "com.fastcomments:pubsub:3.1.1"
}

Zawartość biblioteki

Ta biblioteka zawiera trzy moduły: wygenerowanego klienta API, podstawową bibliotekę Java zawierającą ręcznie pisane narzędzia ułatwiające pracę z API oraz moduł pubsub, który jest biblioteką do subskrybowania kanałów zmian.

API publiczne vs zabezpieczone

W przypadku klienta API dostępne są trzy klasy: DefaultApi, PublicApi i ModerationApi. Klasa DefaultApi zawiera metody wymagające klucza API, a PublicApi zawiera metody, które mogą być wywoływane bezpośrednio z przeglądarki/urządzenia mobilnego itp. bez uwierzytelniania.

Klasa ModerationApi zapewnia rozbudowany zestaw szybkich API do moderacji na żywo. Każda metoda ModerationApi przyjmuje parametr sso i może uwierzytelniać za pomocą SSO lub ciasteczka sesji FastComments.com.

Szybki 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.