FastComments.com

FastComments Java SDK

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

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

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

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


Инсталација 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>2.0.0</version>
    </dependency>
    
    <!-- Core Library (includes SSO) -->
    <dependency>
        <groupId>com.fastcomments</groupId>
        <artifactId>core</artifactId>
        <version>2.0.0</version>
    </dependency>
    
    <!-- PubSub Library (for live events) -->
    <dependency>
        <groupId>com.fastcomments</groupId>
        <artifactId>pubsub</artifactId>
        <version>2.0.0</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:2.0.0"
    
    // Core Library (includes SSO)
    implementation "com.fastcomments:core:2.0.0"
    
    // PubSub Library (for live events)
    implementation "com.fastcomments:pubsub:2.0.0"
}

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

Ова библиотека садржи три модула. Генерисани API клијент, основна Java библиотека која садржи ручно написане алате који олакшавају рад са API-јем, и модул pubsub који је библиотека за претплату на фид измена.

Јавни у односу на обезбеђене API-је

За API клијента постоје три класе, DefaultApi, PublicApi, и ModerationApi. DefaultApi садржи методе које захтевају ваш API кључ, а PublicApi садржи методе које се могу позивати директно из прегледача/мобилног уређаја/итд. без аутентификације.

ModerationApi покреће контролну таблу модератора. Садржи методе за модерацију коментара (листање, бројање, претрага, логови, и извоз), радње модерације (уклони/врати, означи/пријави, подеси статус за преглед/спам/одобрење, гласови, и поново отвори/затвори нит), забране (забрана коментарисања, поништавање забране, прегледи пре забране, статус и подешавања забране, и бројање забрањених корисника), и ознаке и поверење (додели/уклони ознаку, ручне ознаке, добиј/постави фактор поверења, и интерни профил корисника). Сваки метод ModerationApi прихвата параметар sso тако да позив може бити извршен у име модератора аутентификованог преко SSO.

Брзи почетак Internal Link

Коришћење аутентификованих API-ја (DefaultApi)

Important: You must set your API key on the ApiClient before making authenticated requests. If you don't, requests will fail with a 401 error.

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) {
        // Креирајте и конфигуришите ApiClient
        ApiClient apiClient = new ApiClient();

        // ОБАВЕЗНО: Подесите ваш API кључ (преузмите га са вашe 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" error: Уверите се да позивате apiClient.setApiKey("YOUR_KEY") пре него што креирате инстанцу DefaultApi.
  2. Погрешна класа API-ја: Користите DefaultApi за серверске аутентификоване захтеве, PublicApi за клијентске/јавне захтеве.
  3. Null API key: SDK ће тихо прескочити аутентификацију ако је API кључ null, што ће довести до 401 грешака.

Белешке Internal Link

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

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


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

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

Допринеси

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