FastComments.com

FastComments JavaScript/TypeScript SDK


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

Επίσημο SDK JavaScript/TypeScript για το API του FastComments

Αποθετήριο

Προβολή στο GitHub


Εγκατάσταση Internal Link

npm install fastcomments-sdk

Τεκμηρίωση API Internal Link


Πλήρης αναφορά API: docs/api/README.md

Συμβατότητα περιηγητή vs διακομιστή Internal Link

Αυτό το SDK χρησιμοποιεί διπλά σημεία εισόδου για να εξασφαλίσει βέλτιστη συμβατότητα και να αποτρέψει σφάλματα χρόνου εκτέλεσης:

  • fastcomments-sdk/browser - Έκδοση ασφαλής για περιηγητές με ενσωματωμένο fetch
  • fastcomments-sdk/server - Πλήρης έκδοση για Node.js με υποστήριξη SSO
  • fastcomments-sdk (προεπιλογή) - Μόνο τύποι, ασφαλές για εισαγωγή οπουδήποτε

Δημόσια vs Ασφαλή API Internal Link

The SDK παρέχει τρεις κύριες κλάσεις API:

  • DefaultApi - Secured endpoints that require your API key for authentication. Use these for server-side operations.
  • PublicApi - Public endpoints that can be accessed without an API key. These can be called directly from browsers/mobile devices/etc.
  • HiddenApi - Internal/admin endpoints for advanced use cases.

Παράδειγμα: Χρήση Public API (ασφαλές για browsers)

import { PublicApi } from 'fastcomments-sdk/browser';

const publicApi = new PublicApi();

// Λήψη σχολίων για σελίδα (δεν απαιτείται API key)
const response = await publicApi.getCommentsPublic({
  tenantId: 'your-tenant-id',
  urlId: 'page-url-id'
});

Παράδειγμα: Χρήση Default API (μόνο στην πλευρά του διακομιστή)

import { DefaultApi, Configuration } from 'fastcomments-sdk/server';

const config = new Configuration({
  apiKey: 'your-api-key' // Κρατήστε το μυστικό!
});
const defaultApi = new DefaultApi(config);

// Λήψη σχολίων με πλήρη διαχειριστική πρόσβαση
const response = await defaultApi.getComments({
  tenantId: 'your-tenant-id',
  urlId: 'page-url-id'
});

Ενοποίηση SSO (Single Sign-On) Internal Link

FastComments υποστηρίζει SSO για ενσωμάτωση με το υπάρχον σύστημα πιστοποίησης χρηστών σας. Η λειτουργία SSO είναι διαθέσιμη μόνο στην έκδοση για διακομιστή καθώς απαιτεί δυνατότητες κρυπτογράφησης του Node.js.

Απλό SSO (Μόνο στην πλευρά διακομιστή)

Το απλό SSO θα πρέπει να δημιουργείται στην πλευρά διακομιστή και να αποστέλλεται στον πελάτη:

// Κώδικας πλευράς διακομιστή (Node.js/backend)
import { FastCommentsSSO, PublicApi } from 'fastcomments-sdk/server';

// Δημιουργία απλού SSO χρησιμοποιώντας τον ενσωματωμένο βοηθό  
const userData = {
  username: 'john_doe',
  email: 'john@example.com',
  displayName: 'John Doe',
  avatar: 'https://example.com/avatar.jpg'
};

const sso = FastCommentsSSO.createSimple(userData, {
  loginURL: '/login',
  logoutURL: '/logout'
});

const ssoToken = sso.createToken();

// Στείλτε το ssoToken στον κώδικα της πλευράς πελάτη σας
// Ο κώδικας της πλευράς πελάτη μπορεί στη συνέχεια να χρησιμοποιήσει αυτό το token με το browser SDK

Ασφαλές SSO (Πλευρά Διακομιστή, Συνιστάται)

Το ασφαλές SSO θα πρέπει να υλοποιείται στην πλευρά διακομιστή και παρέχει καλύτερη ασφάλεια:

// Κώδικας πλευράς διακομιστή (Node.js/backend)
import { FastCommentsSSO, PublicApi } from 'fastcomments-sdk/server';

// Δημιουργία ασφαλούς SSO χρησιμοποιώντας τον ενσωματωμένο βοηθό
const userData = {
  id: 'user-123',
  email: 'john@example.com',
  username: 'john_doe',
  displayName: 'John Doe',
  avatar: 'https://example.com/avatar.jpg',
  isAdmin: false,
  isModerator: false
};

const sso = FastCommentsSSO.createSecure('your-api-key', userData, {
  loginURL: '/login',
  logoutURL: '/logout'
});

const ssoConfig = sso.prepareToSend();

// Χρήση με κλήσεις API στον διακομιστή
const publicApi = new PublicApi();
const response = await publicApi.getCommentsPublic({
  tenantId: 'your-tenant-id',
  urlId: 'page-url-id',
  sso: JSON.stringify(ssoConfig)
});

// Ή στείλτε το ssoConfig στον πελάτη για χρήση στον browser

Χρήση SSO από τον Browser (με Token που δημιουργείται από τον διακομιστή)

// Κώδικας πλευράς πελάτη (browser)
import { PublicApi } from 'fastcomments-sdk/browser';

// Λάβετε το SSO token από το endpoint του διακομιστή σας
const ssoToken = await fetch('/api/sso-token').then(r => r.json());

const publicApi = new PublicApi();
const response = await publicApi.getCommentsPublic({
  tenantId: 'your-tenant-id',
  urlId: 'page-url-id',
  sso: ssoToken // Use the server-generated SSO token
});

SSO με Δημιουργία Σχολίου

// Πλευρά διακομιστή: Δημιουργία SSO και σχολίου
import { FastCommentsSSO, PublicApi } from 'fastcomments-sdk/server';

const sso = FastCommentsSSO.createSecure('your-api-key', userData);
const ssoConfig = sso.prepareToSend();

const response = await publicApi.createCommentPublic({
  tenantId: 'your-tenant-id',
  urlId: 'page-url-id',
  broadcastId: 'unique-broadcast-id',
  commentData: {
    comment: 'This is my comment',
    date: Date.now(),
    commenterName: 'John Doe',
    url: 'https://example.com/page',
    urlId: 'page-url-id'
  },
  sso: JSON.stringify(ssoConfig)
});

Συνήθη σενάρια χρήσης Internal Link

Λήψη Σχολίων για μια Σελίδα

const comments = await sdk.publicApi.getCommentsPublic({
  tenantId: 'your-tenant-id',
  urlId: 'article-123'
});

Δημιουργία Σχολίου

const newComment = await sdk.publicApi.createCommentPublic({
  createCommentParams: {
    tenantId: 'your-tenant-id',
    urlId: 'article-123',
    comment: 'Great article!',
    commenterName: 'John Doe',
    commenterEmail: 'john@example.com'
  }
});

Ψήφιση Σχολίου

const voteResponse = await sdk.publicApi.voteComment({
  voteBodyParams: {
    commentId: 'comment-id',
    direction: 1 // 1 για ψήφο υπέρ, -1 για ψήφο κατά
  }
});

Διαχείριση Χρηστών (Απαιτεί API Key)

// Αναζήτηση χρηστών (απαιτεί DefaultApi)
const users = await sdk.defaultApi.searchUsers({
  tenantId: 'your-tenant-id',
  urlId: 'page-id',
  usernameStartsWith: 'john'
});

Ζωντανά γεγονότα (ενημερώσεις σε πραγματικό χρόνο) Internal Link

Subscribe to live events to get real-time updates for comments, votes, and other activities.

Γεγονότα σε επίπεδο σελίδας

Ακούστε για ζωντανά γεγονότα σε μια συγκεκριμένη σελίδα (σχόλια, ψήφοι, κ.λπ.):

import { subscribeToChanges, LiveEvent, LiveEventType } from 'fastcomments-sdk/browser';

const config = {
  tenantId: 'your-tenant-id',
  urlId: 'page-url-id',
};

// Εγγραφή σε ζωντανά γεγονότα για μια σελίδα
const subscription = subscribeToChanges(
  config,
  'your-tenant-id', // tenantIdWS
  'page-url-id',    // urlIdWS  
  'user-session-id', // userIdWS (πάρτε αυτό από την απόκριση του getComments)
  (event: LiveEvent) => {
    console.log('Live event received:', event);

    switch (event.type) {
      case LiveEventType.new_comment:
        console.log('New comment:', event.comment);
        // Ενημερώστε το UI σας με το νέο σχόλιο
        break;
      case LiveEventType.new_vote:
        console.log('New vote:', event.vote);
        // Ενημερώστε τους μετρητές ψήφων στο UI σας
        break;
      case LiveEventType.updated_comment:
        console.log('Comment updated:', event.comment);
        break;
      default:
        console.log('Other event type:', event.type);
    }

    return true; // Επιστρέψτε true αν το γεγονός χειρίστηκε
  },
  (isConnected: boolean) => {
    console.log('Connection status:', isConnected ? 'Connected' : 'Disconnected');
  }
);

// Close the subscription when done
subscription.close();

Εγγραφή σε γεγονότα χρήστη

Ακούστε για γεγονότα που αφορούν συγκεκριμένο χρήστη (ειδοποιήσεις, αναφορές, κ.λπ.):

import { subscribeToUserFeed, LiveEvent, LiveEventType } from 'fastcomments-sdk/browser';

const userConfig = {
  userIdWS: 'user-session-id', // Πάρτε αυτό από την απάντηση του getComments
};

// Εγγραφή στο προσωπικό feed του χρήστη
const userSubscription = subscribeToUserFeed(
  userConfig,
  (event: LiveEvent) => {
    console.log('User event received:', event);

    switch (event.type) {
      case LiveEventType.notification:
        console.log('New notification:', event.notification);
        // Εμφανίστε την ειδοποίηση στο UI σας
        break;
      case LiveEventType.notification_update:
        console.log('Notification updated:', event.notification);
        break;
      default:
        console.log('Other user event:', event.type);
    }

    return true;
  },
  (isConnected: boolean) => {
    console.log('User feed connection:', isConnected ? 'Connected' : 'Disconnected');
  }
);

// Close when done
userSubscription.close();

Λήψη userIdWS

The userIdWS parameter is required for live events and can be obtained from API responses:

const response = await sdk.publicApi.getCommentsPublic({
  tenantId: 'your-tenant-id',
  urlId: 'page-id'
});

// Εξαγάγετε το userIdWS από την απάντηση
const userIdWS = response.data?.userSessionInfo?.userIdWS;

if (userIdWS) {
  // Τώρα μπορείτε να εγγραφείτε σε ζωντανά γεγονότα
  const subscription = subscribeToChanges(config, tenantIdWS, urlIdWS, userIdWS, handleEvent);
}

Αναγνωριστικά μετάδοσης Internal Link

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

import { v4 as uuidv4 } from 'uuid';

const response = await sdk.publicApi.createCommentPublic({
  createCommentParams: {
    tenantId: 'your-tenant-id',
    urlId: 'page-id',
    comment: 'My comment',
    broadcastId: uuidv4() // Μοναδικό ID για αυτήν την ενέργεια
  }
});

Διαχείριση σφαλμάτων Internal Link

try {
  const comments = await sdk.publicApi.getCommentsPublic({
    tenantId: 'your-tenant-id',
    urlId: 'page-id'
  });
} catch (error) {
  if (error.response?.status === 404) {
    console.log('Page not found');
  } else {
    console.error('API Error:', error.message);
  }
}

Συγκέντρωση Internal Link

Συγκεντρώνει έγγραφα ομαδοποιώντας τα (αν παρέχεται το groupBy) και εφαρμόζοντας πολλαπλές λειτουργίες. Υποστηρίζονται διάφορες λειτουργίες (π.χ. sum, countDistinct, avg, κ.λπ.).

Parameters

Name Type Required Description
tenantId string Ναι
aggregationRequest AggregationRequest Ναι
parentTenantId string Όχι
includeStats boolean Όχι

Response

Επιστρέφει: AggregationResponse


Λήψη αρχείων ελέγχου Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
limit number Όχι
skip number Όχι
order SORTDIR Όχι
after number Όχι
before number Όχι

Απόκριση

Επιστρέφει: GetAuditLogs200Response

Παράδειγμα

Παράδειγμα getAuditLogs
Copy Copy
1
2async function main(): Promise<void> {
3 const tenantId: string = 'tenant_9b8f6c';
4 const limit: number = 50;
5 const skip: number = 0;
6 const order: SORTDIR = 'desc';
7 const after: number = Date.now() - 7 * 24 * 60 * 60 * 1000;
8 const response: GetAuditLogs200Response = await getAuditLogs(tenantId, limit, skip, order, after);
9 console.log(response);
10}
11main();
12

Αποκλεισμός από δημόσιο σχόλιο Internal Link

Παράμετροι

Όνομα Τύπος Απαραίτητο Περιγραφή
tenantId string Ναι
commentId string Ναι
publicBlockFromCommentParams PublicBlockFromCommentParams Ναι
sso string Όχι

Απόκριση

Επιστρέφει: BlockFromCommentPublic200Response

Παράδειγμα

Παράδειγμα blockFromCommentPublic
Copy Copy
1
2const tenantId: string = "site_7f9b2e";
3const commentId: string = "comment_2026-03-25_001";
4const publicBlockFromCommentParams: PublicBlockFromCommentParams = {
5 reason: "Repeated harassment and targeted abuse",
6 blockDurationDays: 90,
7 includeHistory: true,
8 notifyModeratorTeam: true
9};
10const sso: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.fakePayload.signature";
11const result: BlockFromCommentPublic200Response = await blockFromCommentPublic(tenantId, commentId, publicBlockFromCommentParams, sso);
12

Αναίρεση αποκλεισμού δημόσιου σχολίου Internal Link

Παράμετροι

Όνομα Τύπος Υποχρεωτικό Περιγραφή
tenantId string Ναι
commentId string Ναι
publicBlockFromCommentParams PublicBlockFromCommentParams Ναι
sso string Όχι

Απόκριση

Επιστρέφει: UnBlockCommentPublic200Response

Παράδειγμα

Παράδειγμα unBlockCommentPublic
Copy Copy
1
2const tenantId: string = 'tenant_42e8a1';
3const commentId: string = 'cmt_9b3f2d';
4const publicBlockFromCommentParams: PublicBlockFromCommentParams = {
5 reason: 'abusive_language',
6 blockedByModeratorId: 'mod_17',
7 note: 'Targeted harassment; review complete',
8 unblockRequestedAt: new Date().toISOString()
9};
10const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.example.signature';
11const result: UnBlockCommentPublic200Response = await unBlockCommentPublic(tenantId, commentId, publicBlockFromCommentParams, sso);
12

Έλεγχος σχολίων για αποκλεισμούς Internal Link

Παράμετροι

Name Type Required Description
tenantId string Ναι
commentIds string Ναι
sso string Όχι

Απόκριση

Επιστρέφει: CheckedCommentsForBlocked200Response

Παράδειγμα

Παράδειγμα checkedCommentsForBlocked
Copy Copy
1
2const tenantId: string = 'tenant_4f3b2a1e';
3const commentIds: string = 'c_1001,c_1002,c_1003';
4const ssoToken: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyMTIzIn0.Sf4ke7nQP3mZx9v2';
5
6const resultWithoutSSO: CheckedCommentsForBlocked200Response = await checkedCommentsForBlocked(tenantId, commentIds);
7const resultWithSSO: CheckedCommentsForBlocked200Response = await checkedCommentsForBlocked(tenantId, commentIds, ssoToken);
8

Αποκλεισμός χρήστη από σχόλιο Internal Link

Παράμετροι

Name Type Required Description
tenantId string Ναι
id string Ναι
blockFromCommentParams BlockFromCommentParams Ναι
userId string Όχι
anonUserId string Όχι

Απόκριση

Επιστρέφει: BlockFromCommentPublic200Response

Παράδειγμα

Παράδειγμα blockUserFromComment
Copy Copy
1
2const tenantId: string = "tenant_12345";
3const id: string = "comment_67890";
4const blockFromCommentParams: BlockFromCommentParams = {
5 reason: "Repeated abusive language",
6 blockDurationHours: 168,
7 blockReplies: true,
8 notifyAuthor: true
9};
10const userId: string = "user_abc123";
11const anonUserId: string = "anon_xyz789";
12const result: BlockFromCommentPublic200Response = await blockUserFromComment(tenantId, id, blockFromCommentParams, userId, anonUserId);
13

Δημιουργία δημόσιου σχολίου Internal Link

Παράμετροι

Name Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
urlId string Ναι
broadcastId string Ναι
commentData CommentData Ναι
sessionId string Όχι
sso string Όχι

Απόκριση

Επιστρέφει: CreateCommentPublic200Response

Παράδειγμα

Παράδειγμα createCommentPublic
Copy Copy
1
2const tenantId: string = 'tenant_prod_42';
3const urlId: string = 'article-2026-03-25-tech-deep-dive';
4const broadcastId: string = 'live-broadcast-001';
5const sessionId: string = 'sess_9f8e7d6a3b';
6const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.example.signature';
7const commentData: CommentData = {
8 content: 'Great reporting — appreciated the depth on performance tradeoffs.',
9 authorName: 'Jordan M.',
10 language: 'en-US',
11 metadata: { client: 'web' }
12};
13const result: CreateCommentPublic200Response = await createCommentPublic(tenantId, urlId, broadcastId, commentData, sessionId, sso);
14

Διαγραφή σχολίου Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι
contextUserId string Όχι
isLive boolean Όχι

Απόκριση

Επιστρέφει: DeleteComment200Response

Παράδειγμα

Παράδειγμα deleteComment
Copy Copy
1
2const tenantId: string = 'tenant_7b3f2a';
3const commentId: string = 'cmt_8a1f4d2b';
4const contextUserId: string = 'user_102';
5const isLive: boolean = true;
6const result: DeleteComment200Response = await deleteComment(tenantId, commentId, contextUserId, isLive);
7

Διαγραφή δημόσιου σχολίου Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
commentId string Ναι
broadcastId string Ναι
editKey string Όχι
sso string Όχι

Απάντηση

Επιστρέφει: DeleteCommentPublic200Response

Παράδειγμα

Παράδειγμα deleteCommentPublic
Copy Copy
1
2const tenantId: string = 'tenant_4f2c9b';
3const commentId: string = 'comment-7c3a9f2d';
4const broadcastId: string = 'article-2026-03-20';
5const editKey: string | undefined = 'ek_pub_abc12345';
6const sso: string | undefined = 'sso_eyJhbGciOiJIUzI1Ni';
7
8const result: DeleteCommentPublic200Response = await deleteCommentPublic(
9 tenantId,
10 commentId,
11 broadcastId,
12 editKey,
13 sso
14);
15

Διαγραφή ψήφου σχολίου Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
commentId string Ναι
voteId string Ναι
urlId string Ναι
broadcastId string Ναι
editKey string Όχι
sso string Όχι

Απόκριση

Επιστρέφει: DeleteCommentVote200Response

Παράδειγμα

Παράδειγμα deleteCommentVote
Copy Copy
1
2const tenantId: string = 'acme-tenant-87e4fd';
3const commentId: string = 'cmt-9a12b3f4';
4const voteId: string = 'vote-4f6d21b9';
5const urlId: string = 'https://www.acme.com/articles/2026/03/25/how-to-test';
6const broadcastId: string = 'broadcast-20260325-01';
7const editKey: string = 'editkey-6b7c8d9e';
8const sso: string = 'sso-jwt-eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9';
9
10const response: DeleteCommentVote200Response = await deleteCommentVote(
11 tenantId,
12 commentId,
13 voteId,
14 urlId,
15 broadcastId,
16 editKey,
17 sso
18);
19

Σήμανση σχολίου Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι
userId string Όχι
anonUserId string Όχι

Απόκριση

Επιστρέφει: FlagComment200Response

Παράδειγμα

Παράδειγμα flagComment
Copy Copy
1
2const tenantId: string = 'tenant_acme_001';
3const id: string = 'comment_7f3a2b9e';
4const userId: string = 'user_jdoe_1001';
5const anonUserId: string = 'anon_3f2b_visitor';
6const result: FlagComment200Response = await flagComment(tenantId, id, userId, anonUserId);
7

Λήψη σχολίου Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι

Απόκριση

Επιστρέφει: GetComment200Response

Παράδειγμα

Παράδειγμα getComment
Copy Copy
1
2const tenantId: string = "acme-publishing-001";
3const commentId: string = "f3b2c1d0-9a8e-4b7c-8123-6d5f0a1e2b3c";
4const result: GetComment200Response = await getComment(tenantId, commentId);
5const wrapper: GetComment200Response & { comment?: APIComment } = result;
6const comment: APIComment | undefined = wrapper.comment;
7const authorBadge: CommentUserBadgeInfo | undefined = comment?.user?.badge;
8const userHashTags: CommentUserHashTagInfo[] | undefined = comment?.user?.hashTags
9

Λήψη σχολίων Internal Link

Παράμετροι

Name Type Required Description
tenantId string Ναι
page number Όχι
limit number Όχι
skip number Όχι
asTree boolean Όχι
skipChildren number Όχι
limitChildren number Όχι
maxTreeDepth number Όχι
urlId string Όχι
userId string Όχι
anonUserId string Όχι
contextUserId string Όχι
hashTag string Όχι
parentId string Όχι
direction SortDirections Όχι

Απάντηση

Επιστρέφει: GetComments200Response

Παράδειγμα

Παράδειγμα getComments
Copy Copy
1
2const tenantId: string = 'tenant_acme_42';
3const response: GetComments200Response = await getComments(
4 tenantId,
5 1, // page
6 20, // limit
7 0, // skip
8 true, // asTree
9 1, // skipChildren
10 3, // limitChildren
11 4, // maxTreeDepth
12 'articles/2026/new-product-launch', // urlId
13 'user_7890', // userId
14 'anon_4f3b2', // anonUserId
15 undefined, // contextUserId
16 '#launch', // hashTag
17 undefined // parentId
18);
19

Λήψη δημόσιων σχολίων Internal Link

req tenantId urlId

Parameters

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
urlId string Ναι
page number Όχι
direction SortDirections Όχι
sso string Όχι
skip number Όχι
skipChildren number Όχι
limit number Όχι
limitChildren number Όχι
countChildren boolean Όχι
fetchPageForCommentId string Όχι
includeConfig boolean Όχι
countAll boolean Όχι
includei10n boolean Όχι
locale string Όχι
modules string Όχι
isCrawler boolean Όχι
includeNotificationCount boolean Όχι
asTree boolean Όχι
maxTreeDepth number Όχι
useFullTranslationIds boolean Όχι
parentId string Όχι
searchText string Όχι
hashTags Array Όχι
userId string Όχι
customConfigStr string Όχι
afterCommentId string Όχι
beforeCommentId string Όχι

Απόκριση

Επιστρέφει: GetCommentsPublic200Response

Παράδειγμα

Παράδειγμα getCommentsPublic
Copy Copy
1
2const tenantId: string = 'tenant_eu-west_01';
3const urlId: string = 'https://www.financialtimes.com/articles/2026/market-update-q1';
4const response: GetCommentsPublic200Response = await getCommentsPublic(
5 tenantId,
6 urlId,
7 2,
8 undefined,
9 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.tokenPayload.signature',
10 undefined,
11 0,
12 50,
13 5,
14 true,
15 undefined,
16 true,
17 false,
18 true,
19 'en-US',
20 'reactions,moderation',
21 false,
22 true,
23 true,
24 3,
25 false,
26 undefined,
27 'performance',
28 ['feature','fastcomments'],
29 'user_9876',
30 undefined,
31 undefined,
32 undefined
33);
34

Λήψη κειμένου σχολίου Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
commentId string Ναι
editKey string Όχι
sso string Όχι

Απόκριση

Επιστρέφει: GetCommentText200Response

Παράδειγμα

Παράδειγμα getCommentText
Copy Copy
1
2const tenantId: string = 'tenant_acme_001';
3const commentId: string = 'cmt_7890b';
4const editKey: string = 'edit_4f2d9b7c';
5const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9';
6
7const result: GetCommentText200Response = await getCommentText(tenantId, commentId, editKey, sso);
8

Λήψη ονομάτων χρηστών ψηφοφορίας σχολίου Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
commentId string Ναι
dir number Ναι
sso string Όχι

Απόκριση

Επιστρέφει: GetCommentVoteUserNames200Response

Παράδειγμα

getCommentVoteUserNames Παράδειγμα
Copy Copy
1
2(async () => {
3 const tenantId: string = 'tenant_4f2c1e';
4 const commentId: string = 'cmt_9a7b3d';
5 const dir: number = 1;
6 const resultUpvotes: GetCommentVoteUserNames200Response = await getCommentVoteUserNames(tenantId, commentId, dir);
7 const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.fakepayload.signature';
8 const dirDown: number = -1;
9 const resultDownvotes: GetCommentVoteUserNames200Response = await getCommentVoteUserNames(tenantId, commentId, dirDown, sso);
10 console.log(resultUpvotes, resultDownvotes);
11})();
12

Κλείδωμα σχολίου Internal Link

Παράμετροι

Name Type Required Description
tenantId string Ναι
commentId string Ναι
broadcastId string Ναι
sso string Όχι

Απόκριση

Επιστρέφει: LockComment200Response

Παράδειγμα

Παράδειγμα lockComment
Copy Copy
1
2const tenantId: string = "tenant_prod_8f3a2b";
3const commentId: string = "cmt_5d7e9a92";
4const broadcastId: string = "broadcast_2026_03_25_1400";
5const ssoToken: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.example.signature";
6const resultWithSso: LockComment200Response = await lockComment(tenantId, commentId, broadcastId, ssoToken);
7const resultWithoutSso: LockComment200Response = await lockComment(tenantId, commentId, broadcastId);
8

Καρφίτσωμα σχολίου Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
commentId string Ναι
broadcastId string Ναι
sso string Όχι

Απόκριση

Επιστρέφει: PinComment200Response

Παράδειγμα

Παράδειγμα pinComment
Copy Copy
1
2const tenantId: string = "tenant_4f2b9a";
3const commentId: string = "cmt_9f8e7d6c";
4const broadcastId: string = "brd_live_concert_2026-03-25";
5const sso: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.sso_payload_signature";
6
7const result: PinComment200Response = await pinComment(tenantId, commentId, broadcastId, sso);
8

Αποθήκευση σχολίου Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
createCommentParams CreateCommentParams Ναι
isLive boolean Όχι
doSpamCheck boolean Όχι
sendEmails boolean Όχι
populateNotifications boolean Όχι

Απόκριση

Επιστρέφει: SaveComment200Response

Παράδειγμα

Παράδειγμα saveComment
Copy Copy
1
2const tenantId: string = 'tenant_acme_001';
3const createCommentParams: CreateCommentParams = {
4 content: 'Great article — helped me fix a production issue in minutes.',
5 url: 'https://app.acme.com/blog/performance-tips',
6 author: { name: 'Maya Chen', email: 'maya.chen@acme.com' },
7 metadata: { locale: 'en-US', appVersion: '4.2.1' }
8} as CreateCommentParams;
9const isLive: boolean = true;
10const doSpamCheck: boolean = true;
11const sendEmails: boolean = false;
12const populateNotifications: boolean = true;
13const result: SaveComment200Response = await saveComment(tenantId, createCommentParams, isLive, doSpamCheck, sendEmails, populateNotifications);
14

Μαζική αποθήκευση σχολίων Internal Link

Παράμετροι

Όνομα Τύπος Απαραίτητο Περιγραφή
tenantId string Ναι
createCommentParams Array Ναι
isLive boolean Όχι
doSpamCheck boolean Όχι
sendEmails boolean Όχι
populateNotifications boolean Όχι

Απόκριση

Επιστρέφει: Array<SaveComment200Response

Παράδειγμα

Παράδειγμα saveCommentsBulk
Copy Copy
1
2const tenantId: string = 'acme-corp-01';
3const mentions1: CommentUserMentionInfo[] = [{ userId: 'user-123', displayName: 'Jane Doe' }];
4const hashtags1: CommentUserHashTagInfo[] = [{ tag: 'typescript' }];
5const createCommentParams: CreateCommentParams[] = [
6 {
7 content: 'Great insights on async/await patterns.',
8 authorName: 'John Smith',
9 authorEmail: 'john.smith@acme.com',
10 externalId: 'comment-001',
11 createdAt: '2026-03-25T10:15:00Z',
12 userMentions: mentions1,
13 userHashTags: hashtags1
14 },
15 {
16 content: 'I prefer using Promise.all for bulk ops.',
17 authorName: 'Emily Turner',
18 authorEmail: 'emily.turner@acme.com',
19 externalId: 'comment-002',
20 createdAt: '2026-03-25T10:20:00Z'
21 }
22];
23const result: SaveComment200Response[] = await saveCommentsBulk(tenantId, createCommentParams, true, true, false, true);
24

Ορισμός κειμένου σχολίου Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
commentId string Ναι
broadcastId string Ναι
commentTextUpdateRequest CommentTextUpdateRequest Ναι
editKey string Όχι
sso string Όχι

Απόκριση

Επιστρέφει: SetCommentText200Response

Παράδειγμα

Παράδειγμα setCommentText
Copy Copy
1
2const tenantId: string = 'tenant_6721f4';
3const commentId: string = 'cmt_9a3b2d';
4const broadcastId: string = 'live_2026_03_25';
5const editKey: string = 'edit_k_4f7b9';
6const sso: string = 'sso_tok_eyJhbGciOiJIUzI1';
7const commentTextUpdateRequest: CommentTextUpdateRequest = {
8 text: 'Updated to clarify the timeline and link the relevant docs.',
9 mentions: [{ userId: 'user_102', displayName: 'Alex Rivera' }],
10 hashtags: [{ tag: 'product-update' }]
11};
12const result: SetCommentText200Response = await setCommentText(tenantId, commentId, broadcastId, commentTextUpdateRequest, editKey, sso);
13

Κατάργηση αποκλεισμού χρήστη από σχόλιο Internal Link


Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι
unBlockFromCommentParams UnBlockFromCommentParams Ναι
userId string Όχι
anonUserId string Όχι

Απόκριση

Επιστρέφει: UnBlockCommentPublic200Response

Παράδειγμα

Παράδειγμα unBlockUserFromComment
Copy Copy
1
2const tenantId: string = 'tenant_87f3e1';
3const id: string = 'comment_9b2a4f';
4const unBlockFromCommentParams: UnBlockFromCommentParams = {
5 reason: 'Reviewed by moderation team — reinstated',
6 moderatorId: 'mod_21',
7 unblockedAt: new Date().toISOString()
8};
9const userId: string = 'user_42';
10const anonUserId: string = 'anon_e7f9';
11const result: UnBlockCommentPublic200Response = await unBlockUserFromComment(tenantId, id, unBlockFromCommentParams, userId, anonUserId);
12

Αναίρεση σήμανσης σχολίου Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι
userId string Όχι
anonUserId string Όχι

Απόκριση

Επιστρέφει: FlagComment200Response

Παράδειγμα

Παράδειγμα unFlagComment
Copy Copy
1
2const tenantId: string = 'acme-tenant-001';
3const commentId: string = 'cmt_9f8e7d6c';
4const userId: string = 'user_72b4a1c9';
5const anonUserId: string = 'anon_3d2c1b0a';
6const response: FlagComment200Response = await unFlagComment(tenantId, commentId, userId, anonUserId);
7

Ξεκλείδωμα σχολίου Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
commentId string Ναι
broadcastId string Ναι
sso string Όχι

Απόκριση

Επιστρέφει: LockComment200Response

Παράδειγμα

Παράδειγμα unLockComment
Copy Copy
1
2const tenantId: string = 'tenant_9d4f2b';
3const commentId: string = 'cmt_8a3e1f';
4const broadcastId: string = 'broadcast_2026_03_25';
5const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.example.signature';
6
7const result: LockComment200Response = await unLockComment(tenantId, commentId, broadcastId, sso);
8

Αφαίρεση καρφιτσώματος σχολίου Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
commentId string Ναι
broadcastId string Ναι
sso string Όχι

Απόκριση

Επιστρέφει: PinComment200Response

Παράδειγμα

Παράδειγμα unPinComment
Copy Copy
1
2const tenantId: string = 'tenant_7f9d2a3b';
3const commentId: string = 'comment_842b9c1f';
4const broadcastId: string = 'bcast_frontpage_202603';
5const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.exampleSignature';
6
7const result: PinComment200Response = await unPinComment(tenantId, commentId, broadcastId, sso);
8

Ενημέρωση σχολίου Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι
updatableCommentParams UpdatableCommentParams Ναι
contextUserId string Όχι
doSpamCheck boolean Όχι
isLive boolean Όχι

Απόκριση

Επιστρέφει: FlagCommentPublic200Response

Παράδειγμα

Παράδειγμα updateComment
Copy Copy
1
2const tenantId: string = "tenant_acme_corp_01";
3const id: string = "comment_20260325_4592";
4const updatableCommentParams: UpdatableCommentParams = {
5 body: "Updated the response to include a link to the RFC and fixed a typo in the second paragraph.",
6 editedByUserId: "user_8721",
7 isVisible: true
8};
9const contextUserId: string = "user_8721";
10const doSpamCheck: boolean = true;
11const isLive: boolean = true;
12const result: FlagCommentPublic200Response = await updateComment(tenantId, id, updatableCommentParams, contextUserId, doSpamCheck, isLive);
13

Ψηφοφορία σχολίου Internal Link

Παράμετροι

Όνομα Τύπος Απαραίτητο Περιγραφή
tenantId string Ναι
commentId string Ναι
urlId string Ναι
broadcastId string Ναι
voteBodyParams VoteBodyParams Ναι
sessionId string Όχι
sso string Όχι

Απόκριση

Επιστρέφει: VoteComment200Response

Παράδειγμα

Παράδειγμα voteComment
Copy Copy
1
2const tenantId: string = 'tenant_9f8b7c';
3const commentId: string = 'cmt_42f3a1';
4const urlId: string = 'articles/ai-trends-2026';
5const broadcastId: string = 'web';
6const voteBodyParams: VoteBodyParams = { vote: 1, reason: 'Insightful and on-topic' };
7const sessionId: string = 'sess_6d2b4c9e';
8const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9';
9const result: VoteComment200Response = await voteComment(tenantId, commentId, urlId, broadcastId, voteBodyParams, sessionId, sso);
10

Προσθήκη ρύθμισης domain Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
addDomainConfigParams AddDomainConfigParams Ναι

Απόκριση

Επιστρέφει: AddDomainConfig200Response

Διαγραφή ρύθμισης domain Internal Link


Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
domain string Ναι

Απόκριση

Επιστρέφει: DeleteDomainConfig200Response


Λήψη ρύθμισης domain Internal Link


Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
domain string Ναι

Απόκριση

Επιστρέφει: GetDomainConfig200Response


Λήψη ρυθμίσεων domain Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι

Απόκριση

Επιστρέφει: GetDomainConfigs200Response


Μερική ενημέρωση ρύθμισης domain Internal Link


Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
domainToUpdate string Ναι
patchDomainConfigParams PatchDomainConfigParams Ναι

Απόκριση

Επιστρέφει: GetDomainConfig200Response


Αντικατάσταση ρύθμισης domain Internal Link


Παράμετροι

Name Type Required Description
tenantId string Ναι
domainToUpdate string Ναι
updateDomainConfigParams UpdateDomainConfigParams Ναι

Απόκριση

Επιστρέφει: GetDomainConfig200Response


Δημιουργία προτύπου email Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
createEmailTemplateBody CreateEmailTemplateBody Ναι

Απόκριση

Επιστρέφει: CreateEmailTemplate200Response

Παράδειγμα

Παράδειγμα createEmailTemplate
Copy Copy
1
2const tenantId: string = "tenant_7a9f3c2b";
3const customConfig: CustomConfigParameters = { smtpHost: "smtp.fastmail.com", smtpPort: 587, useTLS: true };
4const createEmailTemplateBody: CreateEmailTemplateBody = {
5 name: "Account Notification",
6 subject: "Your ACME account was updated",
7 fromEmail: "no-reply@acme-corp.com",
8 replyTo: "support@acme-corp.com",
9 html: "<p>Hi {{user.firstName}}, your account settings were changed.</p>",
10 text: "Hi {{user.firstName}}, your account settings were changed.",
11 isActive: true,
12 description: "Used for transactional account update emails",
13 customConfig
14};
15const result: CreateEmailTemplate200Response = await createEmailTemplate(tenantId, createEmailTemplateBody);
16

Διαγραφή προτύπου email Internal Link

Παράμετροι

Name Type Required Description
tenantId string Ναι
id string Ναι

Απόκριση

Επιστρέφει: FlagCommentPublic200Response

Παράδειγμα

deleteEmailTemplate Παράδειγμα
Copy Copy
1
2const tenantId: string = 'tenant_7f4c9d1e';
3const templateId: string = 'tmpl_welcome_2024-03';
4const notifyAdmin: boolean | undefined = true; // παράδειγμα προαιρετικής παραμέτρου
5
6const result: FlagCommentPublic200Response = await deleteEmailTemplate(tenantId, templateId);
7

Διαγραφή σφάλματος απόδοσης προτύπου email Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι
errorId string Ναι

Απόκριση

Επιστρέφει: FlagCommentPublic200Response

Παράδειγμα

Παράδειγμα deleteEmailTemplateRenderError
Copy Copy
1
2const tenantId: string = 'tenant_7f3b4c2a';
3const templateEnvironment: string | undefined = 'production'; // προαιρετικός επιλογέας περιβάλλοντος
4const id: string = `emailTemplates/${templateEnvironment ?? 'staging'}/welcome_v2`;
5const errorId: string = 'err_5a9d2f1c';
6const result: FlagCommentPublic200Response = await deleteEmailTemplateRenderError(tenantId, id, errorId);
7console.log(result);
8

Λήψη προτύπου email Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι

Απόκριση

Επιστρέφει: GetEmailTemplate200Response

Παράδειγμα

Παράδειγμα getEmailTemplate
Copy Copy
1
2const tenantId: string = "acme-marketing-042";
3const templateId: string = "tpl_welcome_2026";
4const result: GetEmailTemplate200Response = await getEmailTemplate(tenantId, templateId);
5const template: CustomEmailTemplate | undefined = result.template;
6const subject: string | undefined = template?.subject;
7const customParams: CustomConfigParameters | undefined = template?.customConfigParameters;
8

Λήψη ορισμών προτύπων email Internal Link

Παράμετροι

Όνομα Τύπος Απαραίτητο Περιγραφή
tenantId string Ναι

Απόκριση

Επιστρέφει: GetEmailTemplateDefinitions200Response

Παράδειγμα

Παράδειγμα getEmailTemplateDefinitions
Copy Copy
1
2const tenantId: string = 'tenant_acme_eu_01';
3const templates: GetEmailTemplateDefinitions200Response = await getEmailTemplateDefinitions(tenantId);
4console.log('Email template definitions loaded for', tenantId, templates);
5

Λήψη σφαλμάτων απόδοσης προτύπων email Internal Link

Παράμετροι

Όνομα Τύπος Υποχρεωτικό Περιγραφή
tenantId string Ναι
id string Ναι
skip number Όχι

Απόκριση

Επιστρέφει: GetEmailTemplateRenderErrors200Response

Παράδειγμα

Παράδειγμα getEmailTemplateRenderErrors
Copy Copy
1
2(async () => {
3 const tenantId: string = 'acme-tenant-42';
4 const id: string = 'tmpl_3fa85f64-5717-4562-b3fc-2c963f66afa6';
5 const skip: number = 20;
6 const result: GetEmailTemplateRenderErrors200Response = await getEmailTemplateRenderErrors(tenantId, id, skip);
7 console.log(result);
8})();
9

Λήψη προτύπων email Internal Link

Παράμετροι

Name Type Required Description
tenantId string Ναι
skip number Όχι

Απάντηση

Επιστρέφει: GetEmailTemplates200Response

Παράδειγμα

Παράδειγμα getEmailTemplates
Copy Copy
1
2async function main(): Promise<void> {
3 const tenantId: string = 'tenant_5f3a9c2b';
4 const templates: GetEmailTemplates200Response = await getEmailTemplates(tenantId);
5 const skip: number = 20;
6 const pagedTemplates: GetEmailTemplates200Response = await getEmailTemplates(tenantId, skip);
7 console.log(templates, pagedTemplates);
8}
9main();
10

Απόδοση προτύπου email Internal Link


Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
renderEmailTemplateBody RenderEmailTemplateBody Ναι
locale string Όχι

Απόκριση

Επιστρέφει: RenderEmailTemplate200Response

Παράδειγμα

Παράδειγμα renderEmailTemplate
Copy Copy
1
2const tenantId: string = 'tenant_b6f3c2';
3const renderEmailTemplateBody: RenderEmailTemplateBody = {
4 templateId: 'comment-notification',
5 recipient: { name: 'Ava Thompson', email: 'ava.thompson@publisher.com' },
6 context: {
7 siteName: 'City Gazette',
8 commentText: 'Thanks for the in-depth coverage — very helpful.',
9 articleTitle: 'Downtown Redevelopment Plan Advances',
10 threadUrl: 'https://citygazette.example/articles/2026/redevelopment#comments'
11 }
12};
13const locale: string = 'en-US';
14const result: RenderEmailTemplate200Response = await renderEmailTemplate(tenantId, renderEmailTemplateBody, locale);
15

Ενημέρωση προτύπου email Internal Link


Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι
updateEmailTemplateBody UpdateEmailTemplateBody Ναι

Απόκριση

Επιστρέφει: FlagCommentPublic200Response

Παράδειγμα

Παράδειγμα updateEmailTemplate
Copy Copy
1
2const tenantId: string = "tenant_76a4b2";
3const id: string = "template_9f3c1e";
4const updateEmailTemplateBody: UpdateEmailTemplateBody = {
5 name: "Comment Flag Notification",
6 subject: "A comment was flagged on your-site.com",
7 bodyHtml: "<p>Admin,</p><p>User {{commenterName}} flagged a comment: “{{commentText}}”</p>",
8 isEnabled: true,
9 description: "Email sent to moderators when a comment is flagged (optional field included)"
10};
11const result: FlagCommentPublic200Response = await updateEmailTemplate(tenantId, id, updateEmailTemplateBody);
12

Λήψη αρχείου συμβάντων Internal Link

req tenantId urlId userIdWS

Παράμετροι

Name Type Required Description
tenantId string Ναι
urlId string Ναι
userIdWS string Ναι
startTime number Ναι
endTime number Ναι

Απάντηση

Επιστρέφει: GetEventLog200Response

Παράδειγμα

Παράδειγμα getEventLog
Copy Copy
1
2const tenantId: string = 'fastcomments-tenant-01';
3const urlId: string = 'article-2026-03-25';
4const userIdWS: string | undefined = undefined; // προαιρετική τιμή upstream
5const startTime: number = Date.parse('2026-03-01T00:00:00Z');
6const endTime: number = Date.parse('2026-03-25T23:59:59Z');
7
8const eventLogResponse: GetEventLog200Response = await getEventLog(
9 tenantId,
10 urlId,
11 userIdWS ?? 'ws_user_8b1f',
12 startTime,
13 endTime
14);
15

Λήψη παγκόσμιας καταγραφής συμβάντων Internal Link

req tenantId urlId userIdWS

Παράμετροι

Name Type Required Description
tenantId string Ναι
urlId string Ναι
userIdWS string Ναι
startTime number Ναι
endTime number Ναι

Απόκριση

Επιστρέφει: GetEventLog200Response

Παράδειγμα

Παράδειγμα getGlobalEventLog
Copy Copy
1
2const tenantId: string = "tenant-84b2f1";
3const urlId: string = "article-6721";
4const userIdWS: string = "ws-conn-9a3c";
5const startTime: number = Date.now() - 7 * 24 * 60 * 60 * 1000; // πριν 7 ημέρες
6const endTimeOptional: number | undefined = undefined; // προαιρετικό τέλος χρονικού διαστήματος
7const endTime: number = endTimeOptional ?? Date.now();
8const eventLog: GetEventLog200Response = await getGlobalEventLog(tenantId, urlId, userIdWS, startTime, endTime);
9

Δημιουργία ανάρτησης feed Internal Link

Παράμετροι

Όνομα Τύπος Απαραίτητο Περιγραφή
tenantId string Yes
createFeedPostParams CreateFeedPostParams Yes
broadcastId string No
isLive boolean No
doSpamCheck boolean No
skipDupCheck boolean No

Απόκριση

Επιστρέφει: CreateFeedPost200Response

Παράδειγμα

Παράδειγμα createFeedPost
Copy Copy
1
2const tenantId: string = "tenant_7f3b9a";
3const createFeedPostParams: CreateFeedPostParams = {
4 title: "Weekly Product Update — March 2026",
5 body: "We've shipped performance improvements and bug fixes across the web client. See the release notes for details.",
6 authorId: "user_86fa2b",
7 allowComments: true,
8 media: [
9 {
10 url: "https://cdn.example.com/images/update-march.png",
11 mimeType: "image/png",
12 caption: "Performance graph",
13 assets: [{ url: "https://cdn.example.com/images/update-march@2x.png", width: 1600, height: 900 }]
14 }
15 ],
16 links: [{ url: "https://www.example.com/release-notes/march-2026", title: "Release notes" }]
17};
18const broadcastId: string = "broadcast_prod_updates_202603";
19const isLive: boolean = false;
20const doSpamCheck: boolean = true;
21const skipDupCheck: boolean = false;
22const result: CreateFeedPost200Response = await createFeedPost(tenantId, createFeedPostParams, broadcastId, isLive, doSpamCheck, skipDupCheck);
23

Δημιουργία δημόσιας ανάρτησης feed Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
createFeedPostParams CreateFeedPostParams Ναι
broadcastId string Όχι
sso string Όχι

Απόκριση

Επιστρέφει: CreateFeedPostPublic200Response

Παράδειγμα

Παράδειγμα createFeedPostPublic
Copy Copy
1
2const tenantId: string = "tenant_987654321";
3const asset: FeedPostMediaItemAsset = { url: "https://cdn.fastcomments.com/uploads/team-photo.jpg", mimeType: "image/jpeg", sizeBytes: 324512 };
4const mediaItem: FeedPostMediaItem = { type: "image", assets: [asset], caption: "Team launch day" };
5const link: FeedPostLink = { url: "https://www.example.com/blog/product-update-march-2026", title: "Product update — March 2026" };
6const createFeedPostParams: CreateFeedPostParams = {
7 title: "Product update — March 2026",
8 content: "<p>We shipped performance improvements and two new integrations.</p>",
9 media: [mediaItem],
10 link,
11 visibility: "public",
12 tags: ["product","release","march-2026"],
13 customConfig: { allowComments: true, requireTOS: false }
14};
15const broadcastId: string = "broadcast_2026_03_25_live";
16const sso: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiIxMjM0NSIsImlhdCI6MTY5MDI0MDB9.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c";
17const result: CreateFeedPostPublic200Response = await createFeedPostPublic(tenantId, createFeedPostParams, broadcastId, sso);
18

Διαγραφή δημόσιας ανάρτησης feed Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Yes
postId string Yes
broadcastId string No
sso string No

Απόκριση

Επιστρέφει: DeleteFeedPostPublic200Response

Παράδειγμα

deleteFeedPostPublic Παράδειγμα
Copy Copy
1
2const tenantId: string = "tenant_5f8a9b3c";
3const postId: string = "post_a1b2c3d4";
4const broadcastId: string = "broadcast_2026-03-25T10:00:00Z";
5const sso: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyMTIzIiwiaWF0IjoxNjE5MjM5MjAwfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c";
6
7const resultWithOptional: DeleteFeedPostPublic200Response = await deleteFeedPostPublic(tenantId, postId, broadcastId, sso);
8const resultRequiredOnly: DeleteFeedPostPublic200Response = await deleteFeedPostPublic(tenantId, postId);
9

Λήψη αναρτήσεων feed Internal Link

req tenantId afterId

Παράμετροι

Name Type Required Description
tenantId string Ναι
afterId string Όχι
limit number Όχι
tags Array Όχι

Απόκριση

Επιστρέφει: GetFeedPosts200Response

Παράδειγμα

Παράδειγμα getFeedPosts
Copy Copy
1
2const initialPage: GetFeedPosts200Response = await getFeedPosts('tenant_9f1b3d', undefined, 20, ['sports', 'local']);
3const nextPage: GetFeedPosts200Response = await getFeedPosts('tenant_9f1b3d', 'post_abc123', 20, ['sports', 'local']);
4

Λήψη δημόσιων αναρτήσεων feed Internal Link

req tenantId afterId

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
afterId string Όχι
limit number Όχι
tags Array Όχι
sso string Όχι
isCrawler boolean Όχι
includeUserInfo boolean Όχι

Απόκριση

Επιστρέφει: GetFeedPostsPublic200Response

Παράδειγμα

Παράδειγμα getFeedPostsPublic
Copy Copy
1
2const tenantId: string = 'tenant_acme_01';
3const afterId: string = 'fp_20260301_042';
4const limit: number = 25;
5const tags: Array<string> = ['technology', 'announcement'];
6const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjoiamRvZSJ9.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c';
7const isCrawler: boolean = false;
8const includeUserInfo: boolean = true;
9const response: GetFeedPostsPublic200Response = await getFeedPostsPublic(tenantId, afterId, limit, tags, sso, isCrawler, includeUserInfo);
10

Λήψη στατιστικών αναρτήσεων feed Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
postIds Array Ναι
sso string Όχι

Απόκριση

Επιστρέφει: GetFeedPostsStats200Response

Παράδειγμα

Παράδειγμα getFeedPostsStats
Copy Copy
1
2const tenantId: string = 'tenant_9b2f1c4a';
3const postIds: Array<string> = [
4 '8f14e45f-ea82-4c7a-b6b2-1a2b3c4d5e6f',
5 'd0e1f2a3-b4c5-6d7e-8f90-1234567890ab'
6];
7const sso: string = 'sso_eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.signature';
8const statsWithoutSSO: GetFeedPostsStats200Response = await getFeedPostsStats(tenantId, postIds);
9const statsWithSSO: GetFeedPostsStats200Response = await getFeedPostsStats(tenantId, postIds, sso);
10

Λήψη αντιδράσεων χρήστη (δημόσιο) Internal Link

Παράμετροι

Name Type Required Description
tenantId string Ναι
postIds Array Όχι
sso string Όχι

Απόκριση

Επιστρέφει: GetUserReactsPublic200Response

Παράδειγμα

Παράδειγμα getUserReactsPublic
Copy Copy
1
2const tenantId: string = "acme-tenant-8a4d2c";
3const postIds: string[] = ["post-645a2f", "post-645a30"];
4const sso: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyXzEyMyIsImlhdCI6MTY2MTYwMDAwMH0.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c";
5const result: GetUserReactsPublic200Response = await getUserReactsPublic(tenantId, postIds, sso);
6

Αντίδραση σε δημόσια ανάρτηση feed Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
postId string Ναι
reactBodyParams ReactBodyParams Ναι
isUndo boolean Όχι
broadcastId string Όχι
sso string Όχι

Response

Επιστρέφει: ReactFeedPostPublic200Response

Παράδειγμα

Παράδειγμα reactFeedPostPublic
Copy Copy
1
2const tenantId: string = 'd290f1ee-6c54-4b01-90e6-d701748f0851';
3const postId: string = 'c1a2b3d4-5678-90ab-cdef-1234567890ab';
4const reactBodyParams: ReactBodyParams = { reaction: 'like', emoji: '👍', source: 'web' };
5const isUndo: boolean = false;
6const broadcastId: string = 'broadcast-2026-03-25-001';
7const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyMTIzIn0.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c';
8const result: ReactFeedPostPublic200Response = await reactFeedPostPublic(tenantId, postId, reactBodyParams, isUndo, broadcastId, sso);
9

Ενημέρωση ανάρτησης feed Internal Link

Παράμετροι

Name Type Required Description
tenantId string Yes
id string Yes
feedPost FeedPost Yes

Απόκριση

Επιστρέφει: FlagCommentPublic200Response

Παράδειγμα

Παράδειγμα updateFeedPost
Copy Copy
1
2const tenantId: string = 'acme-global-tenant-42';
3const id: string = 'f47ac10b-58cc-4372-a567-0e02b2c3d479';
4
5const asset: FeedPostMediaItemAsset = {
6 url: 'https://cdn.acme.com/images/product-launch.jpg',
7 mimeType: 'image/jpeg',
8 width: 1200,
9 height: 630
10};
11
12const mediaItem: FeedPostMediaItem = {
13 id: 'media-001',
14 type: 'image',
15 asset
16};
17
18const link: FeedPostLink = {
19 url: 'https://acme.com/blog/product-launch',
20 title: 'Product Launch Details'
21};
22
23const feedPost: FeedPost = {
24 title: 'Introducing the Q3 Product Suite',
25 body: 'We are excited to unveil our new lineup for Q3, focusing on performance and security improvements.',
26 media: [mediaItem], // προαιρετικός πίνακας περιλαμβάνεται
27 links: [link], // προαιρετικοί σύνδεσμοι περιλαμβάνονται
28 isPublished: true // προαιρετική σημαία δημοσίευσης που χρησιμοποιείται εδώ
29};
30
31const result: FlagCommentPublic200Response = await updateFeedPost(tenantId, id, feedPost);
32

Ενημέρωση δημόσιας ανάρτησης feed Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
postId string Ναι
updateFeedPostParams UpdateFeedPostParams Ναι
broadcastId string Όχι
sso string Όχι

Απόκριση

Επιστρέφει: CreateFeedPostPublic200Response

Παράδειγμα

Παράδειγμα updateFeedPostPublic
Copy Copy
1
2const tenantId: string = "tenant_9f4b2";
3const postId: string = "post_21a8e";
4const updateFeedPostParams: UpdateFeedPostParams = {
5 title: "Quarterly product update",
6 body: "Major performance improvements and bug fixes deployed today. See release notes and schedule.",
7 links: [{ url: "https://status.example.com/release-notes", title: "Release notes" }],
8 media: [
9 {
10 type: "image",
11 assets: [{ url: "https://cdn.example.com/updates/q2.png", mimeType: "image/png", width: 1200, height: 628 }]
12 }
13 ]
14};
15const broadcastId: string = "broadcast_live_202603";
16const sso: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.example.signature";
17const result: CreateFeedPostPublic200Response = await updateFeedPostPublic(tenantId, postId, updateFeedPostParams, broadcastId, sso);
18

Σήμανση δημόσιου σχολίου Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
commentId string Ναι
isFlagged boolean Ναι
sso string Όχι

Απόκριση

Επιστρέφει: FlagCommentPublic200Response

Παράδειγμα

Παράδειγμα flagCommentPublic
Copy Copy
1
2const tenantId: string = "tenant_9f8b3c";
3const commentId: string = "comment_72a1d4";
4const isFlagged: boolean = true;
5const sso: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiI1Njc4OSJ9.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c";
6const result: FlagCommentPublic200Response = await flagCommentPublic(tenantId, commentId, isFlagged, sso);
7

Προσθήκη hashtag Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Όχι
createHashTagBody CreateHashTagBody Όχι

Απόκριση

Επιστρέφει: AddHashTag200Response

Παράδειγμα

Παράδειγμα addHashTag
Copy Copy
1
2const tenantId: string = 'tenant_acme_01';
3const createHashTagBody: CreateHashTagBody = {
4 name: 'feature-request',
5 label: 'Feature Request',
6 color: '#FF5722',
7 enabled: true
8};
9const response: AddHashTag200Response = await addHashTag(tenantId, createHashTagBody);
10const responseWithoutTenant: AddHashTag200Response = await addHashTag(undefined, createHashTagBody);
11

Μαζική προσθήκη hashtags Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Όχι
bulkCreateHashTagsBody BulkCreateHashTagsBody Όχι

Απόκριση

Επιστρέφει: AddHashTagsBulk200Response

Παράδειγμα

Παράδειγμα addHashTagsBulk
Copy Copy
1
2// Δημιουργία αναγνωριστικού tenant (προαιρετική παράμετρος)
3const tenantId: string = "tenant_9f8c2b7a";
4
5// Προετοιμασία μεμονωμένων εγγραφών ετικετών
6const tag1: BulkCreateHashTagsBodyTagsInner = {
7 name: "product-feedback",
8 label: "Product Feedback",
9 color: "#1f8a70",
10 description: "User suggestions and enhancement requests",
11 isActive: true
12};
13
14const tag2: BulkCreateHashTagsBodyTagsInner = {
15 name: "bug-report",
16 label: "Bug Report",
17 color: "#d64545",
18 description: "User-reported defects and issues",
19 isActive: true
20};
21
22// Σώμα για μαζική δημιουργία (προαιρετική παράμετρος)
23const bulkCreateHashTagsBody: BulkCreateHashTagsBody = {
24 tags: [tag1, tag2]
25};
26
27// Κλήση της παγκόσμιας ασύγχρονης συνάρτησης και ανάθεση του τυποποιημένου αποτελέσματος
28const result: AddHashTagsBulk200Response = await addHashTagsBulk(tenantId, bulkCreateHashTagsBody);
29

Διαγραφή hashtag Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tag string Ναι
tenantId string Όχι
deleteHashTagRequest DeleteHashTagRequest Όχι

Απόκριση

Επιστρέφει: FlagCommentPublic200Response

Παράδειγμα

Παράδειγμα deleteHashTag
Copy Copy
1
2const tag: string = "breaking-news";
3const tenantId: string = "tenant_12345";
4const deleteRequest: DeleteHashTagRequest = { initiatedBy: "moderator@newsorg.com", purgeAllOccurrences: true };
5const result: FlagCommentPublic200Response = await deleteHashTag(tag, tenantId, deleteRequest);
6

Λήψη hashtags Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
page number Όχι

Απόκριση

Επιστρέφει: GetHashTags200Response

Παράδειγμα

Παράδειγμα getHashTags
Copy Copy
1
2const tenantId: string = 'acme-tenant-42';
3const pageNumber: number = 2;
4const responseWithPage: GetHashTags200Response = await getHashTags(tenantId, pageNumber);
5const responseWithoutPage: GetHashTags200Response = await getHashTags(tenantId);
6

Μερική ενημέρωση hashtag Internal Link

Παράμετροι

Όνομα Τύπος Υποχρεωτικό Περιγραφή
tag string Ναι
tenantId string Όχι
updateHashTagBody UpdateHashTagBody Όχι

Απόκριση

Επιστρέφει: PatchHashTag200Response

Παράδειγμα

Παράδειγμα patchHashTag
Copy Copy
1
2const tag: string = "feature-ux-refresh";
3const tenantId: string = "tenant_4f92c1";
4const updateHashTagBody: UpdateHashTagBody = {
5 label: "UX Refresh",
6 description: "Track comments related to the 2026 UX redesign",
7 isActive: true,
8 metadata: { owner: "product-design", rolloutPhase: "phase-2" }
9};
10const response: PatchHashTag200Response = await patchHashTag(tag, tenantId, updateHashTagBody);
11

Δημιουργία διαχειριστή Internal Link

Παράμετροι

Name Type Required Description
tenantId string Ναι
createModeratorBody CreateModeratorBody Ναι

Απάντηση

Επιστρέφει: CreateModerator200Response

Παράδειγμα

Παράδειγμα createModerator
Copy Copy
1
2const tenantId: string = 'tenant_7d9f2b4a';
3const customConfig: CustomConfigParameters = { timezone: 'UTC', moderationQueueEnabled: true };
4const createModeratorBody: CreateModeratorBody = {
5 email: 'jane.martin@publisher.com',
6 displayName: 'Jane Martin',
7 roles: ['moderator'],
8 sendWelcomeEmail: true,
9 customConfig
10};
11const response: CreateModerator200Response = await createModerator(tenantId, createModeratorBody);
12

Διαγραφή διαχειριστή Internal Link


Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι
sendEmail string Όχι

Απόκριση

Επιστρέφει: FlagCommentPublic200Response

Παράδειγμα

Παράδειγμα deleteModerator
Copy Copy
1
2const tenantId: string = 'tenant_9f3b2d4a6c';
3const moderatorId: string = 'moderator_84a1b9c2';
4const sendEmail: string = 'true';
5const result: FlagCommentPublic200Response = await deleteModerator(tenantId, moderatorId, sendEmail);
6

Λήψη διαχειριστή Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι

Απόκριση

Επιστρέφει: GetModerator200Response

Παράδειγμα

Παράδειγμα getModerator
Copy Copy
1
2const tenantId: string = 'acme-corp-tenant-123';
3const id: string = 'mod-987654321';
4const moderatorResponse: GetModerator200Response = await getModerator(tenantId, id);
5

Λήψη διαχειριστών Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
skip number Όχι

Απάντηση

Επιστρέφει: GetModerators200Response

Παράδειγμα

Παράδειγμα getModerators
Copy Copy
1
2const tenantId: string = 'tenant-12345-prod';
3const moderatorsPage1: GetModerators200Response = await getModerators(tenantId);
4const moderatorsPage2: GetModerators200Response = await getModerators(tenantId, 50);
5

Αποστολή πρόσκλησης Internal Link

Παράμετροι

Όνομα Τύπος Απαραίτητο Περιγραφή
tenantId string Ναι
id string Ναι
fromName string Ναι

Απόκριση

Επιστρέφει: FlagCommentPublic200Response

Παράδειγμα

Παράδειγμα sendInvite
Copy Copy
1
2const tenantId: string = 'tenant_acme-42';
3const id: string = 'comment_8f3b21a7';
4const fromName: string = 'Elena Morales';
5const replyToEmail: string | undefined = undefined;
6
7const result: FlagCommentPublic200Response = await sendInvite(tenantId, id, fromName, replyToEmail);
8

Ενημέρωση διαχειριστή Internal Link

Παράμετροι

Name Type Required Description
tenantId string Ναι
id string Ναι
updateModeratorBody UpdateModeratorBody Ναι

Απάντηση

Επιστρέφει: FlagCommentPublic200Response

Παράδειγμα

Παράδειγμα updateModerator
Copy Copy
1
2const tenantId: string = "acme-enterprises-42";
3const id: string = "moderator_517";
4const updateModeratorBody: UpdateModeratorBody = {
5 displayName: "Sofia Martinez",
6 email: "sofia.martinez@acme.com",
7 permissions: ["approve_comments", "flag_spam", "suspend_users"],
8 active: true,
9 avatarUrl: "https://cdn.acme.com/avatars/sofia.jpg" // προαιρετικό πεδίο για παράδειγμα
10};
11const result: FlagCommentPublic200Response = await updateModerator(tenantId, id, updateModeratorBody);
12

Διαγραφή πλήθους ειδοποιήσεων Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι

Απόκριση

Επιστρέφει: FlagCommentPublic200Response

Παράδειγμα

deleteNotificationCount Παράδειγμα
Copy Copy
1
2const tenantSuffix: string | undefined = undefined;
3const tenantId: string = tenantSuffix ? `tenant-${tenantSuffix}` : 'tenant-9142a7';
4const id: string = '3f9b2a44-1c2e-4d3b-9f6a-8e7c6d5b2a1f';
5const result: FlagCommentPublic200Response = await deleteNotificationCount(tenantId, id);
6console.log(result);
7

Λήψη προσωρινά αποθηκευμένου πλήθους ειδοποιήσεων Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι

Απόκριση

Επιστρέφει: GetCachedNotificationCount200Response

Παράδειγμα

Παράδειγμα getCachedNotificationCount
Copy Copy
1
2const tenantId: string = 'tenant_acme_42';
3const id: string = 'user_00012345';
4const includeUnreadOnly: boolean | undefined = true; // σημαία προαιρετικής παραμέτρου (παραδειγματικά)
5const result: GetCachedNotificationCount200Response = await getCachedNotificationCount(tenantId, id);
6

Λήψη πλήθους ειδοποιήσεων Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
userId string Όχι
urlId string Όχι
fromCommentId string Όχι
viewed boolean Όχι
type string Όχι

Απάντηση

Επιστρέφει: GetNotificationCount200Response

Παράδειγμα

Παράδειγμα getNotificationCount
Copy Copy
1
2const tenantId: string = 'tenant_abc123';
3const userId: string = 'user_987654321';
4const urlId: string = 'https://example.com/news/2026/new-features';
5const viewed: boolean = false;
6const type: string = 'reply';
7const notificationCountResponse: GetNotificationCount200Response = await getNotificationCount(tenantId, userId, urlId, undefined, viewed, type);
8

Λήψη ειδοποιήσεων Internal Link

Παράμετροι

Name Type Απαιτείται Περιγραφή
tenantId string Ναι
userId string Όχι
urlId string Όχι
fromCommentId string Όχι
viewed boolean Όχι
type string Όχι
skip number Όχι

Απόκριση

Επιστρέφει: GetNotifications200Response

Παράδειγμα

Παράδειγμα getNotifications
Copy Copy
1
2const tenantId: string = "tenant_84b3f2";
3const userId: string = "user_1279";
4const urlId: string = "https://www.example.com/articles/2026/03/25/new-feature";
5const fromCommentId: string = "cmt_5421";
6const viewed: boolean = false;
7const type: string = "mention";
8const skip: number = 0;
9const notifications: GetNotifications200Response = await getNotifications(tenantId, userId, urlId, fromCommentId, viewed, type, skip);
10

Ενημέρωση ειδοποίησης Internal Link


Παράμετροι

Name Type Required Description
tenantId string Ναι
id string Ναι
updateNotificationBody UpdateNotificationBody Ναι
userId string Όχι

Απόκριση

Επιστρέφει: FlagCommentPublic200Response

Παράδειγμα

Παράδειγμα updateNotification
Copy Copy
1
2const tenantId: string = 'tenant_prod_8f4b2c';
3const id: string = 'notification_61a2e9';
4const userId: string = 'moderator_107';
5const updateNotificationBody: UpdateNotificationBody = {
6 name: 'Flagged Comment Notification',
7 enabled: true,
8 channels: ['email', 'inbox'],
9 templateId: 'tmpl_mod_alerts_01',
10 severity: 'high'
11};
12const result: FlagCommentPublic200Response = await updateNotification(tenantId, id, updateNotificationBody, userId);
13

Προσθήκη σελίδας Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
createAPIPageData CreateAPIPageData Ναι

Απόκριση

Επιστρέφει: AddPageAPIResponse


Διαγραφή σελίδας Internal Link


Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι

Απόκριση

Επιστρέφει: DeletePageAPIResponse


Λήψη σελίδας μέσω URL ID Internal Link


Παράμετροι

Όνομα Τύπος Απαραίτητο Περιγραφή
tenantId string Ναι
urlId string Ναι

Απόκριση

Επιστρέφει: GetPageByURLIdAPIResponse


Λήψη σελίδων Internal Link


Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι

Απόκριση

Επιστρέφει: GetPagesAPIResponse


Μερική ενημέρωση σελίδας Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι
updateAPIPageData UpdateAPIPageData Ναι

Απόκριση

Επιστρέφει: PatchPageAPIResponse


Διαγραφή εκκρεμούς συμβάντος webhook Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Yes
id string Yes

Απόκριση

Επιστρέφει: FlagCommentPublic200Response

Παράδειγμα

Παράδειγμα deletePendingWebhookEvent
Copy Copy
1
2(async () => {
3 const tenantId: string = 'tenant_42f7c9b1';
4 const id: string = 'pending_webhook_ev_8f3b9a2d';
5 const reason?: string = undefined; // παράδειγμα προαιρετικής παραμέτρου (δεν απαιτείται από τη συνάρτηση)
6 const result: FlagCommentPublic200Response = await deletePendingWebhookEvent(tenantId, id);
7 console.log(result);
8})();
9

Λήψη πλήθους εκκρεμών συμβάντων webhook Internal Link

Παράμετροι

Name Type Required Description
tenantId string Ναι
commentId string Όχι
externalId string Όχι
eventType string Όχι
type string Όχι
domain string Όχι
attemptCountGT number Όχι

Απόκριση

Επιστρέφει: GetPendingWebhookEventCount200Response

Παράδειγμα

Παράδειγμα getPendingWebhookEventCount
Copy Copy
1
2const tenantId: string = "tenant_8d3b7a2f";
3const commentId: string | undefined = "comment_79a2b";
4const eventType: string | undefined = "comment.created";
5const domain: string | undefined = "forum.acme-corp.com";
6const attemptCountGT: number | undefined = 1;
7const result: GetPendingWebhookEventCount200Response = await getPendingWebhookEventCount(
8 tenantId,
9 commentId,
10 undefined,
11 eventType,
12 undefined,
13 domain,
14 attemptCountGT
15);
16

Λήψη εκκρεμών συμβάντων webhook Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
commentId string Όχι
externalId string Όχι
eventType string Όχι
type string Όχι
domain string Όχι
attemptCountGT number Όχι
skip number Όχι

Απόκριση

Επιστρέφει: GetPendingWebhookEvents200Response

Παράδειγμα

Παράδειγμα getPendingWebhookEvents
Copy Copy
1
2const tenantId: string = 'tenant_9b3f7c';
3const commentId: string | undefined = undefined;
4const externalId: string | undefined = 'external-572a';
5const eventType: string | undefined = 'comment.updated';
6const type: string | undefined = 'outbound';
7const domain: string | undefined = 'reviews.example.com';
8const attemptCountGT: number | undefined = 1;
9const skip: number | undefined = 20;
10
11const result: GetPendingWebhookEvents200Response = await getPendingWebhookEvents(
12 tenantId,
13 commentId,
14 externalId,
15 eventType,
16 type,
17 domain,
18 attemptCountGT,
19 skip
20);
21

Δημιουργία ρύθμισης ερώτησης Internal Link

Παράμετροι

Name Type Required Description
tenantId string Ναι
createQuestionConfigBody CreateQuestionConfigBody Ναι

Απόκριση

Επιστρέφει: CreateQuestionConfig200Response

Παράδειγμα

Παράδειγμα createQuestionConfig
Copy Copy
1
2const tenantId: string = "tenant_9f8b2c";
3const option: QuestionConfigCustomOptionsInner = { id: "opt_yes", label: "Yes, helpful", value: "yes" };
4const createQuestionConfigBody: CreateQuestionConfigBody = {
5 title: "Article usefulness",
6 prompt: "Was this article helpful?",
7 type: "singleChoice",
8 required: false, // προαιρετική παράμετρος (παράδειγμα)
9 options: [option],
10 saveBehavior: "immediate"
11};
12const result: CreateQuestionConfig200Response = await createQuestionConfig(tenantId, createQuestionConfigBody);
13

Διαγραφή ρύθμισης ερώτησης Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι

Απόκριση

Επιστρέφει: FlagCommentPublic200Response

Παράδειγμα

deleteQuestionConfig Παράδειγμα
Copy Copy
1
2const tenantId: string = "acme-enterprises-01";
3const idOptional: string | undefined = "f47ac10b-58cc-4372-a567-0e02b2c3d479";
4const id: string = idOptional ?? "11111111-1111-1111-1111-111111111111";
5const response: FlagCommentPublic200Response = await deleteQuestionConfig(tenantId, id);
6

Λήψη ρύθμισης ερώτησης Internal Link

Parameters

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι

Απόκριση

Επιστρέφει: GetQuestionConfig200Response

Παράδειγμα

Παράδειγμα getQuestionConfig
Copy Copy
1
2const tenantId: string = 'acme-tenant-92';
3const id: string = 'question-2026-07-42';
4const response: GetQuestionConfig200Response = await getQuestionConfig(tenantId, id);
5
6function summarize(cfg: GetQuestionConfig200Response, includeDetails?: boolean): string {
7 return includeDetails ? 'Question config (detailed)' : 'Question config (summary)';
8}
9
10const summary: string = summarize(response);
11

Λήψη ρυθμίσεων ερωτήσεων Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
skip number Όχι

Απόκριση

Επιστρέφει: GetQuestionConfigs200Response

Παράδειγμα

Παράδειγμα getQuestionConfigs
Copy Copy
1
2const tenantId: string = "tenant_acme_9876";
3const configsWithoutSkip: GetQuestionConfigs200Response = await getQuestionConfigs(tenantId);
4const configsWithSkip: GetQuestionConfigs200Response = await getQuestionConfigs(tenantId, 20);
5

Ενημέρωση ρύθμισης ερώτησης Internal Link

Παράμετροι

Όνομα Τύπος Απαιτούμενο Περιγραφή
tenantId string Ναι
id string Ναι
updateQuestionConfigBody UpdateQuestionConfigBody Ναι

Απόκριση

Επιστρέφει: FlagCommentPublic200Response

Παράδειγμα

Παράδειγμα updateQuestionConfig
Copy Copy
1
2const tenantId: string = 'tenant_42e8b';
3const id: string = 'question_9f4a2';
4const updateQuestionConfigBody: UpdateQuestionConfigBody = {
5 questionText: 'How helpful was this article?',
6 description: 'Shown to users below the question (optional)',
7 required: true,
8 renderingType: 'Likert' as QuestionRenderingType,
9 customOptions: [
10 { label: 'Very helpful', value: '5' } as QuestionConfigCustomOptionsInner,
11 { label: 'Somewhat helpful', value: '3' } as QuestionConfigCustomOptionsInner,
12 { label: 'Not helpful', value: '1' } as QuestionConfigCustomOptionsInner
13 ],
14 whenSave: 'notify' as QuestionWhenSave
15};
16const result: FlagCommentPublic200Response = await updateQuestionConfig(tenantId, id, updateQuestionConfigBody);
17

Δημιουργία αποτελέσματος ερώτησης Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
createQuestionResultBody CreateQuestionResultBody Ναι

Απόκριση

Επιστρέφει: CreateQuestionResult200Response

Παράδειγμα

Παράδειγμα createQuestionResult
Copy Copy
1
2const tenantId: string = "tenant-72b1f4";
3const meta: MetaItem[] = [{ key: "platform", value: "web" }];
4const createQuestionResultBody: CreateQuestionResultBody = {
5 questionId: "question-83472",
6 commenterId: "user-5521",
7 answers: [{ subQuestionId: "sq-1", value: "Yes" }],
8 meta, // προαιρετικά μεταδεδομένα
9 note: "Follow-up requested" // προαιρετική παράμετρος για επίδειξη
10};
11const result: CreateQuestionResult200Response = await createQuestionResult(tenantId, createQuestionResultBody);
12

Διαγραφή αποτελέσματος ερώτησης Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι

Απόκριση

Επιστρέφει: FlagCommentPublic200Response

Παράδειγμα

Παράδειγμα deleteQuestionResult
Copy Copy
1
2const tenantId: string = "org-82479";
3const questionId: string = "q-6a3d2e1f";
4const includeArchived?: boolean = false; // προαιρετική παράμετρος που δείχνει εναλλακτική επιλογή στόχου
5const targetId: string = includeArchived ? "q-archived-112233" : questionId;
6const result: FlagCommentPublic200Response = await deleteQuestionResult(tenantId, targetId);
7

Λήψη αποτελέσματος ερώτησης Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι

Απάντηση

Επιστρέφει: GetQuestionResult200Response

Παράδειγμα

Παράδειγμα getQuestionResult
Copy Copy
1
2const post: { title: string; questionId?: string } = { title: 'Product feedback' };
3const tenantId: string = 'acme-corp-tenant-01';
4const id: string = post.questionId ?? 'q-8f3a7b2c4d9e';
5const result: GetQuestionResult200Response = await getQuestionResult(tenantId, id);
6

Λήψη αποτελεσμάτων ερωτήσεων Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
urlId string Όχι
userId string Όχι
startDate string Όχι
questionId string Όχι
questionIds string Όχι
skip number Όχι

Απόκριση

Επιστρέφει: GetQuestionResults200Response

Παράδειγμα

Παράδειγμα getQuestionResults
Copy Copy
1
2const tenantId: string = "tenant_acme_001";
3const urlId: string = "articles/product-launch-2026";
4const userId: string = "user_2048";
5const startDate: string = "2026-03-01T00:00:00Z";
6const questionId: string | undefined = undefined;
7const questionIds: string | undefined = "q_101,q_102";
8const skip: number | undefined = 0;
9
10const result: GetQuestionResults200Response = await getQuestionResults(tenantId, urlId, userId, startDate, questionId, questionIds, skip);
11

Ενημέρωση αποτελέσματος ερώτησης Internal Link

Παράμετροι

Name Type Required Description
tenantId string Ναι
id string Ναι
updateQuestionResultBody UpdateQuestionResultBody Ναι

Απόκριση

Επιστρέφει: FlagCommentPublic200Response

Παράδειγμα

Παράδειγμα updateQuestionResult
Copy Copy
1
2const tenantId: string = 'tenant_7f8b3c';
3const id: string = 'questionResult_4621';
4const updateQuestionResultBody: UpdateQuestionResultBody = {
5 questionId: 'q_1024',
6 result: 'flagged',
7 score: 0.92,
8 notes: 'Automated moderation flagged for review',
9 meta: [{ key: 'source', value: 'ai-moderator' }] as MetaItem[], // προαιρετικά μεταδεδομένα
10 status: { code: 'review_pending' } as APIStatus
11} as UpdateQuestionResultBody;
12const result: FlagCommentPublic200Response = await updateQuestionResult(tenantId, id, updateQuestionResultBody);
13

Συγκέντρωση αποτελεσμάτων ερωτήσεων Internal Link


Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
questionId string Όχι
questionIds Array Όχι
urlId string Όχι
timeBucket AggregateTimeBucket Όχι
startDate Date Όχι
forceRecalculate boolean Όχι

Απόκριση

Επιστρέφει: AggregateQuestionResults200Response

Παράδειγμα

Παράδειγμα aggregateQuestionResults
Copy Copy
1
2const tenantId: string = 'tenant_acme_98765';
3const questionIds: Array<string> = ['q-102', 'q-103'];
4const urlId: string = 'url_55b3';
5const timeBucket: AggregateTimeBucket = { unit: 'day', size: 7 };
6const startDate: Date = new Date('2026-01-01T00:00:00Z');
7const forceRecalculate: boolean = true;
8
9const result: AggregateQuestionResults200Response = await aggregateQuestionResults(
10 tenantId,
11 undefined, // το questionId παραλείπεται, χρησιμοποιούνται τα questionIds αντί αυτού
12 questionIds,
13 urlId,
14 timeBucket,
15 startDate,
16 forceRecalculate
17);
18

Μαζική συγκέντρωση αποτελεσμάτων ερωτήσεων Internal Link

Παράμετροι

Name Type Required Description
tenantId string Ναι
bulkAggregateQuestionResultsRequest BulkAggregateQuestionResultsRequest Ναι
forceRecalculate boolean Όχι

Απόκριση

Επιστρέφει: BulkAggregateQuestionResults200Response

Παράδειγμα

Παράδειγμα bulkAggregateQuestionResults
Copy Copy
1
2const tenantId: string = "tenant_live_7c9d";
3const bulkAggregateQuestionResultsRequest: BulkAggregateQuestionResultsRequest = {
4 items: [
5 { questionId: "q_feedback_rating", includeSubQuestions: false, filters: { locale: "en-US" } }
6 ],
7 timeBuckets: [
8 { granularity: "day", startUtc: "2026-03-01T00:00:00Z", endUtc: "2026-03-15T00:00:00Z" }
9 ]
10};
11const forceRecalculate: boolean = true;
12const result: BulkAggregateQuestionResults200Response = await bulkAggregateQuestionResults(tenantId, bulkAggregateQuestionResultsRequest, forceRecalculate);
13

Συνένωση σχολίων με αποτελέσματα ερωτήσεων Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
questionId string Όχι
questionIds Array Όχι
urlId string Όχι
startDate Date Όχι
forceRecalculate boolean Όχι
minValue number Όχι
maxValue number Όχι
limit number Όχι

Επιστρέφει

Επιστρέφει: CombineCommentsWithQuestionResults200Response

Παράδειγμα

Παράδειγμα combineCommentsWithQuestionResults
Copy Copy
1
2const tenantId: string = 'tenant_9f3a2';
3const questionIds: string[] = ['question-42', 'question-43'];
4const urlId: string = 'url_5d7b';
5const startDate: Date = new Date('2026-02-01T00:00:00Z');
6const forceRecalculate: boolean = true;
7const minValue: number = 1;
8const maxValue: number = 5;
9const limit: number = 50;
10const result: CombineCommentsWithQuestionResults200Response = await combineCommentsWithQuestionResults(
11 tenantId,
12 undefined,
13 questionIds,
14 urlId,
15 startDate,
16 forceRecalculate,
17 minValue,
18 maxValue,
19 limit
20);
21

Προσθήκη χρήστη SSO Internal Link


Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
createAPISSOUserData CreateAPISSOUserData Ναι

Απάντηση

Επιστρέφει: AddSSOUserAPIResponse


Διαγραφή χρήστη SSO Internal Link


Παράμετροι

Όνομα Τύπος Απαραίτητο Περιγραφή
tenantId string Ναι
id string Ναι
deleteComments boolean Όχι
commentDeleteMode string Όχι

Απόκριση

Επιστρέφει: DeleteSSOUserAPIResponse


Λήψη χρήστη SSO κατά email Internal Link


Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
email string Ναι

Απόκριση

Επιστρέφει: GetSSOUserByEmailAPIResponse


Λήψη χρήστη SSO κατά ID Internal Link


Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι

Απόκριση

Επιστρέφει: GetSSOUserByIdAPIResponse


Λήψη χρηστών SSO Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
skip number Όχι

Response

Επιστρέφει: GetSSOUsers200Response


Μερική ενημέρωση χρήστη SSO Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι
updateAPISSOUserData UpdateAPISSOUserData Ναι
updateComments boolean Όχι

Απόκριση

Επιστρέφει: PatchSSOUserAPIResponse


Αντικατάσταση χρήστη SSO Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι
updateAPISSOUserData UpdateAPISSOUserData Ναι
updateComments boolean Όχι

Απάντηση

Επιστρέφει: PutSSOUserAPIResponse


Δημιουργία συνδρομής Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
createAPIUserSubscriptionData CreateAPIUserSubscriptionData Ναι

Απόκριση

Επιστρέφει: CreateSubscriptionAPIResponse

Παράδειγμα

Παράδειγμα createSubscription
Copy Copy
1
2const tenantId: string = "acme-corp-123";
3const createAPIUserSubscriptionData: CreateAPIUserSubscriptionData = {
4 userId: "u_987654",
5 planId: "pro_monthly",
6 startDate: new Date().toISOString(),
7 trialDays: 14, // προαιρετική παράμετρος (παράδειγμα)
8 metadata: { source: "marketing-email" } // προαιρετική παράμετρος (παράδειγμα)
9};
10const result: CreateSubscriptionAPIResponse = await createSubscription(tenantId, createAPIUserSubscriptionData);
11const subscription: APIUserSubscription = result.subscription;
12

Διαγραφή συνδρομής Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι
userId string Όχι

Απόκριση

Επιστρέφει: DeleteSubscriptionAPIResponse


Λήψη συνδρομών Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
userId string Όχι

Απάντηση

Επιστρέφει: GetSubscriptionsAPIResponse

Παράδειγμα

Παράδειγμα getSubscriptions
Copy Copy
1
2const tenantId: string = 'tenant_acme_corp_01';
3const userId: string = 'user_76a3b9f2';
4const subscriptionsForUser: GetSubscriptionsAPIResponse = await getSubscriptions(tenantId, userId);
5const subscriptionsForTenant: GetSubscriptionsAPIResponse = await getSubscriptions(tenantId);
6

Ενημέρωση συνδρομής Internal Link

Παράμετροι

Όνομα Τύπος Υποχρεωτικό Περιγραφή
tenantId string Ναι
id string Ναι
updateAPIUserSubscriptionData UpdateAPIUserSubscriptionData Ναι
userId string Όχι

Απόκριση

Επιστρέφει: UpdateSubscriptionAPIResponse

Παράδειγμα

Παράδειγμα updateSubscription
Copy Copy
1
2const tenantId: string = 'tenant_9f3b2c';
3const subscriptionId: string = 'sub_7641a2b3';
4const updateData: UpdateAPIUserSubscriptionData = {
5 status: 'active',
6 planId: 'pro_annual',
7 autoRenew: true,
8 renewalDate: '2026-04-15T00:00:00Z',
9 metadata: { upgradedBy: 'billing-team' }
10};
11const userId: string = 'user_215';
12const result: UpdateSubscriptionAPIResponse = await updateSubscription(tenantId, subscriptionId, updateData, userId);
13

Λήψη ημερήσιας χρήσης ενοικιαστή Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
yearNumber number Όχι
monthNumber number Όχι
dayNumber number Όχι
skip number Όχι

Απάντηση

Επιστρέφει: GetTenantDailyUsages200Response

Παράδειγμα

getTenantDailyUsages Παράδειγμα
Copy Copy
1
2const tenantId: string = 'tenant_5f4a3b2c-1d6e-4f9a-b9d8-123456789abc';
3const yearNumber: number = 2026;
4const monthNumber: number = 3;
5const dayNumber: number = 24;
6const skip: number = 0;
7
8const result: GetTenantDailyUsages200Response = await getTenantDailyUsages(tenantId, yearNumber, monthNumber, dayNumber, skip);
9

Δημιουργία πακέτου ενοικιαστή Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
createTenantPackageBody CreateTenantPackageBody Ναι

Απόκριση

Επιστρέφει: CreateTenantPackage200Response

Παράδειγμα

Παράδειγμα createTenantPackage
Copy Copy
1
2const tenantId: string = 'tenant_acme_001';
3const createTenantPackageBody: CreateTenantPackageBody = {
4 packageName: 'Standard Moderation',
5 description: 'Suitable for small-to-medium sites: basic moderation, spam rules, and analytics',
6 maxCommentsPerMinute: 50,
7 allowAnonymousComments: false, // προαιρετική παράμετρος που παρέχεται
8 // προαιρετικά πεδία παραλείπονται: π.χ. προηγμένοι κανόνες διαχείρισης σχολίων, προσαρμοσμένο CSS
9 customConfigParameters: {
10 enableProfanityFilter: true,
11 imageContentProfanityLevel: 'medium' // ενδεικτική τιμή· χρησιμοποιεί το σχήμα CustomConfigParameters
12 }
13};
14const response: CreateTenantPackage200Response = await createTenantPackage(tenantId, createTenantPackageBody);
15console.log(response);
16

Διαγραφή πακέτου ενοικιαστή Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι

Απάντηση

Επιστρέφει: FlagCommentPublic200Response

Παράδειγμα

Παράδειγμα deleteTenantPackage
Copy Copy
1
2const tenantId: string = 'tenant_acme_corp_987';
3const packageId: string = 'pkg_pro_2026_01';
4type DeleteOptions = { force?: boolean; notify?: boolean };
5const options: DeleteOptions = { force: true }; // επίδειξη προαιρετικών παραμέτρων
6const result: FlagCommentPublic200Response = await deleteTenantPackage(tenantId, packageId);
7

Λήψη πακέτου ενοικιαστή Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι

Απόκριση

Επιστρέφει: GetTenantPackage200Response

Παράδειγμα

Παράδειγμα getTenantPackage
Copy Copy
1
2const tenantId: string = 'tenant_7f3b2c8';
3const packageId: string = 'pkg_standard_2026';
4const requestOptions: { includeConfig?: boolean } = { includeConfig: true };
5const packageResponse: GetTenantPackage200Response = await getTenantPackage(tenantId, packageId);
6

Λήψη πακέτων ενοικιαστή Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
skip number Όχι

Απόκριση

Επιστρέφει: GetTenantPackages200Response

Παράδειγμα

Παράδειγμα getTenantPackages
Copy Copy
1
2const tenantId: string = "tenant_7f8e3b4c";
3const skip: number = 20;
4const packagesDefault: GetTenantPackages200Response = await getTenantPackages(tenantId);
5const packagesWithSkip: GetTenantPackages200Response = await getTenantPackages(tenantId, skip);
6

Αντικατάσταση πακέτου ενοικιαστή Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι
replaceTenantPackageBody ReplaceTenantPackageBody Ναι

Απόκριση

Επιστρέφει: FlagCommentPublic200Response

Παράδειγμα

Παράδειγμα replaceTenantPackage
Copy Copy
1
2const tenantId: string = "tenant-9f3c2a";
3const id: string = "pkg_4f8b21";
4const replaceTenantPackageBody: ReplaceTenantPackageBody = {
5 packageName: "Premium Moderation Pack",
6 enabled: true,
7 apiStatus: { mode: "active" } as APIStatus,
8 customConfigParameters: { maxFlagsBeforeReview: 5 } as CustomConfigParameters,
9 voteStyle: "thumbs" as VoteStyle,
10 tosConfig: { requireAcceptance: true } as TOSConfig
11};
12const result: FlagCommentPublic200Response = await replaceTenantPackage(tenantId, id, replaceTenantPackageBody);
13

Ενημέρωση πακέτου ενοικιαστή Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι
updateTenantPackageBody UpdateTenantPackageBody Ναι

Απάντηση

Επιστρέφει: FlagCommentPublic200Response

Παράδειγμα

Παράδειγμα updateTenantPackage
Copy Copy
1
2const tenantId: string = "tenant_3b7f9d-prod";
3const id: string = "pkg_enterprise_2026";
4const updateTenantPackageBody: UpdateTenantPackageBody = {
5 name: "Enterprise Plus",
6 isActive: true,
7 // προαιρετικά πεδία παραλείπονται σκόπιμα (π.χ., description, limits)
8} as UpdateTenantPackageBody;
9const result: FlagCommentPublic200Response = await updateTenantPackage(tenantId, id, updateTenantPackageBody);
10

Δημιουργία χρήστη ενοικιαστή Internal Link

Παράμετροι

Name Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
createTenantUserBody CreateTenantUserBody Ναι

Απάντηση

Επιστρέφει: CreateTenantUser200Response

Παράδειγμα

Παράδειγμα createTenantUser
Copy Copy
1
2const tenantId: string = 'tenant_6f4b2c';
3const createTenantUserBody: CreateTenantUserBody = {
4 email: 'sara.kim@example.com',
5 displayName: 'Sara Kim',
6 role: 'moderator',
7 notifyOnMentions: true
8};
9const result: CreateTenantUser200Response = await createTenantUser(tenantId, createTenantUserBody);
10

Διαγραφή χρήστη ενοικιαστή Internal Link

Παράμετροι

Όνομα Τύπος Απαραίτητο Περιγραφή
tenantId string Ναι
id string Ναι
deleteComments string Όχι
commentDeleteMode string Όχι

Απόκριση

Επιστρέφει: FlagCommentPublic200Response

Παράδειγμα

Παράδειγμα deleteTenantUser
Copy Copy
1
2const tenantId: string = '4f3a9b2e-1c6a-4f7b-9e2a-0b8d6f1c2a3e';
3const userId: string = '9d2f7b3a-5c4e-48a2-b1f0-6c7d8e9f0a12';
4const deleteComments: string = 'true';
5const commentDeleteMode: string = 'permanent';
6const result: FlagCommentPublic200Response = await deleteTenantUser(tenantId, userId, deleteComments, commentDeleteMode);
7

Λήψη χρήστη ενοικιαστή Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι

Απόκριση

Επιστρέφει: GetTenantUser200Response

Παράδειγμα

Παράδειγμα getTenantUser
Copy Copy
1
2const tenantId: string = 'tenant_fc5a9b2c';
3const userId: string = 'user_0a12b3';
4const result: GetTenantUser200Response = await getTenantUser(tenantId, userId);
5const user: User | undefined = (result as any).user; // πρόσβαση στο payload
6const userEmail: string | undefined = user?.email;
7console.log('Fetched user email:', userEmail);
8

Λήψη χρηστών ενοικιαστή Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
skip number Όχι

Απόκριση

Επιστρέφει: GetTenantUsers200Response

Παράδειγμα

Παράδειγμα getTenantUsers
Copy Copy
1
2const tenantId: string = 'tenant_prod_8a3f2c';
3const skip: number = 50;
4const usersWithSkip: GetTenantUsers200Response = await getTenantUsers(tenantId, skip);
5const usersNoSkip: GetTenantUsers200Response = await getTenantUsers(tenantId);
6

Αντικατάσταση χρήστη ενοικιαστή Internal Link

Παράμετροι

Name Type Required Description
tenantId string Ναι
id string Ναι
replaceTenantUserBody ReplaceTenantUserBody Ναι
updateComments string Όχι

Απόκριση

Επιστρέφει: FlagCommentPublic200Response

Παράδειγμα

Παράδειγμα replaceTenantUser
Copy Copy
1
2const tenantId: string = 'tenant_9d8f4b2c';
3const id: string = 'user_f47ac10b';
4const replaceTenantUserBody: ReplaceTenantUserBody = {
5 externalId: 'ext-5234',
6 email: 'jane.doe@acme.com',
7 displayName: 'Jane Doe',
8 roles: ['moderator'],
9 metadata: { department: 'product', region: 'us-east-1' }
10};
11const updateComments: string = 'propagate-display-name-to-comments';
12
13const result: FlagCommentPublic200Response = await replaceTenantUser(tenantId, id, replaceTenantUserBody, updateComments);
14

Παράμετροι

Όνομα Τύπος Απαραίτητο Περιγραφή
tenantId string Ναι
id string Ναι
redirectURL string Όχι

Απόκριση

Επιστρέφει: FlagCommentPublic200Response

Παράδειγμα

Παράδειγμα sendLoginLink
Copy Copy
1
2const tenantId: string = "tenant_12a9f3b7";
3const id: string = "user_84b2c7d1";
4const redirectURL: string = "https://app.mycompany.com/welcome?ref=login_email";
5const resultWithoutRedirect: FlagCommentPublic200Response = await sendLoginLink(tenantId, id);
6const resultWithRedirect: FlagCommentPublic200Response = await sendLoginLink(tenantId, id, redirectURL);
7

Ενημέρωση χρήστη ενοικιαστή Internal Link


Παράμετροι

Όνομα Τύπος Απαραίτητο Περιγραφή
tenantId string Ναι
id string Ναι
updateTenantUserBody UpdateTenantUserBody Ναι
updateComments string Όχι

Απόκριση

Επιστρέφει: FlagCommentPublic200Response

Παράδειγμα

Παράδειγμα updateTenantUser
Copy Copy
1
2const tenantId: string = "tenant_8f3b2a9d";
3const id: string = "user_52c9f1ab";
4const updateTenantUserBody: UpdateTenantUserBody = {
5 email: "jane.doe@example.com",
6 displayName: "Jane Doe",
7 roles: ["moderator"],
8 isActive: true,
9 metadata: { signupSource: "sso", locale: "en-US" }
10};
11const updateComments: string = "Promoted to moderator and updated display name";
12const result: FlagCommentPublic200Response = await updateTenantUser(tenantId, id, updateTenantUserBody, updateComments);
13

Δημιουργία ενοικιαστή Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
createTenantBody CreateTenantBody Ναι

Απόκριση

Επιστρέφει: CreateTenant200Response

Παράδειγμα

Παράδειγμα createTenant
Copy Copy
1
2const tenantId: string = "acme-corp-001";
3const createTenantBody: CreateTenantBody = {
4 name: "Acme Corporation",
5 domain: "comments.acme.com",
6 adminContact: { name: "Jane Doe", email: "jane.doe@acme.com" },
7 billingInfo: { planId: "pro-monthly", billingContactEmail: "billing@acme.com" },
8 importedSite: { siteId: "site-123", siteName: "Acme Blog" } // προαιρετικός εισαγόμενος ιστότοπος
9};
10const result: CreateTenant200Response = await createTenant(tenantId, createTenantBody);
11

Διαγραφή ενοικιαστή Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι
sure string Όχι

Απόκριση

Επιστρέφει: FlagCommentPublic200Response

Παράδειγμα

Παράδειγμα deleteTenant
Copy Copy
1
2const tenantId: string = "tenant_7f3d2c";
3const id: string = "flag_8392b1a7";
4const sure: string = "confirmed";
5
6const responseWithoutSure: FlagCommentPublic200Response = await deleteTenant(tenantId, id);
7const responseWithSure: FlagCommentPublic200Response = await deleteTenant(tenantId, id, sure);
8

Λήψη ενοικιαστή Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι

Απόκριση

Επιστρέφει: GetTenant200Response

Παράδειγμα

Παράδειγμα getTenant
Copy Copy
1
2const tenantId: string = "tenant_9f4b2c1a";
3const idOverride: string | undefined = undefined; // προαιρετική υπερίσχυση, αν υπάρχει
4const id: string = idOverride ?? "site_3e7a6b2f";
5const response: GetTenant200Response = await getTenant(tenantId, id);
6console.log(response);
7

Λήψη ενοικιαστών Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
meta string Όχι
skip number Όχι

Απόκριση

Επιστρέφει: GetTenants200Response

Παράδειγμα

Παράδειγμα getTenants
Copy Copy
1
2const tenantId: string = 'tenant_8421e7';
3const meta: string = 'include=domains,billing,customConfig';
4const skip: number = 20;
5
6const tenantsBasic: GetTenants200Response = await getTenants(tenantId);
7const tenantsWithOptions: GetTenants200Response = await getTenants(tenantId, meta, skip);
8

Ενημέρωση ενοικιαστή Internal Link

Παράμετροι

Name Type Required Description
tenantId string Ναι
id string Ναι
updateTenantBody UpdateTenantBody Ναι

Response

Επιστρέφει: FlagCommentPublic200Response

Παράδειγμα

Παράδειγμα updateTenant
Copy Copy
1
2const tenantId: string = "tenant_4821";
3const id: string = "flag_7b9e";
4const billingInfo: BillingInfo | undefined = undefined; // προαιρετικό, παραλείψτε για να διατηρήσετε τις τρέχουσες πληροφορίες χρέωσης
5const updateTenantBody: UpdateTenantBody = {
6 name: "Acme News Comments",
7 defaultDomain: "comments.acme.com",
8 ...(billingInfo ? { billingInfo } : {})
9};
10const result: FlagCommentPublic200Response = await updateTenant(tenantId, id, updateTenantBody);
11

Αλλαγή κατάστασης εισιτηρίου Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
userId string Ναι
id string Ναι
changeTicketStateBody ChangeTicketStateBody Ναι

Απόκριση

Επιστρέφει: ChangeTicketState200Response

Παράδειγμα

Παράδειγμα changeTicketState
Copy Copy
1
2const tenantId: string = 'tenant_82f9b3';
3const userId: string = 'user_9472';
4const id: string = 'ticket_550e8400-e29b-41d4-a716-446655440000';
5const changeTicketStateBody: ChangeTicketStateBody = {
6 state: 'resolved',
7 comment: 'Confirmed fix deployed to production; closing ticket.',
8 notifySubscribers: true
9};
10const result: ChangeTicketState200Response = await changeTicketState(tenantId, userId, id, changeTicketStateBody);
11

Δημιουργία εισιτηρίου Internal Link


Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
userId string Ναι
createTicketBody CreateTicketBody Ναι

Απάντηση

Επιστρέφει: CreateTicket200Response

Παράδειγμα

Παράδειγμα createTicket
Copy Copy
1
2const tenantId: string = "acme-corp-001";
3const userId: string = "user_72b9f4";
4const createTicketBody: CreateTicketBody = {
5 subject: "Subscription renewal failed for card on file",
6 description: "Customer's card was declined by the payment processor during automatic renewal. Transaction ID: txn_9a8b7c. Please review gateway logs and retry.",
7 priority: "high", // προαιρετικό πεδίο (παράδειγμα)
8 contactEmail: "billing@acme-corp.com", // προαιρετικές πληροφορίες επικοινωνίας
9 relatedUrl: "https://acme-corp.com/account/billing"
10};
11const ticketResponse: CreateTicket200Response = await createTicket(tenantId, userId, createTicketBody);
12

Λήψη εισιτηρίου Internal Link

Παράμετροι

Name Type Required Description
tenantId string Ναι
id string Ναι
userId string Όχι

Απόκριση

Επιστρέφει: GetTicket200Response

Παράδειγμα

Παράδειγμα getTicket
Copy Copy
1
2const tenantId: string = 'acme-corp-tenant-01';
3const ticketId: string = 'tkt-20260325-42';
4const userId: string = 'user-8452';
5
6const ticketResponseWithUser: GetTicket200Response = await getTicket(tenantId, ticketId, userId);
7const ticketResponseWithoutUser: GetTicket200Response = await getTicket(tenantId, ticketId);
8

Λήψη εισιτηρίων Internal Link

Παράμετροι

Όνομα Τύπος Απαραίτητο Περιγραφή
tenantId string Ναι
userId string Όχι
state number Όχι
skip number Όχι
limit number Όχι

Απόκριση

Επιστρέφει: GetTickets200Response

Παράδειγμα

Παράδειγμα getTickets
Copy Copy
1
2const tenantId: string = "tenant_92f3b4c1";
3const userId: string = "user_742a9f3e";
4const state: number = 1;
5const skip: number = 0;
6const limit: number = 25;
7const ticketsFull: GetTickets200Response = await getTickets(tenantId, userId, state, skip, limit);
8const ticketsMinimal: GetTickets200Response = await getTickets("tenant_92f3b4c1");
9

Μεταφόρτωση εικόνας Internal Link

Ανέβασμα και αλλαγή μεγέθους εικόνας

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
file Blob Ναι
sizePreset SizePreset Όχι
urlId string Όχι

Απόκριση

Επιστρέφει: UploadImageResponse

Λήψη προόδου διακριτικού χρήστη κατά ID Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι

Απάντηση

Επιστρέφει: GetUserBadgeProgressById200Response

Παράδειγμα

Παράδειγμα getUserBadgeProgressById
Copy Copy
1
2const optionalTenantSuffix: string | undefined = undefined;
3const tenantId: string = `5f8d0d55-1234-4ab1-9e2a-3f2b5c6d7e8f${optionalTenantSuffix ?? ''}`;
4const id: string = '3a2b1c4d-5678-4ef0-9abc-def123456789';
5const result: GetUserBadgeProgressById200Response = await getUserBadgeProgressById(tenantId, id);
6

Λήψη προόδου διακριτικού κατά ID χρήστη Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
userId string Ναι

Απόκριση

Επιστρέφει: GetUserBadgeProgressById200Response

Παράδειγμα

Παράδειγμα getUserBadgeProgressByUserId
Copy Copy
1
2const tenantId: string = 'tenant_7f9c2d3b';
3const maybeUserId: string | undefined = 'user_4b8e1f9a'; // προαιρετική προέλευση (μπορεί να είναι undefined)
4const userId: string = maybeUserId ?? 'user_fallback0001';
5const result: GetUserBadgeProgressById200Response = await getUserBadgeProgressByUserId(tenantId, userId);
6console.log(result);
7

Λήψη λίστας προόδου διακριτικών χρήστη Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
userId string Όχι
limit number Όχι
skip number Όχι

Απόκριση

Επιστρέφει: GetUserBadgeProgressList200Response

Παράδειγμα

Παράδειγμα getUserBadgeProgressList
Copy Copy
1
2(async () => {
3 const tenantId: string = 'tenant_4f8c2b9d';
4 const userId: string = 'user_9a7e215c';
5 const limit: number = 25;
6 const skip: number = 0;
7 const resultMinimal: GetUserBadgeProgressList200Response = await getUserBadgeProgressList(tenantId);
8 const resultFull: GetUserBadgeProgressList200Response = await getUserBadgeProgressList(tenantId, userId, limit, skip);
9 console.log(resultMinimal, resultFull);
10})();
11

Δημιουργία διακριτικού χρήστη Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
createUserBadgeParams CreateUserBadgeParams Ναι

Απάντηση

Επιστρέφει: CreateUserBadge200Response

Παράδειγμα

Παράδειγμα createUserBadge
Copy Copy
1
2const tenantId: string = 'tenant_84f3b2';
3const createUserBadgeParams: CreateUserBadgeParams = {
4 name: 'Top Contributor',
5 slug: 'top-contributor',
6 imageUrl: 'https://assets.fastcomments.com/badges/top-contributor.png',
7 description: 'Awarded for 100 helpful comments',
8 active: true,
9 criteria: { commentsCount: 100 }, // προαιρετικά κριτήρια
10 displayOrder: 10,
11 metadata: { featured: true } // προαιρετικά μεταδεδομένα
12};
13const result: CreateUserBadge200Response = await createUserBadge(tenantId, createUserBadgeParams);
14console.log(result);
15

Διαγραφή διακριτικού χρήστη Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι

Απόκριση

Επιστρέφει: UpdateUserBadge200Response

Παράδειγμα

Παράδειγμα deleteUserBadge
Copy Copy
1
2type DeleteOptions = { notifyModerators?: boolean };
3
4const tenantId: string = 'tenant_8a3f21';
5const id: string = 'badge_71f2b';
6const options: DeleteOptions = { notifyModerators: true };
7
8const result: UpdateUserBadge200Response = await deleteUserBadge(tenantId, id);
9

Λήψη διακριτικού χρήστη Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι

Απάντηση

Επιστρέφει: GetUserBadge200Response

Παράδειγμα

Παράδειγμα getUserBadge
Copy Copy
1
2const tenantId: string = "tenant_acme_01";
3const id: string = "badge_8c7d2f";
4const response: GetUserBadge200Response = await getUserBadge(tenantId, id);
5

Λήψη διακριτικών χρήστη Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Yes
userId string No
badgeId string No
type number No
displayedOnComments boolean No
limit number No
skip number No

Απόκριση

Επιστρέφει: GetUserBadges200Response

Παράδειγμα

Παράδειγμα getUserBadges
Copy Copy
1
2const tenantId: string = 'tenant_acme_01';
3const userId: string = 'user_5f4d3c2a';
4const badgeId: string = 'badge_top_contributor';
5const type: number = 1;
6const displayedOnComments: boolean = true;
7const limit: number = 50;
8const skip: number = 0;
9
10const result: GetUserBadges200Response = await getUserBadges(tenantId, userId, badgeId, type, displayedOnComments, limit, skip);
11

Ενημέρωση διακριτικού χρήστη Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι
updateUserBadgeParams UpdateUserBadgeParams Ναι

Απάντηση

Επιστρέφει: UpdateUserBadge200Response

Παράδειγμα

Παράδειγμα updateUserBadge
Copy Copy
1
2(async () => {
3 const tenantId: string = 'tenant_acme_987';
4 const id: string = 'badge_top_contributor_42';
5 const updateUserBadgeParams: UpdateUserBadgeParams = {
6 title: 'Top Contributor',
7 description: 'Awarded for reaching 100 high-quality comments',
8 color: '#FFD700',
9 iconUrl: 'https://cdn.acme.com/badges/top-contributor.svg',
10 active: true,
11 notifyUsers: true
12 } as UpdateUserBadgeParams;
13 const result: UpdateUserBadge200Response = await updateUserBadge(tenantId, id, updateUserBadgeParams);
14 console.log(result);
15})();
16

Λήψη πλήθους ειδοποιήσεων χρήστη Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
sso string Όχι

Απόκριση

Επιστρέφει: GetUserNotificationCount200Response

Παράδειγμα

Παράδειγμα getUserNotificationCount
Copy Copy
1
2(async () => {
3 const tenantId: string = '9f1e2d3c-4b5a-6d7e-8f90-123456789abc';
4 const ssoToken: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI0MjMifQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c';
5 const resultWithSSO: GetUserNotificationCount200Response = await getUserNotificationCount(tenantId, ssoToken);
6 const resultWithoutSSO: GetUserNotificationCount200Response = await getUserNotificationCount(tenantId);
7 console.log(resultWithSSO, resultWithoutSSO);
8})();
9

Λήψη ειδοποιήσεων χρήστη Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
pageSize number Όχι
afterId string Όχι
includeContext boolean Όχι
afterCreatedAt number Όχι
unreadOnly boolean Όχι
dmOnly boolean Όχι
noDm boolean Όχι
includeTranslations boolean Όχι
sso string Όχι

Απάντηση

Επιστρέφει: GetUserNotifications200Response

Παράδειγμα

Παράδειγμα getUserNotifications
Copy Copy
1
2const tenantId: string = 'tenant_7f3b1c';
3const pageSize: number = 25;
4const afterId: string = 'notif_b2f9e4';
5const includeContext: boolean = true;
6const afterCreatedAt: number = Date.now() - 24 * 60 * 60 * 1000;
7const unreadOnly: boolean = true;
8const dmOnly: boolean = false;
9const noDm: boolean = false;
10const includeTranslations: boolean = true;
11const sso: string = 'sso_tok_user_9f8d7c';
12const response: GetUserNotifications200Response = await getUserNotifications(
13 tenantId,
14 pageSize,
15 afterId,
16 includeContext,
17 afterCreatedAt,
18 unreadOnly,
19 dmOnly,
20 noDm,
21 includeTranslations,
22 sso
23);
24

Επαναφορά πλήθους ειδοποιήσεων χρήστη Internal Link

Παράμετροι

Name Type Required Description
tenantId string Ναι
sso string Όχι

Απόκριση

Επιστρέφει: ResetUserNotifications200Response

Παράδειγμα

Παράδειγμα resetUserNotificationCount
Copy Copy
1
2(async () => {
3 const tenantId: string = "tenant_9f3b2c4a";
4 const ssoToken: string | undefined = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9._sample_payload_.signature";
5 const responseWithSSO: ResetUserNotifications200Response = await resetUserNotificationCount(tenantId, ssoToken);
6 const responseWithoutSSO: ResetUserNotifications200Response = await resetUserNotificationCount(tenantId);
7 console.log(responseWithSSO, responseWithoutSSO);
8})();
9

Επαναφορά ειδοποιήσεων χρήστη Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
afterId string Όχι
afterCreatedAt number Όχι
unreadOnly boolean Όχι
dmOnly boolean Όχι
noDm boolean Όχι
sso string Όχι

Απόκριση

Επιστρέφει: ResetUserNotifications200Response

Παράδειγμα

Παράδειγμα resetUserNotifications
Copy Copy
1
2const tenantId: string = "tenant_prod_4a9f12";
3const afterId: string = "notification_87213";
4const afterCreatedAt: number = Math.floor(Date.now() / 1000) - 3600;
5const unreadOnly: boolean = true;
6const dmOnly: boolean = false;
7const sso: string = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.example.payload";
8const result: ResetUserNotifications200Response = await resetUserNotifications(tenantId, afterId, afterCreatedAt, unreadOnly, dmOnly, undefined, sso);
9

Ενημέρωση κατάστασης συνδρομής σχολίου ειδοποίησης χρήστη Internal Link

Ενεργοποιήστε ή απενεργοποιήστε τις ειδοποιήσεις για ένα συγκεκριμένο σχόλιο.

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
notificationId string Ναι
optedInOrOut UpdateUserNotificationCommentSubscriptionStatusOptedInOrOutEnum Ναι
commentId string Ναι
sso string Όχι

Απόκριση

Επιστρέφει: UpdateUserNotificationStatus200Response

Παράδειγμα

updateUserNotificationCommentSubscriptionStatus Παράδειγμα
Copy Copy
1
2const tenantId: string = 'acme-tenant-001';
3const notificationId: string = 'notif-2026-03-25-01';
4const commentId: string = 'cmt-8f3a2b';
5const optedInOrOut: UpdateUserNotificationCommentSubscriptionStatusOptedInOrOutEnum = UpdateUserNotificationCommentSubscriptionStatusOptedInOrOutEnum.OptIn;
6const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.sso-payload.signature';
7const result: UpdateUserNotificationStatus200Response = await updateUserNotificationCommentSubscriptionStatus(tenantId, notificationId, optedInOrOut, commentId, sso);
8

Ενημέρωση κατάστασης συνδρομής σελίδας ειδοποίησης χρήστη Internal Link

Ενεργοποιήστε ή απενεργοποιήστε τις ειδοποιήσεις για μια σελίδα. Όταν οι χρήστες είναι εγγεγραμμένοι σε μια σελίδα, δημιουργούνται ειδοποιήσεις για νέα ριζικά σχόλια, και επίσης

Parameters

Name Type Required Description
tenantId string Ναι
urlId string Ναι
url string Ναι
pageTitle string Ναι
subscribedOrUnsubscribed UpdateUserNotificationPageSubscriptionStatusSubscribedOrUnsubscribedEnum Ναι
sso string Όχι

Response

Επιστρέφει: UpdateUserNotificationStatus200Response

Παράδειγμα

updateUserNotificationPageSubscriptionStatus Παράδειγμα
Copy Copy
1
2const tenantId: string = 'acme-tenant-42';
3const urlId: string = 'blog-launch-2026';
4const url: string = 'https://acme.example.com/blog/launch-march-2026';
5const pageTitle: string = 'Acme Product Launch — March 2026';
6const subscribedOrUnsubscribed: UpdateUserNotificationPageSubscriptionStatusSubscribedOrUnsubscribedEnum = UpdateUserNotificationPageSubscriptionStatusSubscribedOrUnsubscribedEnum.Subscribed;
7const sso: string = 'sso_jwt_eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9';
8const response: UpdateUserNotificationStatus200Response = await updateUserNotificationPageSubscriptionStatus(tenantId, urlId, url, pageTitle, subscribedOrUnsubscribed, sso);
9

Ενημέρωση κατάστασης ειδοποίησης χρήστη Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
notificationId string Ναι
newStatus UpdateUserNotificationStatusNewStatusEnum Ναι
sso string Όχι

Απόκριση

Επιστρέφει: UpdateUserNotificationStatus200Response

Παράδειγμα

Παράδειγμα updateUserNotificationStatus
Copy Copy
1
2const tenantId: string = 'tenant_84a2c3';
3const notificationId: string = 'notif_20260325_01';
4const newStatus: UpdateUserNotificationStatusNewStatusEnum = UpdateUserNotificationStatusNewStatusEnum.Read;
5const sso: string = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.sso_signature_example';
6const result: UpdateUserNotificationStatus200Response = await updateUserNotificationStatus(tenantId, notificationId, newStatus, sso);
7

Λήψη καταστάσεων παρουσίας χρηστών Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
urlIdWS string Ναι
userIds string Ναι

Απόκριση

Επιστρέφει: GetUserPresenceStatuses200Response

Παράδειγμα

Παράδειγμα getUserPresenceStatuses
Copy Copy
1
2const tenantId: string = 'tenant_7f3a2b';
3const urlIdWS: string = 'articles/2026/03/25/fastcomments-integration';
4const maybeUserIds: string | undefined = 'user_123,user_456'; // προαιρετική πηγή
5const userIds: string = maybeUserIds ?? 'user_123';
6const presence: GetUserPresenceStatuses200Response = await getUserPresenceStatuses(tenantId, urlIdWS, userIds);
7

Αναζήτηση χρηστών Internal Link

Παράμετροι

Name Type Required Description
tenantId string Ναι
urlId string Ναι
usernameStartsWith string Όχι
mentionGroupIds Array Όχι
sso string Όχι
searchSection SearchUsersSearchSectionEnum Όχι

Απόκριση

Επιστρέφει: SearchUsers200Response

Παράδειγμα

Παράδειγμα searchUsers
Copy Copy
1
2const tenantId: string = 'tenant_8392';
3const urlId: string = 'articles/2026/03/25/fastcomments-release';
4const usernameStartsWith: string = 'jo';
5const mentionGroupIds: Array<string> = ['editors', 'senior-writers'];
6const sso: string = 'sso_jwt_eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9';
7const searchSection: SearchUsersSearchSectionEnum = SearchUsersSearchSectionEnum.ALL;
8const result: SearchUsers200Response = await searchUsers(tenantId, urlId, usernameStartsWith, mentionGroupIds, sso, searchSection);
9

Λήψη χρήστη Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι

Απόκριση

Επιστρέφει: GetUser200Response

Παράδειγμα

Παράδειγμα getUser
Copy Copy
1
2const tenantId: string = 'tenant_7b3f42';
3const id: string = 'user_9c4d2a';
4const userResponse: GetUser200Response = await getUser(tenantId, id);
5console.log(userResponse);
6

Δημιουργία ψήφου Internal Link

Παράμετροι

Name Type Required Description
tenantId string Yes
commentId string Yes
direction CreateVoteDirectionEnum Yes
userId string No
anonUserId string No

Απόκριση

Επιστρέφει: VoteComment200Response

Παράδειγμα

Παράδειγμα createVote
Copy Copy
1
2const tenantId: string = 'tenant_9f8b6a';
3const commentId: string = 'comment_3b7d2e';
4const direction: CreateVoteDirectionEnum = CreateVoteDirectionEnum.Up;
5const anonUserId: string = 'anon_4c2a1f';
6
7const voteResult: VoteComment200Response = await createVote(tenantId, commentId, direction, undefined, anonUserId);
8

Διαγραφή ψήφου Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
id string Ναι
editKey string Όχι

Απόκριση

Επιστρέφει: DeleteCommentVote200Response

Παράδειγμα

Παράδειγμα deleteVote
Copy Copy
1
2const tenantId: string = "tenant_7c3f2b4a";
3const voteId: string = "vote_4f8d9a11";
4const editKey: string = "edit_2b9f8c";
5const resultWithoutKey: DeleteCommentVote200Response = await deleteVote(tenantId, voteId);
6const resultWithKey: DeleteCommentVote200Response = await deleteVote(tenantId, voteId, editKey);
7

Λήψη ψήφων Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
urlId string Ναι

Απόκριση

Επιστρέφει: GetVotes200Response

Παράδειγμα

Παράδειγμα getVotes
Copy Copy
1
2const tenantId: string = 'acme-corp-8f3b';
3const refCampaign: string | undefined = 'newsletter-march2026'; // προαιρετική παράμετρος ερωτήματος
4const urlId: string = `https://www.example.com/articles/2026/03/25/fastcomments-integration${refCampaign ? `?ref=${refCampaign}` : ''}`;
5
6const votes: GetVotes200Response = await getVotes(tenantId, urlId);
7

Λήψη ψήφων για χρήστη Internal Link

Παράμετροι

Όνομα Τύπος Απαιτείται Περιγραφή
tenantId string Ναι
urlId string Ναι
userId string Όχι
anonUserId string Όχι

Απόκριση

Επιστρέφει: GetVotesForUser200Response

Παράδειγμα

Παράδειγμα getVotesForUser
Copy Copy
1
2(async (): Promise<void> => {
3 const tenantId: string = "local-news-ny";
4 const urlId: string = "articles/2026-03-25/ev-infrastructure-update";
5 const userId: string = "user_78b6f3d9";
6 const anonUserId: string = "anon_9c3f7a1b";
7 const result: GetVotesForUser200Response = await getVotesForUser(tenantId, urlId, userId, anonUserId);
8 console.log(result);
9})();
10


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

Εάν αντιμετωπίσετε προβλήματα ή έχετε ερωτήσεις σχετικά με το JavaScript/TypeScript SDK, παρακαλούμε:

Συνεισφορές

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