FastComments.com

FastComments Java SDK

Dies ist das offizielle Java-SDK für FastComments.

Offizielles Java-SDK für die FastComments-API

Repository

Auf GitHub ansehen

AI coding agents Internal Link

skills.sh

Geben Sie Ihrem Coding‑Agent den FastComments‑Kontext, den er benötigt – Widgets, Konfiguration, Secure SSO, die REST‑API und die SDKs:

npx skills add fastcomments/skills

Funktioniert mit Claude Code, Codex, Cursor, Copilot, Gemini und jedem anderen Agenten, den das skills CLI unterstützt.

Installation Internal Link

Maven

Fügen Sie das Repsy-Repository zur POM Ihres Projekts hinzu:

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

Fügen Sie dann die benötigten Abhängigkeiten hinzu:

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

Gradle

Fügen Sie das Repsy-Repository zu Ihrer build.gradle-Datei hinzu:

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

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

Inhalt der Bibliothek

Diese Bibliothek enthält drei Module: den generierten API-Client, die Core-Java-Bibliothek mit handgeschriebenen Hilfsfunktionen zur Vereinfachung der Arbeit mit der API sowie das pubsub-Modul, eine Bibliothek zum Abonnieren von Change-Feeds.

Öffentliche vs. gesicherte APIs

Für den API-Client gibt es drei Klassen: DefaultApi, PublicApi und ModerationApi. Die DefaultApi enthält Methoden, die Ihren API-Schlüssel benötigen, und die PublicApi enthält Methoden, die direkt aus einem Browser/Mobilgerät/etc. ohne Authentifizierung aufgerufen werden können.

Die ModerationApi bietet eine umfangreiche Suite an Live- und schnellen Moderations-APIs. Jede ModerationApi-Methode akzeptiert einen sso-Parameter und kann sich über SSO oder ein FastComments.com-Session-Cookie authentifizieren.

Quick Start Internal Link

Verwendung authentifizierter APIs (DefaultApi)

Wichtig: Sie müssen Ihren API-Schlüssel im ApiClient setzen, bevor Sie authentifizierte Anfragen durchführen. Wenn Sie das nicht tun, schlagen Anfragen mit einem 401-Fehler fehl.

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) {
        // Erstellen und konfigurieren Sie den API-Client
        ApiClient apiClient = new ApiClient();

        // ERFORDERLICH: Setzen Sie Ihren API-Schlüssel (diesen erhalten Sie im FastComments-Dashboard)
        apiClient.setApiKey("YOUR_API_KEY_HERE");

        // Erstellen Sie die API-Instanz mit dem konfigurierten Client
        DefaultApi api = new DefaultApi(apiClient);

        // Jetzt können Sie authentifizierte API-Aufrufe tätigen
        try {
            // Beispiel: Einen SSO-Benutzer hinzufügen
            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());
            // Häufige Fehler:
            // - 401: API-Schlüssel fehlt oder ist ungültig
            // - 400: Anfragevalidierung fehlgeschlagen
        }
    }
}

Verwendung öffentlicher APIs (PublicApi)

Öffentliche Endpunkte benötigen keine Authentifizierung:

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();
}

Verwendung der Moderations-APIs (ModerationApi)

Die ModerationApi steuert das Moderatoren-Dashboard. Jede Methode akzeptiert einen sso-Parameter, der den SSO-authentifizierten Moderator identifiziert, in dessen Namen die Anfrage gestellt wird:

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

ModerationApi moderationApi = new ModerationApi();

try {
    // Kommentare auflisten, die auf Moderation warten
    ModerationAPIGetCommentsResponse response = moderationApi.getApiComments()
        .sso("YOUR_SSO_TOKEN")
        .execute();
    System.out.println(response);
} catch (ApiException e) {
    e.printStackTrace();
}

Häufige Probleme

  1. 401 "missing-api-key" error: Stellen Sie sicher, dass Sie apiClient.setApiKey("YOUR_KEY") aufrufen, bevor Sie die DefaultApi-Instanz erstellen.
  2. Falsche API-Klasse: Verwenden Sie DefaultApi für serverseitige authentifizierte Anfragen, PublicApi für clientseitige/öffentliche Anfragen.
  3. Null-API-Schlüssel: Das SDK überspringt die Authentifizierung stillschweigend, wenn der API-Schlüssel null ist, was zu 401-Fehlern führt.

Notes Internal Link

Broadcast-IDs

Du wirst sehen, dass du in einigen API-Aufrufen ein broadcastId übergeben sollst. Wenn du Ereignisse empfängst, erhältst du diese ID zurück, damit du das Ereignis ignorieren kannst, falls du Änderungen optimistisch auf dem Client (was du vermutlich tun möchtest, da es die beste Benutzererfahrung bietet). Übergebe hier eine UUID. Die ID sollte so eindeutig sein, dass sie in einer Browsersitzung nicht zweimal vorkommt.

Benötigen Sie Hilfe?

Wenn Sie auf Probleme stoßen oder Fragen zum Java SDK haben, bitte:

Mitwirken

Beiträge sind willkommen! Bitte besuchen Sie das GitHub-Repository für Richtlinien zur Beitragserstellung.