FastComments.com

FastComments Java SDK

Dette er den officielle Java SDK til FastComments.

Officiel Java SDK til FastComments API

Repository

Se på GitHub


Installation Internal Link

Maven

Tilføj Repsy-arkivet til dit projekts POM:

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

Tilføj derefter de afhængigheder, du har brug for:

<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

Tilføj Repsy-arkivet til din build.gradle-fil:

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"
}

Bibliotekets indhold

Dette bibliotek indeholder tre moduler. Den genererede API-klient, det centrale Java-bibliotek som indeholder håndskrevne værktøjer til at gøre arbejdet med API'et lettere, og pubsub-modulet som er et bibliotek til abonnement på ændringsfeeds.

Offentlige vs. Sikrede API'er

For API-klienten er der tre klasser, DefaultApi, PublicApi, og ModerationApi. DefaultApi indeholder metoder, der kræver din API-nøgle, og PublicApi indeholder metoder der kan kaldes direkte fra en browser/mobile enhed/etc uden autentificering.

ModerationApi driver moderatorens kontrolpanel. Den indeholder metoder til kommentarmoderation (liste, optælling, søgning, logfiler, og eksport), moderatorhandlinger (fjern/gendan, flag, sæt gennemgang/spam/godkendelsesstatus, stemmer, og genåbn/luk tråd), udelukkelser (udeluk fra at kommentere, fortryd en udelukkelse, forud-udelukkelsesresuméer, udelukkelsesstatus og præferencer, og antal udelukkede brugere), og badges & tillid (tildel/fjern et badge, manuelle badges, hent/sæt tillidsfaktor, og brugerens interne profil). Hver ModerationApi-metode accepterer en sso-parameter så kaldet kan være udført på vegne af en SSO-autentificeret moderator.

Kom godt i gang Internal Link

Brug af autentificerede API'er (DefaultApi)

Vigtigt: Du skal angive din API-nøgle på ApiClient før du foretager autentificerede forespørgsler. Hvis du ikke gør det, vil forespørgsler fejle med en 401-fejl.

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) {
        // Opret og konfigurer API-klienten
        ApiClient apiClient = new ApiClient();

        // PÅKRÆVET: Angiv din API-nøgle (hent den fra dit FastComments-dashboard)
        apiClient.setApiKey("YOUR_API_KEY_HERE");

        // Opret API-instansen med den konfigurerede klient
        DefaultApi api = new DefaultApi(apiClient);

        // Nu kan du lave autentificerede API-kald
        try {
            // Eksempel: Tilføj en SSO-bruger
            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());
            // Almindelige fejl:
            // - 401: API-nøgle mangler eller er ugyldig
            // - 400: Validering af forespørgsel mislykkedes
        }
    }
}

Brug af offentlige API'er (PublicApi)

Offentlige endepunkter kræver ikke autentificering:

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

Brug af Moderation APIs (ModerationApi)

The ModerationApi drives the moderator dashboard. Each method accepts an sso parameter identifying the SSO-authenticated moderator on whose behalf the request is made:

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

ModerationApi moderationApi = new ModerationApi();

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

Almindelige problemer

  1. 401 "missing-api-key" fejl: Sørg for, at du kalder apiClient.setApiKey("YOUR_KEY") før du opretter DefaultApi-instansen.
  2. Forkert API-klasse: Brug DefaultApi til server-side autentificerede forespørgsler, PublicApi til klient-side/offentlige forespørgsler.
  3. Null API-nøgle: SDK'en vil stilfærdigt springe autentificering over, hvis API-nøglen er null, hvilket fører til 401-fejl.

Noter Internal Link

Broadcast-id'er

Du vil se, at du skal sende en broadcastId i nogle API-kald. Når du modtager begivenheder, får du dette ID tilbage, så du kan ignorere begivenheden, hvis du planlægger at anvende ændringer optimistisk på klienten (hvilket du sandsynligvis vil gøre, da det giver den bedste oplevelse). Angiv en UUID her. ID'en skal være unik nok til ikke at forekomme to gange i samme browser-session.


Brug for hjælp?

Hvis du støder på problemer eller har spørgsmål om Java SDK'en, så:

Bidrag

Bidrag er velkomne! Besøg venligst GitHub-repositoriet for retningslinjer for bidrag.