FastComments.com

FastComments Java SDK

Ovo je zvanični Java SDK za FastComments.

Zvanični Java SDK za FastComments API

Repozitorijum

Pogledajte na GitHubu


Instalacija Internal Link

Maven

Dodajte Repsy repozitorijum u POM vašeg projekta:

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

Zatim dodajte zavisnosti koje su vam potrebne:

<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

Dodajte Repsy repozitorijum u vašu build.gradle datoteku:

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

Sadržaj biblioteke

Ova biblioteka sadrži tri modula. Generisani API klijent, core Java biblioteka koja sadrži ručno napisane alatke koje olakšavaju rad sa API-jem, i pubsub modul koji je biblioteka za pretplatu na feed-ove promena.

Javni naspram zaštićenih API-ja

Za API klijenta postoje tri klase, DefaultApi, PublicApi, i ModerationApi. DefaultApi sadrži metode koje zahtevaju vaš API ključ, a PublicApi sadrži metode koje se mogu pozvati direktno iz pregledača/mobilnog uređaja/itd. bez autentifikacije.

ModerationApi pokreće moderatorski panel. Sadrži metode za moderaciju komentara (listanje, brojanje, pretraga, zapisi i izvoz), akcije moderacije (uklanjanje/obnavljanje, označavanje, podešavanje statusa za pregled/spam/odobrenje, glasovi, i ponovno otvaranje/zatvaranje niti), zabrane (zabrana komentarisanja, poništavanje zabrane, pre-ban sažeci, status i podešavanja zabrane, i brojevi zabranjenih korisnika), i značke i poverenje (dodeljivanje/uklanjanje značke, manuelne značke, dobijanje/postavljanje faktora poverenja, i interni profil korisnika). Svaka ModerationApi metoda prihvata sso parametar tako da poziv može biti izvršen u ime moderatora autentifikovanog putem SSO.

Brzi početak Internal Link

Korišćenje autentifikovanih API-ja (DefaultApi)

Važno: Morate postaviti vaš API ključ na ApiClient pre nego što izvršite autentifikovane zahteve. Ako to ne uradite, zahtevi će biti odbijeni sa 401 greškom.

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) {
        // Kreirajte i konfigurišite ApiClient
        ApiClient apiClient = new ApiClient();

        // OBAVEZNO: Postavite vaš API ključ (preuzmite ga sa FastComments kontrolne table)
        apiClient.setApiKey("YOUR_API_KEY_HERE");

        // Kreirajte instancu API-a sa konfigurisanim klijentom
        DefaultApi api = new DefaultApi(apiClient);

        // Sada možete praviti autentifikovane API pozive
        try {
            // Primer: Dodavanje SSO korisnika
            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());
            // Uobičajene greške:
            // - 401: API ključ nedostaje ili nije validan
            // - 400: Validacija zahteva nije uspela
        }
    }
}

Korišćenje javnih API-ja (PublicApi)

Javni endpointi ne zahtevaju autentifikaciju:

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

Korišćenje moderacijskih API-ja (ModerationApi)

ModerationApi pokreće moderator dashboard. Svaka metoda prihvata sso parametar koji identifikuje SSO-autentifikovanog moderatora u čije ime se zahtev pravi:

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

ModerationApi moderationApi = new ModerationApi();

try {
    // Listajte komentare koji čekaju na moderaciju
    ModerationAPIGetCommentsResponse response = moderationApi.getApiComments()
        .sso("YOUR_SSO_TOKEN")
        .execute();
    System.out.println(response);
} catch (ApiException e) {
    e.printStackTrace();
}

Uobičajeni problemi

  1. 401 "missing-api-key" error: Uverite se da pozovete apiClient.setApiKey("YOUR_KEY") pre nego što kreirate DefaultApi instancu.
  2. Pogrešna API klasa: Koristite DefaultApi za serverske autentifikovane zahteve, PublicApi za klijentske/javne zahteve.
  3. Null API ključ: SDK će tiho preskočiti autentifikaciju ako je API ključ null, što će dovesti do 401 grešaka.

Napomene Internal Link

Broadcast ID-jevi

Videćete da treba da pošaljete broadcastId u nekim API pozivima. Kada primite događaje, dobićete ovaj ID nazad, pa ćete znati da ignorišete događaj ako planirate optimistično primeniti izmene na klijentu (što ćete verovatno želeti da uradite jer pruža najbolje korisničko iskustvo). Pošaljite ovde UUID. ID treba da bude dovoljno jedinstven da se ne pojavi dva puta u okviru iste sesije pregledača.

Trebate pomoć?

Ako naiđete na bilo kakve probleme ili imate pitanja u vezi Java SDK-a, molimo:

Doprinosi

Doprinosi su dobrodošli! Molimo posetite GitHub repozitorijum za smernice o doprinosu.