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


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>2.0.0</version>
    </dependency>
    
    <!-- Kernbibliothek (enthält SSO) -->
    <dependency>
        <groupId>com.fastcomments</groupId>
        <artifactId>core</artifactId>
        <version>2.0.0</version>
    </dependency>
    
    <!-- PubSub-Bibliothek (für Live-Ereignisse) -->
    <dependency>
        <groupId>com.fastcomments</groupId>
        <artifactId>pubsub</artifactId>
        <version>2.0.0</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:2.0.0"
    
    // Kernbibliothek (enthält SSO)
    implementation "com.fastcomments:core:2.0.0"
    
    // PubSub-Bibliothek (für Live-Ereignisse)
    implementation "com.fastcomments:pubsub:2.0.0"
}

Bibliotheksinhalte

Diese Bibliothek enthält drei Module. Den generierten API-Client, die Core-Java-Bibliothek, die manuell geschriebene Hilfsfunktionen enthält, um die Arbeit mit der API zu erleichtern, und das pubsub-Modul, das eine Bibliothek zum Abonnieren von Änderungsfeeds ist.

Ö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 erfordern, und PublicApi enthält Methoden, die direkt aus einem Browser/Mobilgerät/etc. ohne Authentifizierung aufgerufen werden können.

Die ModerationApi treibt das Moderatoren-Dashboard an. Sie enthält Methoden zur Kommentar-Moderation (auflisten, zählen, suchen, Protokolle und Export), Moderationsaktionen (entfernen/wiederherstellen, markieren, Überprüfungs-/Spam-/Genehmigungsstatus setzen, Stimmen und Thread wieder öffnen/schließen), Sperren (vom Kommentieren ausschließen, Sperre rückgängig machen, Zusammenfassungen vor Sperren, Sperrstatus und -einstellungen sowie Anzahl gesperrter Benutzer) und Abzeichen & Vertrauen (Abzeichen vergeben/entfernen, manuelle Abzeichen, Vertrauensfaktor abrufen/setzen und internes Benutzerprofil). Jede ModerationApi-Methode akzeptiert einen sso-Parameter, sodass der Aufruf im Namen eines per SSO authentifizierten Moderators ausgeführt werden kann.

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

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