FastComments.com

FastComments Java SDK


Dit is de officiële Java SDK voor FastComments.

Officiële Java SDK voor de FastComments API

Repository

Bekijk op GitHub


Installatie Internal Link

Maven

Voeg de Repsy-repository toe aan de POM van je project:

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

Voeg daarna de benodigde dependencies toe:

<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

Voeg de Repsy-repository toe aan je build.gradle-bestand:

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

Deze bibliotheek bevat drie modules. De gegenereerde API-client, de core Java-bibliotheek die handgeschreven hulpprogramma's bevat om het werken met de API te vergemakkelijken, en de pubsub-module die een bibliotheek is voor het abonneren op wijzigingsfeeds.

Public vs Secured APIs

Voor de API-client zijn er drie klassen, DefaultApi, PublicApi en ModerationApi. De DefaultApi bevat methoden die je API-sleutel vereisen, en PublicApi bevat methoden die direct vanuit een browser/mobiel apparaat/etc kunnen worden aangeroepen zonder authenticatie.

De ModerationApi verzorgt het moderator-dashboard. Het bevat methoden voor commentaarmoderatie (lijst, aantal, zoeken, logboeken en export), moderatie-acties (verwijderen/terugzetten, markeren, review/spam/goedkeuringsstatus instellen, stemmen en draad heropenen/sluiten), bans (verbieden van commentaar, een ban ongedaan maken, pre-ban-samenvattingen, ban-status en voorkeuren, en tellingen van gebande gebruikers), en badges & vertrouwen (een badge toekennen/verwijderen, handmatige badges, trust factor ophalen/instellen en interne gebruikersprofiel). Elke ModerationApi-methode accepteert een sso-parameter zodat de oproep namens een via SSO geauthenticeerde moderator kan worden uitgevoerd.

Snelstart Internal Link

Gebruik van geauthenticeerde API's (DefaultApi)

Belangrijk: Je moet je API-sleutel instellen op de ApiClient voordat je geauthenticeerde verzoeken doet. Als je dat niet doet, zullen verzoeken mislukken met een 401-fout.

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) {
        // Create and configure the API client
        ApiClient apiClient = new ApiClient();

        // REQUIRED: Set your API key (get this from your FastComments dashboard)
        apiClient.setApiKey("YOUR_API_KEY_HERE");

        // Create the API instance with the configured client
        DefaultApi api = new DefaultApi(apiClient);

        // Now you can make authenticated API calls
        try {
            // Example: Add an SSO user
            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());
            // Common errors:
            // - 401: API key is missing or invalid
            // - 400: Request validation failed
        }
    }
}

Gebruik van publieke API's (PublicApi)

Publieke endpoints vereisen geen authenticatie:

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

Gebruik van moderatie-API's (ModerationApi)

De ModerationApi stuurt het moderator-dashboard aan. Elke methode accepteert een sso-parameter die de SSO-geauthenticeerde moderator identificeert namens wie het verzoek wordt gedaan:

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

ModerationApi moderationApi = new ModerationApi();

try {
    // List comments awaiting moderation
    ModerationAPIGetCommentsResponse response = moderationApi.getApiComments()
        .sso("YOUR_SSO_TOKEN")
        .execute();
    System.out.println(response);
} catch (ApiException e) {
    e.printStackTrace();
}

Veelvoorkomende problemen

  1. 401 "missing-api-key" error: Zorg ervoor dat je apiClient.setApiKey("YOUR_KEY") aanroept voordat je de DefaultApi-instantie aanmaakt.
  2. Verkeerde API-klasse: Gebruik DefaultApi voor server-side geauthenticeerde verzoeken, PublicApi voor client-side/publieke verzoeken.
  3. Null API key: De SDK zal authenticatie stilzwijgend overslaan als de API-sleutel null is, wat leidt tot 401-fouten.

Notities Internal Link

Broadcast-id's

Je zult zien dat je in sommige API-aanroepen een broadcastId moet meegeven. Wanneer je events ontvangt, krijg je deze ID terug, zodat je het event kunt negeren als je van plan bent wijzigingen optimistisch aan de client toe te passen (wat je waarschijnlijk zult willen doen omdat dit de beste gebruikerservaring biedt). Geef hier een UUID mee. De ID moet uniek genoeg zijn om niet twee keer in een browsersessie voor te komen.

Hulp nodig?

Als u problemen ondervindt of vragen hebt over de Java SDK, doe dan het volgende:

Bijdragen

Bijdragen zijn welkom! Bezoek de GitHub repository voor richtlijnen voor bijdragen.