FastComments.com

FastComments Java SDK

Ово је званични Java SDK за FastComments.

Званични Java SDK за FastComments API

Репозиторијум

Погледајте на GitHub

AI агенти за кодирање Internal Link

skills.sh

Дайте вашем кодирајућем агенту FastComments контекст који му је потребан – виџети, конфигурација, безбедни 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

Broadcast идентификатори

Видећете да треба да проследите broadcastId у неким API позивима. Када примите догађаје, добићете овај ID назад, па ћете знати да игноришете догађај ако планирате да оптимистички примените измене на клијенту (што ћете вероватно желети да урадите јер нуди најбоље корисничко искуство). Овде проследите UUID. ID би требало да буде довољно јединствен да се не појави два пута у сесији прегледача.

Потребна помоћ?

Ако наиђете на било какве проблеме или имате питања у вези са Java SDK-ом, молимо вас:

Допринеси

Допринеси су добродошли! Молимо посетите GitHub репозиторијум за смернице о доприносима.