FastComments.com

FastComments Java SDK

Questo è l'SDK Java ufficiale di FastComments.

SDK Java ufficiale per l'API di FastComments

Repository

Visualizza su GitHub

Agenti di codifica AI Internal Link

skills.sh

Fornisci al tuo agente di codifica il contesto FastComments di cui ha bisogno - widget, configurazione, Secure SSO, l'API REST e gli SDK:

npx skills add fastcomments/skills

Funziona con Claude Code, Codex, Cursor, Copilot, Gemini e tutti gli altri agenti supportati dal skills CLI.

Installazione Internal Link

Maven

Aggiungi il repository Repsy al POM del tuo progetto:

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

Quindi aggiungi le dipendenze di cui hai bisogno:

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

Gradle

Aggiungi il repository Repsy al tuo file build.gradle:

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

dependencies {
    // API Client
    implementation "com.fastcomments:client:3.1.1"
    
    // Core Library (include SSO)
    implementation "com.fastcomments:core:3.1.1"
    
    // PubSub Library (per eventi live)
    implementation "com.fastcomments:pubsub:3.1.1"
}

Contenuto della Libreria

Questa libreria contiene tre moduli: il client API generato, la libreria Java core che contiene utilità scritte a mano per semplificare l'interazione con l'API, e il modulo pubsub che è una libreria per sottoscriversi ai feed di modifiche.

API Pubbliche vs API Protette

Per il client API, esistono tre classi: DefaultApi, PublicApi e ModerationApi. La DefaultApi contiene metodi che richiedono la tua API key, mentre la PublicApi contiene metodi che possono essere invocati direttamente da un browser/dispositivo mobile/ecc senza autenticazione.

La ModerationApi fornisce un'ampia suite di API di moderazione live e veloci. Ogni metodo di ModerationApi accetta un parametro sso e può autenticarsi tramite SSO o un cookie di sessione di FastComments.com.

Avvio rapido Internal Link

Utilizzo delle API Autenticate (DefaultApi)

Importante: Devi impostare la tua API key su ApiClient prima di effettuare richieste autenticate. Se non lo fai, le richieste falliranno con un errore 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) {
        // Crea e configura il client API
        ApiClient apiClient = new ApiClient();

        // OBBLIGATORIO: Imposta la tua API key (prendila dalla dashboard di FastComments)
        apiClient.setApiKey("YOUR_API_KEY_HERE");

        // Crea l'istanza API con il client configurato
        DefaultApi api = new DefaultApi(apiClient);

        // Ora puoi effettuare chiamate API autenticate
        try {
            // Esempio: Aggiungi un utente 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());
            // Errori comuni:
            // - 401: Mancante o invalida API key
            // - 400: La validazione della richiesta è fallita
        }
    }
}

Utilizzo delle API Pubbliche (PublicApi)

Gli endpoint pubblici non richiedono autenticazione:

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

Utilizzo delle API di Moderazione (ModerationApi)

La ModerationApi gestisce la dashboard dei moderatori. Ogni metodo accetta un parametro sso che identifica il moderatore autenticato via SSO per conto del quale viene effettuata la richiesta:

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

ModerationApi moderationApi = new ModerationApi();

try {
    // Elenca i commenti in attesa di moderazione
    ModerationAPIGetCommentsResponse response = moderationApi.getApiComments()
        .sso("YOUR_SSO_TOKEN")
        .execute();
    System.out.println(response);
} catch (ApiException e) {
    e.printStackTrace();
}

Problemi comuni

  1. 401 "missing-api-key" error: Assicurati di chiamare apiClient.setApiKey("YOUR_KEY") prima di creare l'istanza DefaultApi.
  2. Classe API errata: Usa DefaultApi per richieste autenticate lato server, PublicApi per richieste client-side/pubbliche.
  3. Null API key: L'SDK salterà silenziosamente l'autenticazione se la API key è null, causando errori 401.

Note Internal Link

ID di broadcast

Vedrai che dovrai passare un broadcastId in alcune chiamate API. Quando riceverai eventi, ti verrà restituito questo ID, così saprai di ignorare l'evento se prevedi di applicare le modifiche in modo ottimistico sul client (probabilmente vorrai farlo, perché offre la migliore esperienza). Passa un UUID qui. L'ID dovrebbe essere sufficientemente unico da non ripetersi due volte durante una sessione del browser.

Hai bisogno di aiuto?

Se riscontri problemi o hai domande sul Java SDK, per favore:

Contribuire

I contributi sono benvenuti! Consulta il repository GitHub per le linee guida per contribuire.