FastComments.com

SDK de FastComments para Java


Esto es el SDK oficial de Java para FastComments.

SDK oficial de Java para la API de FastComments

Repositorio

Ver en GitHub


Instalación Internal Link

Maven

Add the Repsy repository to your project's POM:

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

Then add the dependencies you need:

<dependencies>
    <!-- Cliente de la API -->
    <dependency>
        <groupId>com.fastcomments</groupId>
        <artifactId>client</artifactId>
        <version>2.0.0</version>
    </dependency>
    
    <!-- Biblioteca Core (incluye SSO) -->
    <dependency>
        <groupId>com.fastcomments</groupId>
        <artifactId>core</artifactId>
        <version>2.0.0</version>
    </dependency>
    
    <!-- Biblioteca PubSub (para eventos en vivo) -->
    <dependency>
        <groupId>com.fastcomments</groupId>
        <artifactId>pubsub</artifactId>
        <version>2.0.0</version>
    </dependency>
</dependencies>

Gradle

Add the Repsy repository to your build.gradle file:

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

dependencies {
    // Cliente de la API
    implementation "com.fastcomments:client:2.0.0"
    
    // Biblioteca Core (incluye SSO)
    implementation "com.fastcomments:core:2.0.0"
    
    // Biblioteca PubSub (para eventos en vivo)
    implementation "com.fastcomments:pubsub:2.0.0"
}

Library Contents

This library contains three modules. The generated API client, the core Java library which contains hand-written utilities to make working with the API easier, and the pubsub module which is a library for subscribing to change feeds.

Public vs Secured APIs

For the API client, there are three classes, DefaultApi, PublicApi, and ModerationApi. The DefaultApi contains methods that require your API key, and PublicApi contains methods that can be made directly from a browser/mobile device/etc without authentication.

The ModerationApi powers the moderator dashboard. It contains methods for comment moderation (list, count, search, logs, and export), moderation actions (remove/restore, flag, set review/spam/approval status, votes, and reopen/close thread), bans (ban from comment, undo a ban, pre-ban summaries, ban status and preferences, and banned-user counts), and badges & trust (award/remove a badge, manual badges, get/set trust factor, and user internal profile). Every ModerationApi method accepts an sso parameter so the call can be performed on behalf of an SSO-authenticated moderator.

Inicio rápido Internal Link

Uso de APIs autenticadas (DefaultApi)

Importante: Debes establecer tu clave API en el ApiClient antes de realizar solicitudes autenticadas. Si no lo haces, las solicitudes fallarán con un error 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) {
        // Crear y configurar el cliente de API
        ApiClient apiClient = new ApiClient();

        // OBLIGATORIO: Establece tu clave API (consíguela desde el panel de FastComments)
        apiClient.setApiKey("YOUR_API_KEY_HERE");

        // Crea la instancia de la API con el cliente configurado
        DefaultApi api = new DefaultApi(apiClient);

        // Ahora puedes hacer llamadas a la API autenticadas
        try {
            // Ejemplo: Agregar un usuario 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());
            // Errores comunes:
            // - 401: La clave API falta o no es válida
            // - 400: La validación de la solicitud falló
        }
    }
}

Uso de APIs públicas (PublicApi)

Los endpoints públicos no requieren autenticación:

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

Uso de las APIs de moderación (ModerationApi)

La ModerationApi alimenta el panel de moderación. Cada método acepta un parámetro sso que identifica al moderador autenticado por SSO en cuyo nombre se realiza la solicitud:

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

ModerationApi moderationApi = new ModerationApi();

try {
    // Listar comentarios en espera de moderación
    ModerationAPIGetCommentsResponse response = moderationApi.getApiComments()
        .sso("YOUR_SSO_TOKEN")
        .execute();
    System.out.println(response);
} catch (ApiException e) {
    e.printStackTrace();
}

Problemas comunes

  1. 401 "missing-api-key" error: Asegúrate de llamar a apiClient.setApiKey("YOUR_KEY") antes de crear la instancia de DefaultApi.
  2. Clase API equivocada: Usa DefaultApi para solicitudes autenticadas en el servidor, PublicApi para solicitudes del lado del cliente/públicas.
  3. Clave API nula: El SDK omitirá silenciosamente la autenticación si la clave API es nula, lo que provocará errores 401.

Notas Internal Link

IDs de Broadcast

Verás que se supone que debes pasar un broadcastId en algunas llamadas a la API. Cuando recibas eventos, obtendrás este ID de vuelta, así sabrás ignorar el evento si planeas aplicar cambios de forma optimista en el cliente (lo cual probablemente querrás hacer ya que ofrece la mejor experiencia). Pasa un UUID aquí. El ID debe ser lo suficientemente único como para no ocurrir dos veces en una sesión del navegador.

¿Necesita ayuda?

Si encuentra algún problema o tiene preguntas sobre el SDK de Java, por favor:

Contribuciones

¡Las contribuciones son bienvenidas! Por favor visite el repositorio de GitHub para las pautas de contribución.