FastComments.com

FastComments Java SDK

Това е официалният Java SDK на FastComments.

Официален Java SDK за API-то на FastComments

Репозитория

Вижте в GitHub

AI coding agents Internal Link

skills.sh

Дайте на вашия кодиращ агент контекста на FastComments, който му е необходим – уиджети, конфигурация, Secure SSO, REST API и SDK‑те:

npx skills add fastcomments/skills

Работи с Claude Code, Codex, Cursor, Copilot, Gemini и всеки друг агент, който поддържа skills CLI поддръжка.

Installation Internal Link

Maven

Добавете репозитория Repsy към POM на вашия проект:

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

След това добавете необходимите зависимости:

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

Gradle

Добавете репозитория Repsy към вашия файл 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 (includes SSO)
    implementation "com.fastcomments:core:3.1.1"
    
    // PubSub Library (for live events)
    implementation "com.fastcomments:pubsub:3.1.1"
}

Съдържание на библиотеката

Тази библиотека съдържа три модула: генерирания API клиент, основната Java библиотека, която включва ръчно написани помощни функции за по‑лесна работа с API, и модула pubsub, който е библиотека за абониране към потоци от промени.

Публични vs Защитени API

За API клиента има три класа – DefaultApi, PublicApi и ModerationApi. DefaultApi съдържа методи, които изискват вашия API ключ, докато PublicApi съдържа методи, които могат да се извикат директно от браузър/мобилно устройство и т.н. без удостоверяване.

ModerationApi предоставя обширен набор от живи и бързи API за модериране. Всеки метод на ModerationApi приема параметър sso и може да се удостоверява чрез SSO или чрез сесийна бисквитка от FastComments.com.

Quick Start Internal Link

Използване на автентифицирани API-та (DefaultApi)

Важно: Трябва да зададете вашия API ключ в ApiClient преди да правите автентифицирани заявки. Ако не го направите, заявките ще се провалят с грешка 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) {
        // Създайте и конфигурирайте API клиента
        ApiClient apiClient = new ApiClient();

        // ЗАДЪЛЖИТЕЛНО: Задайте вашия API ключ (вземете го от таблото на FastComments)
        apiClient.setApiKey("YOUR_API_KEY_HERE");

        // Създайте екземпляр на API-то с конфигурирания клиент
        DefaultApi api = new DefaultApi(apiClient);

        // Сега можете да правите автентифицирани API извиквания
        try {
            // Пример: Добавяне на 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());
            // Общи грешки:
            // - 401: липсва API ключ или е невалиден
            // - 400: Валидацията на заявката е неуспешна
        }
    }
}

Използване на публични API-та (PublicApi)

Публичните крайни точки не изискват удостоверяване:

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

Използване на API-та за модерация (ModerationApi)

Класът ModerationApi управлява таблото на модератора. Във всеки метод се приема параметър sso, който идентифицира SSO-автентифицирания модератор от чие име се прави заявката:

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

ModerationApi moderationApi = new ModerationApi();

try {
    // Изброяване на коментари, чакащи модерация
    ModerationAPIGetCommentsResponse response = moderationApi.getApiComments()
        .sso("YOUR_SSO_TOKEN")
        .execute();
    System.out.println(response);
} catch (ApiException e) {
    e.printStackTrace();
}

Чести проблеми

  1. 401 "missing-api-key" грешка: Уверете се, че извиквате apiClient.setApiKey("YOUR_KEY") преди да създадете инстанцията на DefaultApi.
  2. Грешен клас API: Използвайте DefaultApi за сървърни автентифицирани заявки, PublicApi за клиентски/публични заявки.
  3. Null API ключ: SDK-то ще пропусне удостоверяването без съобщение, ако API ключът е null, което ще доведе до грешки 401.

Notes Internal Link

Идентификатори на излъчване

Ще видите, че трябва да подадете broadcastId в някои API повиквания. Когато получите събития, ще получите този идентификатор обратно, така че да знаете да игнорирате събитието, ако възнамерявате оптимистично да прилагате промените на клиента (което вероятно ще искате да направите, тъй като осигурява най-доброто потребителско изживяване). Подайте тук UUID. Идентификаторът трябва да е достатъчно уникален, за да не се появи два пъти в рамките на една браузърна сесия.

Нуждаете се от помощ?

Ако срещнете проблеми или имате въпроси относно Java SDK, моля:

Допринасяне

Приноси са добре дошли! Моля посетете хранилището в GitHub за указания относно приноса.