FastComments.com

FastComments Java SDK

Αυτό είναι το επίσημο Java SDK για το FastComments.

Επίσημο Java SDK για το API του FastComments

Αποθετήριο

Προβολή στο 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 -->
    <dependency>
        <groupId>com.fastcomments</groupId>
        <artifactId>client</artifactId>
        <version>2.0.0</version>
    </dependency>
    
    <!-- Βασική Βιβλιοθήκη (περιλαμβάνει SSO) -->
    <dependency>
        <groupId>com.fastcomments</groupId>
        <artifactId>core</artifactId>
        <version>2.0.0</version>
    </dependency>
    
    <!-- Βιβλιοθήκη PubSub (για ζωντανά γεγονότα) -->
    <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
    implementation "com.fastcomments:client:2.0.0"
    
    // Βασική Βιβλιοθήκη (περιλαμβάνει SSO)
    implementation "com.fastcomments:core:2.0.0"
    
    // Βιβλιοθήκη PubSub (για ζωντανά γεγονότα)
    implementation "com.fastcomments:pubsub:2.0.0"
}

Περιεχόμενα βιβλιοθήκης

Αυτή η βιβλιοθήκη περιέχει τρία modules. Τον παραγόμενο πελάτη API, τη βασική βιβλιοθήκη Java που περιέχει χειροποίητες βοηθητικές λειτουργίες για να διευκολύνει την εργασία με το API, και το module pubsub που είναι μια βιβλιοθήκη για εγγραφή σε ροές αλλαγών.

Δημόσια έναντι Ασφαλών API

Για τον πελάτη API, υπάρχουν τρεις κλάσεις, DefaultApi, PublicApi, και ModerationApi. Η DefaultApi περιέχει μεθόδους που απαιτούν το API key σας, και η PublicApi περιέχει μεθόδους που μπορούν να γίνουν απευθείας από έναν περιηγητή/κινητή συσκευή/κτλ χωρίς ταυτοποίηση.

Το ModerationApi τροφοδοτεί τον πίνακα ελέγχου των συντονιστών. Περιέχει μεθόδους για τη διαχείριση σχολίων (λίστα, καταμέτρηση, αναζήτηση, αρχεία καταγραφής, και εξαγωγή), ενέργειες εποπτείας (αφαίρεση/επανάκτηση, σήμανση, ορισμός κατάστασης αναθεώρησης/spam/έγκρισης, ψήφοι, και επαναφορά/κλείσιμο νήματος), αποκλεισμούς (αποκλεισμός από σχολιασμό, αναίρεση αποκλεισμού, προ-συνοπτικά πριν από αποκλεισμό, κατάσταση και προτιμήσεις αποκλεισμού, και μετρήσεις αποκλεισμένων χρηστών), και σήματα & αξιοπιστία (απονομή/αφαίρεση σήματος, χειροκίνητα σήματα, λήψη/ρύθμιση παράγοντα αξιοπιστίας, και εσωτερικό προφίλ χρήστη). Κάθε μέθοδος του ModerationApi δέχεται παράμετρο sso ώστε η κλήση να μπορεί να εκτελεστεί εκ μέρους ενός συντονιστή που έχει πιστοποιηθεί μέσω SSO.

Γρήγορη εκκίνηση Internal Link

Χρήση Πιστοποιημένων API (DefaultApi)

Σημαντικό: Πρέπει να ορίσετε το API key σας στο 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 client
        ApiClient apiClient = new ApiClient();

        // ΑΠΑΡΑΙΤΗΤΟ: Ορίστε το API key σας (το βγάζετε από το ταμπλό του FastComments)
        apiClient.setApiKey("YOUR_API_KEY_HERE");

        // Δημιουργήστε την υλοποίηση του API με τον ρυθμισμένο client
        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 key λείπει ή είναι άκυρο
            // - 400: Η επικύρωση του αιτήματος απέτυχε
        }
    }
}

Χρήση Δημόσιων API (PublicApi)

Οι δημόσιες διαδρομές (endpoints) δεν απαιτούν πιστοποίηση:

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 τροφοδοτεί το πάνελ του moderator. Κάθε μέθοδος δέχεται μια παράμετρο sso που αναγνωρίζει τον moderator πιστοποιημένο με 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") πριν δημιουργήσετε το instance του DefaultApi.
  2. Λανθασμένη κλάση API: Χρησιμοποιήστε DefaultApi για server-side πιστοποιημένα αιτήματα, PublicApi για client-side/δημόσια αιτήματα.
  3. Μηδενικό API key: Το SDK θα παραλείψει σιωπηλά την πιστοποίηση αν το API key είναι null, οδηγώντας σε σφάλματα 401.

Σημειώσεις Internal Link

Αναγνωριστικά Broadcast

Θα δείτε ότι πρέπει να περάσετε ένα broadcastId σε μερικές κλήσεις API. Όταν λαμβάνετε γεγονότα, θα λάβετε αυτό το ID πίσω, ώστε να ξέρετε να αγνοήσετε το γεγονός εάν σκοπεύετε να εφαρμόσετε οπτιμιστικά αλλαγές στον πελάτη (που πιθανότατα θα θέλετε να κάνετε καθώς προσφέρει την καλύτερη εμπειρία). Περάστε εδώ ένα UUID. Το ID πρέπει να είναι αρκετά μοναδικό ώστε να μην εμφανιστεί δύο φορές στην ίδια συνεδρία του προγράμματος περιήγησης.

Χρειάζεστε βοήθεια;

Εάν αντιμετωπίσετε οποιοδήποτε ζήτημα ή έχετε ερωτήσεις σχετικά με το Java SDK, παρακαλούμε:

Συνεισφορές

Οι συνεισφορές είναι ευπρόσδεκτες! Παρακαλούμε επισκεφθείτε το αποθετήριο GitHub για οδηγίες συνεισφοράς.