FastComments.com

SDK Java do FastComments


Isto é o SDK Java oficial para FastComments.

SDK Java oficial para a API do FastComments

Repositório

Visualizar no GitHub


Instalação Internal Link

Maven

Adicione o repositório Repsy ao POM do seu projeto:

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

Em seguida, adicione as dependências que você precisa:

<dependencies>
    <!-- Cliente da API -->
    <dependency>
        <groupId>com.fastcomments</groupId>
        <artifactId>client</artifactId>
        <version>3.0.1</version>
    </dependency>
    
    <!-- Biblioteca Core (inclui SSO) -->
    <dependency>
        <groupId>com.fastcomments</groupId>
        <artifactId>core</artifactId>
        <version>3.0.1</version>
    </dependency>
    
    <!-- Biblioteca PubSub (para eventos ao vivo) -->
    <dependency>
        <groupId>com.fastcomments</groupId>
        <artifactId>pubsub</artifactId>
        <version>3.0.1</version>
    </dependency>
</dependencies>

Gradle

Adicione o repositório Repsy ao seu arquivo build.gradle:

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

dependencies {
    // Cliente da API
    implementation "com.fastcomments:client:3.0.1"
    
    // Biblioteca Core (inclui SSO)
    implementation "com.fastcomments:core:3.0.1"
    
    // Biblioteca PubSub (para eventos ao vivo)
    implementation "com.fastcomments:pubsub:3.0.1"
}

Conteúdo da Biblioteca

Esta biblioteca contém três módulos. O cliente de API gerado, a biblioteca Java core que contém utilitários escritos à mão para facilitar o trabalho com a API, e o módulo pubsub, que é uma biblioteca para assinar feeds de alterações.

APIs Públicas vs Seguras

Para o cliente de API, há três classes, DefaultApi, PublicApi e ModerationApi. O DefaultApi contém métodos que requerem sua chave de API, e o PublicApi contém métodos que podem ser chamados diretamente de um navegador/dispositivo móvel/etc sem autenticação.

O ModerationApi fornece um conjunto extenso de APIs de moderação ao vivo e rápidas. Cada método do ModerationApi aceita um parâmetro sso e pode autenticar via SSO ou um cookie de sessão do FastComments.com.

Início Rápido Internal Link

Usando APIs Autenticadas (DefaultApi)

Importante: Você deve definir sua chave de API no ApiClient antes de fazer requisições autenticadas. Se não fizer isso, as requisições falharão com um erro 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) {
        // 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
        }
    }
}

Usando APIs Públicas (PublicApi)

Endpoints públicos não requerem autenticação:

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

Usando APIs de Moderação (ModerationApi)

A ModerationApi alimenta o painel do moderador. Cada método aceita um parâmetro sso identificando o moderador autenticado via SSO em cujo nome a requisição é feita:

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

Problemas Comuns

  1. 401 "missing-api-key" error: Certifique-se de chamar apiClient.setApiKey("YOUR_KEY") antes de criar a instância do DefaultApi.
  2. Wrong API class: Use DefaultApi para requisições autenticadas no lado do servidor, PublicApi para requisições do lado do cliente/públicas.
  3. Null API key: O SDK ignorará a autenticação silenciosamente se a chave de API for nula, resultando em erros 401.

Notas Internal Link

IDs de Broadcast

Você verá que deve passar um broadcastId em algumas chamadas de API. Quando você receber eventos, esse ID será retornado, então você saberá ignorar o evento se planejar aplicar alterações otimisticamente no cliente (o que você provavelmente desejará fazer, pois oferece a melhor experiência). Passe um UUID aqui. O ID deve ser suficientemente único para não ocorrer duas vezes em uma sessão do navegador.

Precisa de ajuda?

Se você encontrar algum problema ou tiver dúvidas sobre o SDK Java, por favor:

Contribuindo

Contribuições são bem-vindas! Por favor, visite o repositório no GitHub para as diretrizes de contribuição.