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"
}

Library Contents

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

Public vs Secured APIs

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

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

Брзи почетак 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) {
        // Креирајте и конфигуришите ApiClient
        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)

The ModerationApi drives the moderator dashboard. Each method accepts an sso parameter identifying the SSO-authenticated moderator on whose behalf the request is made:

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. Wrong API class: Користите DefaultApi за аутентификоване захтјеве на страни сервера, PublicApi за захтјеве на страни клијента/јавне захтјеве.
  3. Null API key: SDK ће тихо прескочити аутентификацију ако је API кључ null, што резултира 401 грешкама.

Напомена Internal Link

Идентификатори емитовања

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


Требате помоћ?

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

Допринoси

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