
Γλώσσα 🇬🇷 Ελληνικά
Πόροι API
Συναθροίσεις
Αρχεία καταγραφής
Σχόλια
Πρότυπα Email
Hashtags
Διαχειριστές
Αριθμός Ειδοποιήσεων
Ειδοποιήσεις
Σελίδες
Εκκρεμή Συμβάντα Webhook
Χρήστες SSO
Συνδρομές
Ημερήσια Χρήση Ενοικιαστή
Ενοικιαστές
Πακέτα Ενοικιαστών
Χρήστες Ενοικιαστή
Χρήστες
Ψήφοι
Ρυθμίσεις Τομέα
Ρυθμίσεις Ερώτησης
Αποτελέσματα Ερώτησης
Συγκέντρωση Αποτελεσμάτων Ερώτησης
Διακριτικά Χρήστη
Πρόοδος Διακριτικού Χρήστη
Το API του FastComments
Το FastComments παρέχει ένα API για αλληλεπίδραση με πολλούς πόρους. Δημιουργήστε ενσωματώσεις με την πλατφόρμα μας, ή ακόμη και δημιουργήστε τους δικούς σας clients!
Σε αυτή την τεκμηρίωση, θα βρείτε όλους τους υποστηριζόμενους πόρους από το API τεκμηριωμένους με τους τύπους αιτήσεων και απαντήσεων τους.
Για πελάτες Enterprise, όλη η πρόσβαση στο API καταγράφεται στο Αρχείο Ελέγχου.
Παραγόμενα SDKs
Το FastComments πλέον δημιουργεί μια Περιγραφή API από τον κώδικά μας (αυτό δεν είναι ακόμη πλήρες, αλλά περιλαμβάνει πολλά APIs).
Έχουμε επίσης πλέον SDKs για δημοφιλείς γλώσσες:
- fastcomments-cpp
- fastcomments-go
- fastcomments-java
- fastcomments-sdk-js
- fastcomments-nim
- fastcomments-php
- fastcomments-php-sso
- fastcomments-python
- fastcomments-ruby
- fastcomments-rust
- fastcomments-swift
Αυθεντικοποίηση
Το API αυθεντικοποιείται περνώντας το κλειδί API είτε ως X-API-KEY header είτε ως παράμετρο ερωτήματος API_KEY. Θα χρειαστείτε επίσης το tenantId σας για να κάνετε κλήσεις στο API. Αυτό μπορεί να ανακτηθεί από την ίδια σελίδα με το κλειδί API σας.
Σημείωση Ασφαλείας
Αυτές οι διαδρομές προορίζονται να κληθούν από έναν server. ΜΗΝ τις καλείτε από έναν περιηγητή. Κάνοντας κάτι τέτοιο θα εκθέσετε το κλειδί API σας - αυτό θα παρέχει πλήρη πρόσβαση στο λογαριασμό σας σε οποιονδήποτε μπορεί να δει τον πηγαίο κώδικα μιας σελίδας!
Επιλογή Αυθεντικοποίησης Πρώτη - Κεφαλίδες
- Κεφαλίδα:
X-API-KEY - Κεφαλίδα:
X-TENANT-ID
Επιλογή Αυθεντικοποίησης Δεύτερη - Παράμετροι Ερωτήματος
- Παράμετρος ερωτήματος:
API_KEY - Παράμετρος ερωτήματος:
tenantId
Πόροι API 
Χρήση Πόρων
Πρέπει να σημειωθεί ότι η ανάκτηση δεδομένων από το API μετράται ως χρήση στον λογαριασμό σας.
Κάθε πόρος θα αναφέρει ποια είναι αυτή η χρήση στη δική του ενότητα.
Ορισμένοι πόροι κοστίζουν περισσότερο στην εξυπηρέτηση από άλλους. Κάθε endpoint έχει ένα καθορισμένο κόστος credits ανά κλήση API. Για ορισμένα endpoints, ο αριθμός των credits ποικίλλει ανάλογα με τις επιλογές και τα μεγέθη των απαντήσεων.
Η χρήση του API μπορεί να ελεγχθεί στη σελίδα Billing Analytics και ενημερώνεται κάθε λίγα λεπτά.
Σημείωση!
Προτείνουμε να διαβάσετε πρώτα την τεκμηρίωση των Pages, για να αποφύγετε τη σύγχυση όταν καθορίζετε ποιες τιμές να περάσετε για το urlId στο Comment API.
Συγκεντρώστε τα δεδομένα σας 
Αυτό το API συγκεντρώνει έγγραφα ομαδοποιώντας τα (αν παρέχεται groupBy) και εφαρμόζοντας πολλαπλές λειτουργίες. Υποστηρίζονται διαφορετικές λειτουργίες (π.χ. sum, countDistinct, avg, κ.λπ.).
Το κόστος είναι μεταβλητό. Κάθε 500 αντικείμενα που σαρώνονται κοστίζουν 1 API credit.
Η μέγιστη χρήση μνήμης που επιτρέπεται ανά κλήση API από προεπιλογή είναι 64MB, και από προεπιλογή μπορείτε να έχετε μόνο μία συγκέντρωση να εκτελείται τη φορά. Αν υποβάλετε πολλαπλές συγκεντρώσεις ταυτόχρονα, θα μπουν σε ουρά και θα εκτελεστούν με τη σειρά που υποβλήθηκαν. Οι εκκρεμείς συγκεντρώσεις θα περιμένουν το πολύ 60 δευτερόλεπτα, μετά από αυτό το αίτημα θα λήξει. Οι μεμονωμένες συγκεντρώσεις μπορούν να εκτελούνται για έως 5 λεπτά.
Αν έχετε διαχειριζόμενους tenants, μπορείτε να συγκεντρώσετε όλους τους πόρους των θυγατρικών tenants σε μία κλήση περνώντας την παράμετρο query parentTenantId.
Παραδείγματα
Παράδειγμα: Μέτρηση Μοναδικών


Παράδειγμα: Μέτρηση Διακριτών

Απάντηση:

Παράδειγμα: Άθροισμα Τιμών Πολλαπλών Πεδίων

Απάντηση:

Παράδειγμα: Μέσος Όρος Τιμών Πολλαπλών Πεδίων

Απάντηση:

Παράδειγμα: Ελάχιστο/Μέγιστο Τιμών Πολλαπλών Πεδίων

Απάντηση:

Παράδειγμα: Μέτρηση Μοναδικών Τιμών Πολλαπλών Πεδίων

Απάντηση:

Παράδειγμα: Δημιουργία Ερωτήματος

Απάντηση:

Παράδειγμα: Μέτρηση Σχολίων σε Αναμονή Ελέγχου

Απάντηση:

Παράδειγμα: Ανάλυση Εγκεκριμένων, Ελεγμένων και Spam Σχολίων

Απάντηση:

Δομές


Οι ακόλουθοι πόροι μπορούν να συγκεντρωθούν:
- AffiliateEvent
- AnonymousVote
- BannedUser
- BatchJob
- BlockedUser
- Comment
- CommentDeleted
- CommentIdToSyncOutbound
- CommentScheduled
- CommentSyncLog
- CustomConfig
- CustomEmailTemplateRenderError
- EmailToSend
- EventLogEntry
- ImportedCommentScheduled
- ModerationGroup
- Moderator
- Page
- PageReact
- PendingVote
- QuestionResult
- SSOUser
- SentEmail
- SpamEvent
- Tenant
- TenantAuditLog
- TenantBadge
- TenantDailyUsage
- TenantInvoiceHistory
- TenantPackage
- User
- UserBadge
- UserBadgeProgress
- UserNotification
- UserSubscription
- UserUsage
- Vote
Δομή Αρχείου Καταγραφής Ελέγχου 
Ένα AuditLog είναι ένα αντικείμενο που αντιπροσωπεύει ένα ελεγμένο συμβάν για tenants που έχουν πρόσβαση σε αυτή τη δυνατότητα.
Η δομή του αντικειμένου AuditLog είναι η ακόλουθη:

Το audit log είναι αμετάβλητο. Επίσης δεν μπορεί να γραφτεί χειροκίνητα. Μόνο το FastComments.com μπορεί να αποφασίσει πότε θα γράψει στο audit log. Ωστόσο, μπορείτε να το διαβάσετε μέσω αυτού του API.
Τα συμβάντα στο audit log λήγουν μετά από δύο χρόνια.
GET /api/v1/audit-logs 
Αυτό το API χρησιμοποιεί σελιδοποίηση, που παρέχεται από τις παραμέτρους skip, before και after. Τα AuditLogs επιστρέφονται σε σελίδες των 1000, ταξινομημένα κατά when και id.
Η ανάκτηση κάθε 1000 logs έχει κόστος credit 10.
Από προεπιλογή, θα λάβετε μια λίστα με τα νεότερα στοιχεία πρώτα. Με αυτόν τον τρόπο, μπορείτε να κάνετε polling ξεκινώντας με skip=0, σελιδοποιώντας μέχρι να βρείτε την τελευταία εγγραφή που έχετε καταναλώσει.
Εναλλακτικά, μπορείτε να ταξινομήσετε από τα παλαιότερα στα νεότερα, και να σελιδοποιήσετε μέχρι να μην υπάρχουν άλλες εγγραφές.
Η ταξινόμηση μπορεί να γίνει ρυθμίζοντας το order είτε σε ASC είτε σε DESC. Η προεπιλογή είναι ASC.
Η αναζήτηση κατά ημερομηνία είναι δυνατή μέσω before και after ως timestamps με milliseconds. Τα before και after ΔΕΝ είναι inclusive.



Δομή Σχολίου 
Ένα αντικείμενο Comment αντιπροσωπεύει ένα σχόλιο που αφήνει ένας χρήστης.
Η σχέση μεταξύ γονικών και θυγατρικών σχολίων ορίζεται μέσω του parentId.
Η δομή του αντικειμένου Comment είναι η ακόλουθη:

Ορισμένα από αυτά τα πεδία είναι σημειωμένα ως READONLY - αυτά επιστρέφονται από το API αλλά δεν μπορούν να οριστούν.
Δομή Κειμένου Σχολίου
Τα σχόλια γράφονται σε μια FastComments εκδοχή του markdown, που είναι απλώς markdown συν παραδοσιακές ετικέτες στυλ bbcode για εικόνες, όπως [img]path[/img].
Το κείμενο αποθηκεύεται σε δύο πεδία. Το κείμενο που εισήγαγε ο χρήστης αποθηκεύεται αμετάβλητο στο πεδίο comment. Αυτό αναλύεται και αποθηκεύεται στο πεδίο commentHTML.
Οι επιτρεπόμενες HTML ετικέτες είναι b, u, i, strike, pre, span, code, img, a, strong, ul, ol, li, και br.
Συνιστάται να αναλύσετε το HTML, αφού είναι ένα πολύ μικρό υποσύνολο HTML, η κατασκευή ενός αναλυτή είναι αρκετά απλή. Υπάρχουν πολλαπλές βιβλιοθήκες για React Native και Flutter, για παράδειγμα, για να βοηθήσουν με αυτό
Μπορείτε να επιλέξετε να αναλύσετε τη μη κανονικοποιημένη τιμή του πεδίου comment. Ένα παράδειγμα αναλυτή είναι εδώ..
Ο παράδειγμα αναλυτής θα μπορούσε επίσης να προσαρμοστεί για να λειτουργεί με HTML, και να μετατρέπει τις HTML ετικέτες σε αναμενόμενα στοιχεία για απόδοση για την πλατφόρμα σας.
Tagging
Όταν οι χρήστες επισημαίνονται σε ένα σχόλιο, οι πληροφορίες αποθηκεύονται σε μια λίστα που ονομάζεται mentions. Κάθε αντικείμενο σε αυτή τη λίστα
έχει την ακόλουθη δομή.
Run 
HashTags
Όταν χρησιμοποιούνται hashtags και αναλύονται επιτυχώς, οι πληροφορίες αποθηκεύονται σε μια λίστα που ονομάζεται hashTags. Κάθε αντικείμενο σε αυτή τη λίστα
έχει την ακόλουθη δομή. Τα Hashtags μπορούν επίσης να προστεθούν χειροκίνητα στον πίνακα hashTags του σχολίου για αναζήτηση, αν οριστεί retain.
Run 
GET /api/v1/comments 
Αυτό το API χρησιμοποιείται για να πάρετε σχόλια για εμφάνιση σε έναν χρήστη. Για παράδειγμα, φιλτράρει αυτόματα τα μη εγκεκριμένα ή spam σχόλια.
Σελιδοποίηση
Η σελιδοποίηση μπορεί να γίνει με έναν από δύο τρόπους, ανάλογα με τις απαιτήσεις απόδοσης και την περίπτωση χρήσης:
- Ταχύτερη: Προϋπολογισμένη Σελιδοποίηση:
- Έτσι λειτουργεί το FastComments όταν χρησιμοποιείτε τα προκατασκευασμένα widgets και clients μας.
- Κάνοντας κλικ στο "επόμενο" απλά αυξάνει τον αριθμό σελίδας.
- Μπορείτε να το σκεφτείτε ως ανάκτηση από ένα key-value store.
- Με αυτόν τον τρόπο, απλά ορίστε μια παράμετρο
pageξεκινώντας από0και μια κατεύθυνση ταξινόμησης ωςdirection. - Τα μεγέθη σελίδων μπορούν να προσαρμοστούν μέσω κανόνων προσαρμογής.
- Πιο Ευέλικτη: Ευέλικτη Σελιδοποίηση:
- Με αυτόν τον τρόπο μπορείτε να ορίσετε προσαρμοσμένες παραμέτρους
limitκαιskip. Μην περνάτεpage. - Η κατεύθυνση ταξινόμησης
directionυποστηρίζεται επίσης. - Το
limitείναι ο συνολικός αριθμός για επιστροφή μετά την εφαρμογή τουskip.- Παράδειγμα: ορίστε
skip = 200, limit = 100ότανpage size = 100καιpage = 2.
- Παράδειγμα: ορίστε
- Τα θυγατρικά σχόλια εξακολουθούν να μετρούν στη σελιδοποίηση. Μπορείτε να το παρακάμψετε χρησιμοποιώντας την επιλογή
asTree.- Μπορείτε να σελιδοποιήσετε τα παιδιά μέσω
limitChildrenκαιskipChildren. - Μπορείτε να περιορίσετε το βάθος των threads που επιστρέφονται μέσω
maxTreeDepth.
- Μπορείτε να σελιδοποιήσετε τα παιδιά μέσω
- Με αυτόν τον τρόπο μπορείτε να ορίσετε προσαρμοσμένες παραμέτρους
Threads
- Όταν χρησιμοποιείτε
Προϋπολογισμένη Σελιδοποίηση, τα σχόλια ομαδοποιούνται ανά σελίδα και τα σχόλια σε threads επηρεάζουν τη συνολική σελίδα.- Με αυτόν τον τρόπο, τα threads μπορούν να καθοριστούν στον client βάσει του
parentId. - Για παράδειγμα, με μια σελίδα με ένα σχόλιο κορυφαίου επιπέδου, και 29 απαντήσεις, και ρυθμίζοντας
page=0στο API - θα πάρετε μόνο το σχόλιο κορυφαίου επιπέδου και τα 29 παιδιά. - Παράδειγμα εικόνας εδώ που απεικονίζει πολλαπλές σελίδες.
- Με αυτόν τον τρόπο, τα threads μπορούν να καθοριστούν στον client βάσει του
- Όταν χρησιμοποιείτε
Ευέλικτη Σελιδοποίηση, μπορείτε να ορίσετε μια παράμετροparentId.- Ορίστε αυτό σε null για να πάρετε μόνο σχόλια κορυφαίου επιπέδου.
- Στη συνέχεια για να δείτε threads, καλέστε ξανά το API και περάστε
parentId. - Μια συνηθισμένη λύση είναι να κάνετε μια κλήση API για τα σχόλια κορυφαίου επιπέδου και στη συνέχεια να κάνετε παράλληλες κλήσεις API για να πάρετε σχόλια για τα παιδιά κάθε σχολίου.
- ΝΕΟ από Φεβ 2023! Ανάκτηση ως δέντρο χρησιμοποιώντας
&asTree=true.- Μπορείτε να το σκεφτείτε ως
Ευέλικτη Σελιδοποίηση ως Δέντρο. - Μόνο τα σχόλια κορυφαίου επιπέδου μετρούν στη σελιδοποίηση.
- Ορίστε
parentId=nullγια να ξεκινήσετε το δέντρο από τη ρίζα (πρέπει να ορίσετεparentId). - Ορίστε
skipκαιlimitγια σελιδοποίηση. - Ορίστε
asTreeσεtrue. - Το κόστος credits αυξάνεται κατά
2x, καθώς το backend μας πρέπει να κάνει πολύ περισσότερη δουλειά σε αυτό το σενάριο. - Ορίστε
maxTreeDepth,limitChildren, καιskipChildrenόπως επιθυμείτε.
- Μπορείτε να το σκεφτείτε ως
Εξήγηση Δέντρων
Όταν χρησιμοποιείτε asTree, μπορεί να είναι δύσκολο να συλλάβετε τη σελιδοποίηση. Εδώ είναι ένα χρήσιμο γραφικό:
Ανάκτηση Σχολίων στο Πλαίσιο ενός Χρήστη
Το /comments API μπορεί να χρησιμοποιηθεί σε δύο πλαίσια, για διαφορετικές περιπτώσεις χρήσης:
- Για επιστροφή σχολίων ταξινομημένων και με πληροφορίες για την κατασκευή του δικού σας client.
- Σε αυτή την περίπτωση, ορίστε μια παράμετρο query
contextUserId.
- Σε αυτή την περίπτωση, ορίστε μια παράμετρο query
- Για ανάκτηση σχολίων από το backend σας για προσαρμοσμένες ενσωματώσεις.
- Η πλατφόρμα θα επιλέξει αυτό από προεπιλογή χωρίς
contextUserId.
- Η πλατφόρμα θα επιλέξει αυτό από προεπιλογή χωρίς




Ανάκτηση Σχολίων ως Δέντρο
Είναι δυνατό να πάρετε τα σχόλια που επιστρέφονται ως δέντρο, με τη σελιδοποίηση να μετρά μόνο τα σχόλια κορυφαίου επιπέδου.

Θέλετε να πάρετε μόνο τα σχόλια κορυφαίου επιπέδου και τα άμεσα παιδιά; Εδώ είναι ένας τρόπος:

Ωστόσο, στο UI σας μπορεί να χρειαστεί να γνωρίζετε αν θα εμφανίσετε ένα κουμπί "εμφάνιση απαντήσεων" σε
κάθε σχόλιο. Όταν ανακτάτε σχόλια μέσω δέντρου υπάρχει μια ιδιότητα hasChildren που προστίθεται
στα σχόλια όταν ισχύει.
Ανάκτηση Σχολίων ως Δέντρο, Αναζήτηση με Hash Tag
Είναι δυνατή η αναζήτηση με hashtag χρησιμοποιώντας το API, σε ολόκληρο τον tenant σας (όχι περιορισμένη σε μία σελίδα, ή urlId).
Σε αυτό το παράδειγμα, παραλείπουμε το urlId, και αναζητούμε με πολλαπλά hashtags. Το API θα επιστρέψει μόνο σχόλια που έχουν όλα τα ζητούμενα hashtags.

Όλες οι Παράμετροι Αιτήματος

Η Απάντηση

Χρήσιμες Συμβουλές
URL ID
Πιθανότατα θέλετε να χρησιμοποιήσετε το Comment API με την παράμετρο urlId. Μπορείτε να καλέσετε πρώτα το Pages API, για να δείτε πώς μοιάζουν οι διαθέσιμες τιμές urlId.
Ανώνυμες Ενέργειες
Για ανώνυμο σχολιασμό πιθανότατα θέλετε να περνάτε anonUserId όταν ανακτάτε σχόλια, και όταν εκτελείτε επισήμανση και αποκλεισμό.
(!) Αυτό απαιτείται για πολλά app stores καθώς οι χρήστες πρέπει να μπορούν να επισημάνουν περιεχόμενο που δημιουργήθηκε από χρήστες που μπορούν να δουν, ακόμα κι αν δεν είναι συνδεδεμένοι. Η μη συμμόρφωση μπορεί να προκαλέσει την αφαίρεση της εφαρμογής σας από το εν λόγω store.
Σχόλια που δεν Επιστρέφονται
Ελέγξτε ότι τα σχόλιά σας είναι εγκεκριμένα, και δεν είναι spam.
GET /api/v1/comments/:id 
Αυτό το API παρέχει τη δυνατότητα ανάκτησης ενός μόνο σχολίου με βάση το id.



POST /api/v1/comments 
Αυτό το API endpoint παρέχει τη δυνατότητα δημιουργίας σχολίων.
Συνήθεις περιπτώσεις χρήσης είναι προσαρμοσμένα UI, ενσωματώσεις ή εισαγωγές.
Σημειώσεις:
- Αυτό το API μπορεί να ενημερώσει το comment widget "live" αν επιθυμείτε (αυτό αυξάνει το
creditsCostαπό1σε2). - Αυτό το API θα δημιουργήσει αυτόματα αντικείμενα χρηστών στο σύστημά μας αν παρέχεται email.
- Η προσπάθεια αποθήκευσης δύο σχολίων με διαφορετικά emails, αλλά το ίδιο username, θα οδηγήσει σε σφάλμα για το δεύτερο σχόλιο.
- Αν καθορίζετε
parentId, και ένα θυγατρικό σχόλιο έχειnotificationSentForParentως false, θα στείλουμε ειδοποιήσεις για το γονικό σχόλιο. Αυτό γίνεται κάθε ώρα (συγκεντρώνουμε τις ειδοποιήσεις μαζί για να μειώσουμε τον αριθμό των emails που αποστέλλονται). - Αν θέλετε να στείλετε emails καλωσορίσματος κατά τη δημιουργία χρηστών, ή emails επαλήθευσης σχολίων, ορίστε
sendEmailsσεtrueστις παραμέτρους query. - Τα σχόλια που δημιουργούνται μέσω αυτού του API θα εμφανίζονται στις σελίδες Analytics και Moderation της εφαρμογής διαχείρισης.
- Οι "κακές λέξεις" εξακολουθούν να καλύπτονται στα ονόματα σχολιαστών και στο κείμενο σχολίου αν η ρύθμιση είναι ενεργοποιημένη.
- Τα σχόλια που δημιουργούνται μέσω αυτού του API μπορούν ακόμα να ελεγχθούν για spam αν επιθυμείτε.
- Διαμόρφωση όπως μέγιστο μήκος σχολίου, αν διαμορφωθεί μέσω της σελίδας διαχείρισης Customization Rule, θα εφαρμοστεί εδώ.
Τα ελάχιστα δεδομένα που απαιτούνται για υποβολή που θα εμφανίζονται στο comment widget, είναι τα εξής:

Ένα πιο ρεαλιστικό αίτημα μπορεί να μοιάζει με:



PATCH /api/v1/comments/:id 
Αυτό το API endpoint παρέχει τη δυνατότητα ενημέρωσης ενός μόνο σχολίου.
Σημειώσεις:
- Αυτό το API μπορεί να ενημερώσει το comment widget "live" αν επιθυμείτε (αυτό αυξάνει το βασικό
creditsCostαπό1σε2).- Αυτό μπορεί να κάνει τη μετεγκατάσταση σχολίων μεταξύ σελίδων "live" (αλλαγή
urlId). - Οι μετεγκαταστάσεις κοστίζουν επιπλέον
2credits καθώς οι σελίδες προϋπολογίζονται και αυτό είναι εντατικό σε CPU.
- Αυτό μπορεί να κάνει τη μετεγκατάσταση σχολίων μεταξύ σελίδων "live" (αλλαγή
- Σε αντίθεση με το create API, αυτό το API ΔΕΝ θα δημιουργήσει αυτόματα αντικείμενα χρηστών στο σύστημά μας αν παρέχεται email.
- Τα σχόλια που ενημερώνονται μέσω αυτού του API μπορούν ακόμα να ελεγχθούν για spam αν επιθυμείτε.
- Διαμόρφωση όπως μέγιστο μήκος σχολίου, αν διαμορφωθεί μέσω της σελίδας διαχείρισης Customization Rule, θα εφαρμοστεί εδώ.
- Για να επιτρέψετε στους χρήστες να ενημερώσουν το κείμενο του σχολίου τους, μπορείτε απλά να καθορίσετε
commentστο request body. Θα δημιουργήσουμε το αποτέλεσμαcommentHTML.- Αν ορίσετε και
commentκαιcommentHTMLδεν θα δημιουργήσουμε αυτόματα το HTML. - Αν ο χρήστης προσθέσει mentions ή hashtags στο νέο κείμενό του, θα επεξεργαστεί ακόμα όπως το
POSTAPI.
- Αν ορίσετε και
- Όταν ενημερώνετε το
commenterEmailσε ένα σχόλιο, είναι καλύτερο να καθορίσετε επίσηςuserId. Διαφορετικά, πρέπει να διασφαλίσετε ότι ο χρήστης με αυτό το email ανήκει στο tenant σας, αλλιώς το αίτημα θα αποτύχει.



DELETE /api/v1/comments/:id 
Αυτό το API endpoint παρέχει τη δυνατότητα διαγραφής ενός σχολίου.
Σημειώσεις:
- Αυτό το API μπορεί να ενημερώσει το comment widget "live" αν επιθυμείτε (αυτό αυξάνει το
creditsCostαπό1σε2). - Αυτό το API θα διαγράψει όλα τα θυγατρικά σχόλια.



POST /api/v1/comments/:id/flag 
Αυτό το API endpoint παρέχει τη δυνατότητα επισήμανσης ενός σχολίου για έναν συγκεκριμένο χρήστη.
Σημειώσεις:
- Αυτή η κλήση πρέπει πάντα να γίνεται στο πλαίσιο ενός χρήστη. Ο χρήστης μπορεί να είναι FastComments.com User, SSO User ή Tenant User.
- Αν έχει οριστεί όριο επισήμανσης για απόκρυψη, το σχόλιο θα αποκρυφτεί αυτόματα live αφού επισημανθεί τον καθορισμένο αριθμό φορών.
- Αφού αυτόματα απορριφθεί (αποκρυφτεί) - το σχόλιο μπορεί να επανεγκριθεί μόνο από διαχειριστή ή συντονιστή. Η αφαίρεση της επισήμανσης δεν θα επανεγκρίνει το σχόλιο.

Για ανώνυμη επισήμανση, πρέπει να καθορίσουμε ένα anonUserId. Αυτό μπορεί να είναι ένα ID που αντιπροσωπεύει την ανώνυμη συνεδρία, ή ένα τυχαίο UUID.
Αυτό μας επιτρέπει να υποστηρίξουμε την επισήμανση και αφαίρεση επισήμανσης σχολίων ακόμα κι αν ένας χρήστης δεν είναι συνδεδεμένος. Με αυτόν τον τρόπο, το σχόλιο μπορεί να επισημανθεί ως
επισημασμένο όταν ανακτώνται σχόλια με το ίδιο anonUserId.



POST /api/v1/comments/:id/un-flag 
Αυτό το API endpoint παρέχει τη δυνατότητα αφαίρεσης επισήμανσης ενός σχολίου για έναν συγκεκριμένο χρήστη.
Σημειώσεις:
- Αυτή η κλήση πρέπει πάντα να γίνεται στο πλαίσιο ενός χρήστη. Ο χρήστης μπορεί να είναι FastComments.com User, SSO User ή Tenant User.
- Αφού ένα σχόλιο αυτόματα απορριφθεί (αποκρυφτεί) - το σχόλιο μπορεί να επανεγκριθεί μόνο από διαχειριστή ή συντονιστή. Η αφαίρεση της επισήμανσης δεν θα επανεγκρίνει το σχόλιο.

Για ανώνυμη επισήμανση, πρέπει να καθορίσουμε ένα anonUserId. Αυτό μπορεί να είναι ένα ID που αντιπροσωπεύει την ανώνυμη συνεδρία, ή ένα τυχαίο UUID.



POST /api/v1/comments/:id/block 
Αυτό το API endpoint παρέχει τη δυνατότητα αποκλεισμού ενός χρήστη που έγραψε ένα συγκεκριμένο σχόλιο. Υποστηρίζει τον αποκλεισμό από σχόλια που γράφτηκαν από χρήστες FastComments.com, SSO Users και Tenant Users.
Υποστηρίζει μια παράμετρο body commentIdsToCheck για να ελέγξει αν άλλα πιθανώς ορατά σχόλια στον client θα πρέπει να αποκλειστούν/ξεμπλοκαριστούν μετά την εκτέλεση αυτής της ενέργειας.
Σημειώσεις:
- Αυτή η κλήση πρέπει πάντα να γίνεται στο πλαίσιο ενός χρήστη. Ο χρήστης μπορεί να είναι FastComments.com User, SSO User ή Tenant User.
- Το
userIdστο αίτημα είναι ο χρήστης που κάνει τον αποκλεισμό. Για παράδειγμα: ΟUser Aθέλει να αποκλείσει τονUser B. ΠεράστεuserId=User Aκαι το id σχολίου που έγραψε οUser B. - Εντελώς ανώνυμα σχόλια (χωρίς user id, χωρίς email) δεν μπορούν να αποκλειστούν και θα επιστραφεί σφάλμα.

Για ανώνυμο αποκλεισμό, πρέπει να καθορίσουμε ένα anonUserId. Αυτό μπορεί να είναι ένα ID που αντιπροσωπεύει την ανώνυμη συνεδρία, ή ένα τυχαίο UUID.
Αυτό μας επιτρέπει να υποστηρίξουμε τον αποκλεισμό σχολίων ακόμα κι αν ένας χρήστης δεν είναι συνδεδεμένος, ανακτώντας τα σχόλια με το ίδιο anonUserId.



POST /api/v1/comments/:id/un-block 
Αυτό το API endpoint παρέχει τη δυνατότητα άρσης αποκλεισμού ενός χρήστη που έγραψε ένα συγκεκριμένο σχόλιο. Υποστηρίζει την άρση αποκλεισμού από σχόλια που γράφτηκαν από χρήστες FastComments.com, SSO Users και Tenant Users.
Υποστηρίζει μια παράμετρο body commentIdsToCheck για να ελέγξει αν άλλα πιθανώς ορατά σχόλια στον client θα πρέπει να αποκλειστούν/ξεμπλοκαριστούν μετά την εκτέλεση αυτής της ενέργειας.
Σημειώσεις:
- Αυτή η κλήση πρέπει πάντα να γίνεται στο πλαίσιο ενός χρήστη. Ο χρήστης μπορεί να είναι FastComments.com User, SSO User ή Tenant User.
- Το
userIdστο αίτημα είναι ο χρήστης που κάνει την άρση αποκλεισμού. Για παράδειγμα: ΟUser Aθέλει να άρει τον αποκλεισμό τουUser B. ΠεράστεuserId=User Aκαι το id σχολίου που έγραψε οUser B. - Εντελώς ανώνυμα σχόλια (χωρίς user id, χωρίς email) δεν μπορούν να αποκλειστούν και θα επιστραφεί σφάλμα.




Δομή Προτύπου Email 
Ένα αντικείμενο EmailTemplate αντιπροσωπεύει τη διαμόρφωση για ένα προσαρμοσμένο πρότυπο email, για έναν ενοικιαστή.
Το σύστημα θα επιλέξει το πρότυπο email προς χρήση μέσω:
- Του αναγνωριστικού τύπου, το ονομάζουμε
emailTemplateId. Αυτές είναι σταθερές. - Το
domain. Πρώτα θα προσπαθήσουμε να βρούμε ένα πρότυπο για το domain στο οποίο σχετίζεται το αντικείμενο (όπως έναComment), και αν δεν βρεθεί αντιστοιχία τότε θα προσπαθήσουμε να βρούμε ένα πρότυπο όπου το domain είναι null ή*.
Η δομή για το αντικείμενο EmailTemplate είναι η ακόλουθη:

Σημειώσεις
- Μπορείτε να λάβετε τις έγκυρες τιμές
emailTemplateIdαπό το endpoint/definitions. - Το endpoint
/definitionsπεριλαμβάνει επίσης τις προεπιλεγμένες μεταφράσεις και δεδομένα δοκιμής. - Τα πρότυπα θα αποτύχουν να αποθηκευτούν με μη έγκυρη δομή ή δεδομένα δοκιμής.
GET /api/v1/email-templates/:id 
Μεμονωμένα EmailTemplates μπορούν να ανακτηθούν με βάση το αντίστοιχο id (ΟΧΙ emailTemplateId).



GET /api/v1/email-templates 
Αυτό το API χρησιμοποιεί σελιδοποίηση, που παρέχεται από την παράμετρο ερωτήματος page. Τα EmailTemplates επιστρέφονται σε σελίδες των 100, ταξινομημένα κατά createdAt και μετά id.



PATCH /api/v1/email-templates/:id 
Αυτό το API endpoint παρέχει τη δυνατότητα ενημέρωσης ενός προτύπου email καθορίζοντας μόνο το id και τα χαρακτηριστικά προς ενημέρωση.
Σημειώστε ότι όλες οι ίδιες επικυρώσεις για τη δημιουργία προτύπου ισχύουν επίσης, για παράδειγμα:
- Το πρότυπο πρέπει να αποδίδεται. Αυτό ελέγχεται με κάθε ενημέρωση.
- Δεν μπορείτε να έχετε διπλότυπα πρότυπα για το ίδιο domain (διαφορετικά το ένα θα αγνοηθεί σιωπηλά).



POST /api/v1/email-templates 
Αυτό το API endpoint παρέχει τη δυνατότητα δημιουργίας προτύπων email.
Σημειώσεις:
- Δεν μπορείτε να έχετε πολλαπλά πρότυπα με το ίδιο
emailTemplateIdμε το ίδιο domain. - Αλλά μπορείτε να έχετε ένα πρότυπο με χαρακτήρα μπαλαντέρ (
domain=*και ένα πρότυπο ειδικό για domain για το ίδιοemailTemplateId). - Ο καθορισμός
domainείναι σχετικός μόνο αν έχετε διαφορετικά domains, ή θέλετε να χρησιμοποιήσετε συγκεκριμένα πρότυπα για δοκιμές (domainορισμένο σεlocalhostκλπ). - Αν καθορίσετε
domainπρέπει να ταιριάζει με έναDomainConfig. Σε σφάλμα παρέχεται μια λίστα με έγκυρα domains. - Η σύνταξη προτύπου είναι EJS και αποδίδεται με χρονικό όριο 500ms. Το P99 για απόδοση είναι <5ms, οπότε αν φτάσετε τα 500ms κάτι δεν πάει καλά.
- Το πρότυπό σας πρέπει να αποδίδεται με τα δεδομένα
testDataπου δώσατε για να αποθηκευτεί. Τα σφάλματα απόδοσης συγκεντρώνονται και αναφέρονται στον πίνακα ελέγχου (σύντομα διαθέσιμο μέσω API).
Τα ελάχιστα απαιτούμενα δεδομένα για την προσθήκη ενός προτύπου είναι τα ακόλουθα:

Μπορεί να θέλετε να έχετε πρότυπα ανά ιστότοπο, οπότε ορίζετε το domain:



POST /api/v1/email-templates/render 
Αυτό το API endpoint παρέχει τη δυνατότητα προεπισκόπησης προτύπων email.



DELETE /api/v1/email-templates/:id 
Αυτή η διαδρομή παρέχει την αφαίρεση ενός μόνο EmailTemplate με βάση το id.



Δομή Hashtag 
Ένα αντικείμενο HashTag αντιπροσωπεύει ένα tag που μπορεί να αφεθεί από έναν χρήστη. Τα HashTags μπορούν να χρησιμοποιηθούν για σύνδεση με εξωτερικό περιεχόμενο ή για
σύνδεση σχετικών σχολίων μεταξύ τους.
Η δομή για το αντικείμενο HashTag είναι η ακόλουθη:

Σημειώσεις:
- Σε ορισμένα API endpoints θα δείτε ότι το hashtag χρησιμοποιείται στο URL. Θυμηθείτε να κωδικοποιήσετε τις τιμές URI. Για παράδειγμα, το
#θα πρέπει αντ' αυτού να αναπαρίσταται ως%23. - Ορισμένα από αυτά τα πεδία είναι επισημασμένα ως
READONLY- αυτά επιστρέφονται από το API αλλά δεν μπορούν να οριστούν.
GET /api/v1/hash-tags 
Αυτό το API χρησιμοποιεί σελιδοποίηση, που παρέχεται από την παράμετρο ερωτήματος page. Τα HashTags επιστρέφονται σε σελίδες των 100, ταξινομημένα κατά tag.



PATCH /api/v1/hash-tags/:tag 
Αυτή η διαδρομή παρέχει τη δυνατότητα ενημέρωσης ενός μόνο HashTag.



POST /api/v1/hash-tags 
Αυτή η διαδρομή παρέχει τη δυνατότητα προσθήκης ενός μόνο HashTag.



POST /api/v1/hash-tags/bulk 
Αυτή η διαδρομή παρέχει τη δυνατότητα προσθήκης έως 100 αντικειμένων HashTag ταυτόχρονα.



DELETE /api/v1/hash-tags/:tag 
Αυτή η διαδρομή παρέχει την αφαίρεση ενός HashTag με βάση το παρεχόμενο tag.
Σημειώστε ότι εκτός αν η αυτόματη δημιουργία HashTag είναι απενεργοποιημένη, τα hashtags μπορούν να αναδημιουργηθούν από έναν χρήστη που παρέχει το hashtag κατά το σχολιασμό.



Δομή Διαχειριστή 
Ένα αντικείμενο Moderator αντιπροσωπεύει τη διαμόρφωση για έναν συντονιστή.
Υπάρχουν τρεις τύποι συντονιστών:
- Χρήστες διαχειριστές που έχουν τη σημαία
isCommentModeratorAdmin. - Χρήστες SSO με τη σημαία
isCommentModeratorAdmin. - Κανονικοί σχολιαστές, ή χρήστες FastComments.com, που προσκαλούνται ως Συντονιστές.
Η δομή Moderator χρησιμοποιείται για να αναπαραστήσει την Κατάσταση Συντονισμού της περίπτωσης χρήσης 3.
Αν θέλετε να προσκαλέσετε έναν χρήστη να γίνει συντονιστής, μέσω του API, χρησιμοποιήστε το API Moderator δημιουργώντας έναν Moderator και προσκαλώντας τον.
Αν ο χρήστης δεν έχει λογαριασμό FastComments.com, το email πρόσκλησης θα τον βοηθήσει να ρυθμίσει. Αν έχει ήδη λογαριασμό, θα του
δοθεί πρόσβαση συντονισμού στον ενοικιαστή σας και το userId του αντικειμένου Moderator θα ενημερωθεί για να δείχνει στον χρήστη του. Δεν θα έχετε πρόσβαση API
στον χρήστη τους, καθώς σε αυτή την περίπτωση ανήκει στους ίδιους και διαχειρίζεται από το FastComments.com.
Αν απαιτείτε πλήρη διαχείριση του λογαριασμού του χρήστη, συνιστούμε είτε τη χρήση SSO, είτε την προσθήκη τους ως Χρήστη Ενοικιαστή και
μετά την προσθήκη ενός αντικειμένου Moderator για την παρακολούθηση των στατιστικών τους.
Η δομή Moderator μπορεί να χρησιμοποιηθεί ως μηχανισμός παρακολούθησης στατιστικών για τις περιπτώσεις χρήσης 1 και 2. Μετά τη δημιουργία του χρήστη, προσθέστε ένα αντικείμενο Moderator
με το userId τους ορισμένο και τα στατιστικά τους θα παρακολουθούνται στη Σελίδα Συντονιστών Σχολίων.
Η δομή για το αντικείμενο Moderator είναι η ακόλουθη:

GET /api/v1/moderators/:id 
Αυτή η διαδρομή επιστρέφει έναν μόνο συντονιστή με βάση το id του.



GET /api/v1/moderators 
Αυτό το API χρησιμοποιεί σελιδοποίηση, που παρέχεται από την παράμετρο ερωτήματος skip. Οι Συντονιστές επιστρέφονται σε σελίδες των 100, ταξινομημένοι κατά createdAt και id.
Το κόστος βασίζεται στον αριθμό των συντονιστών που επιστρέφονται, κοστίζοντας 1 πίστωση ανά 10 συντονιστές που επιστρέφονται.



PATCH /api/v1/moderators/:id 
Αυτό το API endpoint παρέχει τη δυνατότητα ενημέρωσης ενός Moderator με βάση το id.
Η ενημέρωση ενός Moderator έχει τους ακόλουθους περιορισμούς:
- Οι ακόλουθες τιμές δεν μπορούν να παρέχονται κατά την ενημέρωση ενός
Moderator:acceptedInvitemarkReviewedCountdeletedCountmarkedSpamCountapprovedCounteditedCountbannedCountverificationIdcreatedAt
- Όταν καθορίζεται ένα
userId, αυτός ο χρήστης πρέπει να υπάρχει. - Όταν καθορίζεται ένα
userId, πρέπει να ανήκει στο ίδιοtenantIdπου καθορίζεται στις παραμέτρους ερωτήματος. - Δύο συντονιστές στον ίδιο ενοικιαστή δεν μπορούν να προστεθούν με το ίδιο
email. - Δεν μπορείτε να αλλάξετε το
tenantIdπου σχετίζεται με ένανModerator.



POST /api/v1/moderators 
Αυτή η διαδρομή παρέχει τη δυνατότητα προσθήκης ενός μόνο Moderator.
Η δημιουργία ενός Moderator έχει τους ακόλουθους περιορισμούς:
- Ένα
nameκαιemailπρέπει πάντα να παρέχονται. ΤοuserIdείναι προαιρετικό. - Οι ακόλουθες τιμές δεν μπορούν να παρέχονται κατά τη δημιουργία ενός
Moderator:acceptedInvitemarkReviewedCountdeletedCountmarkedSpamCountapprovedCounteditedCountbannedCountverificationIdcreatedAt
- Όταν καθορίζεται ένα
userId, αυτός ο χρήστης πρέπει να υπάρχει. - Όταν καθορίζεται ένα
userId, πρέπει να ανήκει στο ίδιοtenantIdπου καθορίζεται στις παραμέτρους ερωτήματος. - Δύο συντονιστές στον ίδιο ενοικιαστή δεν μπορούν να προστεθούν με το ίδιο
email.
Μπορούμε να δημιουργήσουμε έναν Moderator για έναν χρήστη για τον οποίο γνωρίζουμε μόνο το email:

Ή μπορούμε να δημιουργήσουμε έναν Moderator για έναν χρήστη που ανήκει στον ενοικιαστή μας, για να παρακολουθούμε τα στατιστικά συντονισμού του:



POST /api/v1/moderators/:id/send-invite 
Αυτή η διαδρομή παρέχει τη δυνατότητα πρόσκλησης ενός μόνο Moderator.
Οι ακόλουθοι περιορισμοί υπάρχουν για την αποστολή email πρόσκλησης σε έναν Moderator:
- Ο
Moderatorπρέπει να υπάρχει ήδη. - Το
fromNameδεν μπορεί να είναι μεγαλύτερο από100 χαρακτήρες.
Σημειώσεις:
- Αν υπάρχει ήδη χρήστης με το παρεχόμενο email, θα προσκληθεί να συντονίσει τα σχόλια του ενοικιαστή σας.
- Αν δεν υπάρχει χρήστης με το παρεχόμενο email, ο σύνδεσμος πρόσκλησης θα τον καθοδηγήσει στη δημιουργία του λογαριασμού του.
- Η πρόσκληση θα λήξει μετά από
30 ημέρες.
Μπορούμε να δημιουργήσουμε έναν Moderator για έναν χρήστη για τον οποίο γνωρίζουμε μόνο το email:

Αυτό θα στείλει ένα email όπως Ο Bob στο TenantName σας προσκαλεί να γίνετε συντονιστής...


DELETE /api/v1/moderators/:id 
Αυτή η διαδρομή παρέχει την αφαίρεση ενός Moderator με βάση το id.



Δομή Αριθμού Ειδοποιήσεων 
Ένα αντικείμενο NotificationCount αντιπροσωπεύει τον αριθμό μη αναγνωσμένων ειδοποιήσεων και τα μεταδεδομένα για έναν χρήστη.
Αν δεν υπάρχουν μη αναγνωσμένες ειδοποιήσεις, δεν θα υπάρχει NotificationCount για τον χρήστη.
Τα αντικείμενα NotificationCount δημιουργούνται αυτόματα και δεν μπορούν να δημιουργηθούν μέσω του API. Επίσης λήγουν μετά από ένα έτος.
Μπορείτε να καθαρίσετε τον αριθμό μη αναγνωσμένων ειδοποιήσεων ενός χρήστη διαγράφοντας το NotificationCount του.
Η δομή για το αντικείμενο NotificationCount είναι η ακόλουθη:

GET /api/v1/notification-count/:user_id 
Αυτή η διαδρομή επιστρέφει ένα μόνο NotificationCount με βάση το αναγνωριστικό χρήστη. Με SSO, το αναγνωριστικό χρήστη έχει τη μορφή <tenant id>:<user id>.
Αν δεν υπάρχουν μη αναγνωσμένες ειδοποιήσεις, δεν θα υπάρχει NotificationCount - οπότε θα λάβετε 404.
Αυτό διαφέρει από το notifications/count στο ότι είναι πολύ πιο γρήγορο, αλλά δεν επιτρέπει φιλτράρισμα.



DELETE /api/v1/notification-count/:user_id 
Αυτή η διαδρομή διαγράφει ένα μόνο NotificationCount με βάση το αναγνωριστικό χρήστη. Με SSO, το αναγνωριστικό χρήστη έχει τη μορφή <tenant id>:<user id>.
Αυτό θα καθαρίσει τον αριθμό μη αναγνωσμένων ειδοποιήσεων του χρήστη (το κόκκινο καμπανάκι στο widget σχολίων θα εξασθενίσει και ο αριθμός θα εξαφανιστεί).



Δομή Ειδοποίησης 
Ένα αντικείμενο Notification αντιπροσωπεύει μια ειδοποίηση για έναν χρήστη.
Τα αντικείμενα Notification δημιουργούνται αυτόματα και δεν μπορούν να δημιουργηθούν μέσω του API. Επίσης λήγουν μετά από ένα έτος.
Οι ειδοποιήσεις δεν μπορούν να διαγραφούν. Μπορούν όμως να ενημερωθούν για να ορίσουν το viewed σε false, και μπορείτε να κάνετε ερώτημα με βάση το viewed.
Ένας χρήστης μπορεί επίσης να εξαιρεθεί από τις ειδοποιήσεις για ένα συγκεκριμένο σχόλιο ορίζοντας το optedOut στην ειδοποίηση σε true. Μπορείτε να συμμετάσχετε ξανά ορίζοντάς το σε false.
Υπάρχουν διαφορετικοί τύποι ειδοποιήσεων - ελέγξτε τα relatedObjectType και type.
Οι τρόποι δημιουργίας ειδοποιήσεων είναι αρκετά ευέλικτοι και μπορούν να ενεργοποιηθούν από πολλά σενάρια (δείτε NotificationType).
Μέχρι σήμερα, η ύπαρξη μιας Notification δεν συνεπάγεται πραγματικά ότι αποστέλλεται ή πρέπει να αποσταλεί email. Αντίθετα, οι ειδοποιήσεις
χρησιμοποιούνται για τη ροή ειδοποιήσεων και τις σχετικές ενσωματώσεις.
Η δομή για το αντικείμενο Notification είναι η ακόλουθη:

GET /api/v1/notifications 
Αυτή η διαδρομή επιστρέφει έως 30 αντικείμενα Notification ταξινομημένα κατά createdAt, με τα πιο πρόσφατα πρώτα.
Μπορείτε να φιλτράρετε κατά userId. Με SSO, το αναγνωριστικό χρήστη έχει τη μορφή <tenant id>:<user id>.



GET /api/v1/notifications/count 
Αυτή η διαδρομή επιστρέφει ένα αντικείμενο που περιέχει τον αριθμό ειδοποιήσεων σε μια παράμετρο count.
Είναι πιο αργή από την /notification-count/ και διπλάσιου κόστους πιστώσεων, αλλά επιτρέπει φιλτράρισμα σε περισσότερες διαστάσεις.
Μπορείτε να φιλτράρετε με τις ίδιες παραμέτρους όπως το endpoint /notifications όπως το userId. Με SSO, το αναγνωριστικό χρήστη έχει τη μορφή <tenant id>:<user id>.




PATCH /api/v1/notifications/:id 
Αυτό το API endpoint παρέχει τη δυνατότητα ενημέρωσης μιας Notification με βάση το id.
Η ενημέρωση μιας Notification έχει τους ακόλουθους περιορισμούς:
- Μπορείτε να ενημερώσετε μόνο τα ακόλουθα πεδία:
viewedoptedOut



Δομή Σελίδας 
Ένα αντικείμενο Page αντιπροσωπεύει τη σελίδα στην οποία μπορούν να ανήκουν πολλά σχόλια. Αυτή η σχέση ορίζεται από
το urlId.
Μια Page αποθηκεύει πληροφορίες όπως ο τίτλος σελίδας, ο αριθμός σχολίων και το urlId.
Η δομή για το αντικείμενο Page είναι η ακόλουθη:

GET /api/v1/pages 
Αυτή τη στιγμή μπορείτε να ανακτήσετε μόνο όλες τις σελίδες (ή μια μόνο σελίδα μέσω /by-url-id) που σχετίζονται με τον λογαριασμό σας. Αν θέλετε πιο λεπτομερή αναζήτηση, επικοινωνήστε μαζί μας.



Χρήσιμη Συμβουλή
Το API Comment απαιτεί ένα urlId. Μπορείτε να καλέσετε πρώτα το API Pages, για να δείτε πώς μοιάζουν οι διαθέσιμες τιμές urlId
για εσάς.
GET /api/v1/pages/by-url-id 
Μεμονωμένες σελίδες μπορούν να ανακτηθούν με βάση το αντίστοιχο urlId. Αυτό μπορεί να είναι χρήσιμο για αναζήτηση τίτλων σελίδων ή αριθμών σχολίων.



Χρήσιμη Συμβουλή
Θυμηθείτε να κωδικοποιήσετε URI τιμές όπως το urlId.
PATCH /api/v1/pages/:id 
Αυτή η διαδρομή παρέχει τη δυνατότητα ενημέρωσης μιας μόνο Page. Τα αντίστοιχα σχόλια θα ενημερωθούν.



Σημείωση
Ορισμένες παράμετροι στο αντικείμενο Page ενημερώνονται αυτόματα. Αυτές είναι τα χαρακτηριστικά μετρητών και τίτλου. Οι μετρητές δεν μπορούν να ενημερωθούν
μέσω του API καθώς είναι υπολογισμένες τιμές. Ο title της σελίδας μπορεί να οριστεί μέσω του API, αλλά θα αντικατασταθεί αν το widget σχολίων χρησιμοποιηθεί σε
μια σελίδα με το ίδιο urlId και διαφορετικό τίτλο σελίδας.
POST /api/v1/pages 
Αυτό το API endpoint παρέχει τη δυνατότητα δημιουργίας σελίδων.
Μια συνήθης περίπτωση χρήσης είναι ο έλεγχος πρόσβασης.
Σημειώσεις:
- Αν έχετε σχολιάσει σε ένα νήμα σχολίων, ή έχετε καλέσει το API για να δημιουργήσετε ένα
Comment, έχετε ήδη δημιουργήσει ένα αντικείμενοPage! Μπορείτε να δοκιμάσετε να το ανακτήσετε μέσω της διαδρομήςPage/by-url-id, περνώντας το ίδιοurlIdπου περάσατε στο widget σχολίων. - Η δομή
Pageπεριέχει ορισμένες υπολογισμένες τιμές. Αυτή τη στιγμή, αυτές είναιcommentCountκαιrootCommentCount. Συμπληρώνονται αυτόματα και δεν μπορούν να οριστούν από το API. Η προσπάθεια να το κάνετε θα προκαλέσει το API να επιστρέψει σφάλμα.



DELETE /api/v1/pages/:id 
Αυτή η διαδρομή παρέχει την αφαίρεση μιας μόνο σελίδας με βάση το id.
Σημειώστε ότι η αλληλεπίδραση με το widget σχολίων για μια σελίδα με το ίδιο urlId θα αναδημιουργήσει απλά τη Page απρόσκοπτα.



Δομή Εκκρεμούς Συμβάντος Webhook 
Ένα αντικείμενο PendingWebhookEvent αντιπροσωπεύει ένα γεγονός webhook στην ουρά που εκκρεμεί.
Τα αντικείμενα PendingWebhookEvent δημιουργούνται αυτόματα και δεν μπορούν να δημιουργηθούν χειροκίνητα μέσω του API. Επίσης λήγουν μετά από ένα έτος.
Μπορούν να διαγραφούν, πράγμα που αφαιρεί την εργασία από την ουρά.
Υπάρχουν διαφορετικοί τύποι γεγονότων - ελέγξτε τα eventType (OutboundSyncEventType) και type (OutboundSyncType).
Μια συνήθης περίπτωση χρήσης για αυτό το API είναι η υλοποίηση προσαρμοσμένης παρακολούθησης. Μπορεί να θέλετε να καλείτε το endpoint /count περιοδικά
για να ελέγχετε τον εκκρεμή αριθμό για δεδομένα φίλτρα.
Η δομή για το αντικείμενο PendingWebhookEvent είναι η ακόλουθη:

GET /api/v1/pending-webhook-events 
Αυτή η διαδρομή επιστρέφει μια λίστα εκκρεμών γεγονότων webhook σε μια παράμετρο pendingWebhookEvents.
Αυτό το API χρησιμοποιεί σελιδοποίηση, που παρέχεται από την παράμετρο skip. Τα PendingWebhookEvents επιστρέφονται σε σελίδες των 100, ταξινομημένα κατά createdAt με τα πιο πρόσφατα πρώτα.



GET /api/v1/pending-webhook-events/count 
Αυτή η διαδρομή επιστρέφει ένα αντικείμενο που περιέχει τον αριθμό εκκρεμών γεγονότων webhook σε μια παράμετρο count.
Μπορείτε να φιλτράρετε με τις ίδιες παραμέτρους όπως το endpoint /pending-webhook-events



DELETE /api/v1/pending-webhook-events/:id 
Αυτή η διαδρομή επιτρέπει τη διαγραφή ενός μόνο PendingWebhookEvent.
Αν χρειάζεστε μαζική διαγραφή, καλέστε το GET API με σελιδοποίηση και μετά καλέστε αυτό το API διαδοχικά.



Δομή Χρήστη SSO 
Το FastComments παρέχει μια εύκολη στη χρήση λύση SSO. Η ενημέρωση των πληροφοριών ενός χρήστη με την ενσωμάτωση βασισμένη σε HMAC είναι τόσο απλή όσο η φόρτωση της σελίδας από τον χρήστη με ένα ενημερωμένο φορτίο.
Ωστόσο, μπορεί να είναι επιθυμητό να διαχειριστείτε έναν χρήστη εκτός αυτής της ροής, για να βελτιώσετε τη συνέπεια της εφαρμογής σας.
Το API SSO User παρέχει έναν τρόπο για CRUD αντικειμένων που ονομάζουμε SSOUsers. Αυτά τα αντικείμενα είναι διαφορετικά από τους κανονικούς Users και διατηρούνται χωριστά για ασφάλεια τύπου.
Η δομή για το αντικείμενο SSOUser είναι η ακόλουθη:

Χρέωση για Χρήστες SSO
Οι χρήστες SSO χρεώνονται διαφορετικά με βάση τις σημαίες δικαιωμάτων τους:
- Κανονικοί Χρήστες SSO: Χρήστες χωρίς δικαιώματα διαχειριστή ή συντονιστή χρεώνονται ως κανονικοί χρήστες SSO
- Διαχειριστές SSO: Χρήστες με σημαίες
isAccountOwnerήisAdminAdminχρεώνονται ξεχωριστά ως Διαχειριστές SSO (ίδια τιμή με τους κανονικούς διαχειριστές ενοικιαστή) - Συντονιστές SSO: Χρήστες με σημαία
isCommentModeratorAdminχρεώνονται ξεχωριστά ως Συντονιστές SSO (ίδια τιμή με τους κανονικούς συντονιστές)
Σημαντικό: Για να αποφευχθεί η διπλή χρέωση, το σύστημα αφαιρεί αυτόματα τα διπλότυπα χρηστών SSO έναντι κανονικών χρηστών ενοικιαστή και συντονιστών με βάση τη διεύθυνση email. Αν ένας χρήστης SSO έχει το ίδιο email με έναν κανονικό χρήστη ενοικιαστή ή συντονιστή, δεν θα χρεωθεί δύο φορές.
Έλεγχος Πρόσβασης
Οι χρήστες μπορούν να χωριστούν σε ομάδες. Αυτό είναι για το πεδίο groupIds, και είναι προαιρετικό.
@Αναφορές
Από προεπιλογή οι @αναφορές θα χρησιμοποιούν το username για αναζήτηση άλλων χρηστών sso όταν πληκτρολογηθεί ο χαρακτήρας @. Αν χρησιμοποιείται το displayName, τότε τα αποτελέσματα που ταιριάζουν με
το username θα αγνοηθούν όταν υπάρχει αντιστοιχία για το displayName, και τα αποτελέσματα αναζήτησης @αναφοράς θα χρησιμοποιούν το displayName.
Συνδρομές
Με το FastComments, οι χρήστες μπορούν να εγγραφούν σε μια σελίδα κάνοντας κλικ στο εικονίδιο καμπάνας στο widget σχολίων και κάνοντας κλικ στο Εγγραφή.
Με έναν κανονικό χρήστη, τους στέλνουμε emails ειδοποίησης με βάση τις ρυθμίσεις ειδοποιήσεων τους.
Με τους Χρήστες SSO, το χωρίζουμε αυτό για συμβατότητα προς τα πίσω. Οι χρήστες θα λαμβάνουν αυτά τα επιπλέον emails ειδοποίησης συνδρομής
μόνο αν ορίσετε το optedInSubscriptionNotifications σε true.
Εμβλήματα
Μπορείτε να αναθέσετε εμβλήματα σε χρήστες SSO χρησιμοποιώντας την ιδιότητα badgeConfig. Τα εμβλήματα είναι οπτικοί δείκτες που εμφανίζονται δίπλα στο όνομα ενός χρήστη στα σχόλια.
badgeIds- Ένας πίνακας με IDs εμβλημάτων για ανάθεση στον χρήστη. Αυτά πρέπει να είναι έγκυρα IDs εμβλημάτων που δημιουργήθηκαν στον λογαριασμό FastComments σας. Περιορισμένο σε 30 εμβλήματα.override- Αν είναι αληθές, όλα τα υπάρχοντα εμβλήματα που εμφανίζονται στα σχόλια θα αντικατασταθούν με τα παρεχόμενα. Αν είναι ψευδές ή παραλείπεται, τα παρεχόμενα εμβλήματα θα προστεθούν σε οποιαδήποτε υπάρχοντα εμβλήματα.update- Αν είναι αληθές, οι ιδιότητες εμφάνισης εμβλήματος θα ενημερωθούν από τη διαμόρφωση ενοικιαστή όποτε ο χρήστης συνδέεται.
GET /api/v1/sso-users 
Αυτή η διαδρομή επιστρέφει Χρήστες SSO σε σελίδες των 100. Η σελιδοποίηση παρέχεται από την παράμετρο skip. Οι χρήστες ταξινομούνται κατά signUpDate και id.



GET /api/v1/sso-users/by-id/:id 
Αυτή η διαδρομή επιστρέφει έναν μόνο χρήστη SSO με βάση το id του.



GET /api/v1/sso-users/by-email/:email 
Αυτή η διαδρομή επιστρέφει έναν μόνο χρήστη SSO με βάση το email του.



PATCH /api/v1/sso-users/:id 
Αυτή η διαδρομή παρέχει τη δυνατότητα ενημέρωσης ενός μόνο χρήστη SSO.



POST /api/v1/sso-users 
Αυτή η διαδρομή παρέχει τη δημιουργία ενός μόνο χρήστη SSO.
Η προσπάθεια δημιουργίας δύο χρηστών με το ίδιο ID θα οδηγήσει σε σφάλμα.

Σε αυτό το παράδειγμα καθορίζουμε groupIds για έλεγχο πρόσβασης, αλλά αυτό είναι προαιρετικό.


Σημείωση Ενσωμάτωσης
Τα δεδομένα που περνούν από το API μπορούν να αντικατασταθούν απλά περνώντας ένα διαφορετικό φορτίο SSO User HMAC. Για παράδειγμα, αν ορίσετε ένα username μέσω του API, αλλά μετά περάσετε ένα διαφορετικό μέσω της ροής SSO κατά τη φόρτωση σελίδας, θα ενημερώσουμε αυτόματα το username τους.
Δεν θα ενημερώσουμε παραμέτρους χρήστη σε αυτή τη ροή εκτός αν τις καθορίσετε ρητά ή τις ορίσετε σε null (όχι undefined).
PUT /api/v1/sso-users/:id 
Αυτή η διαδρομή παρέχει τη δυνατότητα ενημέρωσης ενός μόνο χρήστη SSO.

Σε αυτό το παράδειγμα καθορίζουμε groupIds για έλεγχο πρόσβασης, αλλά αυτό είναι προαιρετικό.


DELETE /api/v1/sso-users/:id 
Αυτή η διαδρομή παρέχει την αφαίρεση ενός μόνο χρήστη SSO με βάση το id του.
Σημειώστε ότι η φόρτωση του widget σχολίων ξανά με ένα φορτίο για αυτόν τον χρήστη θα αναδημιουργήσει απλά τον χρήστη απρόσκοπτα.
Η διαγραφή των σχολίων του χρήστη είναι δυνατή μέσω της παραμέτρου ερωτήματος deleteComments. Σημειώστε ότι αν αυτή είναι αληθής:
- Όλα τα σχόλια του χρήστη θα διαγραφούν ζωντανά.
- Όλα τα παιδικά (τώρα ορφανά) σχόλια θα διαγραφούν ή θα ανωνυμοποιηθούν με βάση τη διαμόρφωση της συσχετισμένης σελίδας κάθε σχολίου. Για παράδειγμα αν η λειτουργία διαγραφής νήματος είναι "ανωνυμοποίηση", τότε οι απαντήσεις θα παραμείνουν, και τα σχόλια του χρήστη θα ανωνυμοποιηθούν. Αυτό ισχύει μόνο όταν το
commentDeleteModeείναιRemove(η προεπιλεγμένη τιμή). - Το
creditsCostγίνεται2.
Ανωνυμοποιημένα Σχόλια
Μπορείτε να διατηρήσετε τα σχόλια του χρήστη αλλά απλά να τα ανωνυμοποιήσετε ορίζοντας commentDeleteMode=1.
Αν τα σχόλια του χρήστη ανωνυμοποιηθούν τότε οι ακόλουθες τιμές ορίζονται σε null:
- commenterName
- commenterEmail
- avatarSrc
- userId
- anonUserId
- mentions
- badgesΤα isDeleted και isDeletedUser ορίζονται σε true.
Κατά την απόδοση, το widget σχολίων θα χρησιμοποιεί το DELETED_USER_PLACEHOLDER (προεπιλογή: "[deleted]") για το όνομα του χρήστη και το DELETED_CONTENT_PLACEHOLDER για το σχόλιο. Αυτά μπορούν να προσαρμοστούν μέσω του UI Προσαρμογής Widget.
Παραδείγματα



Δομή Συνδρομής 
Ένα αντικείμενο Subscription αντιπροσωπεύει μια συνδρομή για έναν χρήστη.
Τα αντικείμενα Subscription δημιουργούνται όταν ένας χρήστης κάνει κλικ στο καμπανάκι ειδοποίησης στο widget σχολίων και κάνει κλικ στο "Εγγραφή σε αυτή τη σελίδα".
Οι συνδρομές μπορούν επίσης να δημιουργηθούν μέσω του API.
Η ύπαρξη ενός αντικειμένου Subscription προκαλεί τη δημιουργία αντικειμένων Notification, και την αποστολή emails, όταν νέα σχόλια αφήνονται στη ρίζα της σχετικής σελίδας
για την οποία είναι η Subscription. Η αποστολή emails εξαρτάται από τον τύπο του χρήστη. Για κανονικούς χρήστες αυτό εξαρτάται από το optedInNotifications. Για Χρήστες SSO αυτό εξαρτάται από το optedInSubscriptionNotifications. Σημειώστε ότι ορισμένες εφαρμογές μπορεί να μην έχουν την έννοια μιας σελίδας προσβάσιμης από το web, οπότε απλά ορίστε το urlId στο
id του στοιχείου στο οποίο εγγράφεστε (ίδια τιμή για το urlId που θα περνούσατε στο widget σχολίων).
Η δομή για το αντικείμενο Subscription είναι η ακόλουθη:

GET /api/v1/subscriptions/:id 
Αυτή η διαδρομή επιστρέφει έως 30 αντικείμενα Subscription ταξινομημένα κατά createdAt, με τα πιο πρόσφατα πρώτα.
Μπορείτε να φιλτράρετε κατά userId. Με SSO, το αναγνωριστικό χρήστη έχει τη μορφή <tenant id>:<user id>.



POST /api/v1/subscriptions 
Αυτό το API endpoint παρέχει τη δυνατότητα δημιουργίας μιας Subscription. Σημειώστε ότι ένας χρήστης μπορεί να έχει μόνο μία συνδρομή ανά σελίδα, καθώς περισσότερες είναι περιττές, και η προσπάθεια
δημιουργίας περισσότερων από μία συνδρομών για τον ίδιο χρήστη για την ίδια σελίδα θα οδηγήσει σε σφάλμα.
Η δημιουργία μιας συνδρομής θα έχει ως αποτέλεσμα τη δημιουργία αντικειμένων Notification όταν ένα νέο σχόλιο αφήνεται στη ρίζα του συνδεδεμένου urlId (όταν το parentId του σχολίου είναι null).



DELETE /api/v1/subscriptions/:id 
Αυτή η διαδρομή διαγράφει ένα μόνο αντικείμενο Subscription με βάση το id.



Δομή Ημερήσιας Χρήσης Ενοικιαστή 
Ένα αντικείμενο TenantDailyUsage αντιπροσωπεύει τη χρήση για έναν ενοικιαστή σε μια δεδομένη ημέρα. Αν δεν υπήρξε δραστηριότητα για έναν δεδομένο ενοικιαστή σε μια δεδομένη
ημέρα, αυτή η ημέρα δεν θα έχει αντικείμενο TenantDailyUsage.
Το αντικείμενο TenantDailyUsage δεν είναι σε πραγματικό χρόνο και μπορεί να υστερεί κατά λεπτά από την πραγματική χρήση.
Η δομή για το αντικείμενο TenantDailyUsage είναι η ακόλουθη:

GET /api/v1/tenant-daily-usage 
Αυτή η διαδρομή επιτρέπει την αναζήτηση για τη χρήση ενός ενοικιαστή ανά έτος, μήνα και ημέρα. Μπορούν να επιστραφούν έως 365 αντικείμενα, και το κόστος είναι 1 πίστωση api ανά 10 αντικείμενα.
Τα αντικείμενα απάντησης ταξινομούνται κατά την ημερομηνία δημιουργίας τους (τα παλαιότερα πρώτα).



Δομή Ενοικιαστή 
Ο Tenant ορίζει έναν πελάτη του FastComments.com. Μπορούν να δημιουργηθούν μέσω του API από ενοικιαστές με πρόσβαση white labeling. Οι white labeled ενοικιαστές
δεν μπορούν να δημιουργήσουν άλλους white labeled ενοικιαστές (επιτρέπεται μόνο ένα επίπεδο ένθεσης).
Η δομή για το αντικείμενο Tenant είναι η ακόλουθη:

GET /api/v1/tenants/:id 
Αυτή η διαδρομή επιστρέφει έναν μόνο Tenant με βάση το id.



GET /api/v1/tenants 
Αυτό το API επιστρέφει ενοικιαστές που διαχειρίζονται από τον ενοικιαστή σας.
Η σελιδοποίηση παρέχεται από την παράμετρο ερωτήματος skip. Οι ενοικιαστές επιστρέφονται σε σελίδες των 100, ταξινομημένοι κατά signUpDate και id.
Το κόστος βασίζεται στον αριθμό των ενοικιαστών που επιστρέφονται, κοστίζοντας 1 πίστωση ανά 10 ενοικιαστές που επιστρέφονται.

Μπορείτε να ορίσετε παραμέτρους meta στα αντικείμενα Tenant και να αναζητήσετε αντίστοιχους ενοικιαστές. Για παράδειγμα, για το κλειδί someKey και την τιμή meta some-value, μπορούμε να
κατασκευάσουμε ένα αντικείμενο JSON με αυτό το ζεύγος κλειδιού/τιμής και μετά να το κωδικοποιήσουμε URI ως παράμετρο ερωτήματος για φιλτράρισμα:



POST /api/v1/tenants 
Αυτή η διαδρομή παρέχει τη δυνατότητα προσθήκης ενός μόνου Tenant.
Η δημιουργία ενός Tenant έχει τους ακόλουθους περιορισμούς:
- Ένα
nameείναι απαιτούμενο. - Το
domainConfigurationείναι απαιτούμενο. - Οι ακόλουθες τιμές δεν μπορούν να παρέχονται κατά τη δημιουργία ενός
Tenant:hasFlexPricinglastBillingIssueReminderDateflexLastBilledAmount
- Η
signUpDateδεν μπορεί να είναι στο μέλλον. - Το
nameδεν μπορεί να είναι μεγαλύτερο από200 χαρακτήρες. - Το
emailδεν μπορεί να είναι μεγαλύτερο από300 χαρακτήρες. - Το
emailπρέπει να είναι μοναδικό σε όλους τους ενοικιαστές του FastComments.com. - Δεν μπορείτε να δημιουργήσετε ενοικιαστές αν ο γονικός ενοικιαστής δεν έχει ένα έγκυρο
TenantPackageορισμένο.- Αν ο ενοικιαστής σας δημιουργήθηκε μέσω του FastComments.com, αυτό δεν θα πρέπει να είναι πρόβλημα.
- Δεν μπορείτε να δημιουργήσετε περισσότερους ενοικιαστές από αυτούς που ορίζονται στο
maxWhiteLabeledTenantsστο πακέτο σας. - Πρέπει να καθορίσετε την παράμετρο ερωτήματος
tenantIdπου είναι το id τουγονικού ενοικιαστήσας με ενεργοποιημένο το white labeling.
Μπορούμε να δημιουργήσουμε έναν Tenant με μόνο λίγες παραμέτρους:



PATCH /api/v1/tenants/:id 
Αυτό το API endpoint παρέχει τη δυνατότητα ενημέρωσης ενός Tenant με βάση το id.
Η ενημέρωση ενός Tenant έχει τους ακόλουθους περιορισμούς:
- Οι ακόλουθες τιμές δεν μπορούν να ενημερωθούν:
hasFlexPricinglastBillingIssueReminderDateflexLastBilledAmountmanagedByTenantId
- Η
signUpDateδεν μπορεί να είναι στο μέλλον. - Το
nameδεν μπορεί να είναι μεγαλύτερο από200 χαρακτήρες. - Το
emailδεν μπορεί να είναι μεγαλύτερο από300 χαρακτήρες. - Το
emailπρέπει να είναι μοναδικό σε όλους τους ενοικιαστές του FastComments.com. - Όταν ορίζετε το
billingInfoValidσεtrue, τοbillingInfoπρέπει να παρέχεται στο ίδιο αίτημα. - Δεν μπορείτε να ενημερώσετε το
packageIdπου συσχετίζεται με τον δικό σας ενοικιαστή. - Δεν μπορείτε να ενημερώσετε το
paymentFrequencyπου συσχετίζεται με τον δικό σας ενοικιαστή.



DELETE /api/v1/tenants/:id 
Αυτή η διαδρομή παρέχει την αφαίρεση ενός Tenant και όλων των σχετικών δεδομένων (χρήστες, σχόλια, κλπ) με βάση το id.
Οι ακόλουθοι περιορισμοί υπάρχουν γύρω από την αφαίρεση ενοικιαστών:
- Ο ενοικιαστής πρέπει να είναι δικός σας, ή ένας ενοικιαστής white label που διαχειρίζεστε.
- Η παράμετρος ερωτήματος
sureπρέπει να οριστεί σεtrue.



Δομή Πακέτου Ενοικιαστή 
Το TenantPackage ορίζει τις πληροφορίες πακέτου που είναι διαθέσιμες σε έναν Tenant. Ένας ενοικιαστής μπορεί να έχει πολλά διαθέσιμα πακέτα, αλλά μόνο
ένα σε χρήση σε δεδομένη στιγμή.
Ένας Tenant δεν μπορεί να χρησιμοποιηθεί για κανένα προϊόν μέχρι το packageId του να δείχνει σε ένα έγκυρο TenantPackage.
Υπάρχουν δύο τύποι αντικειμένων TenantPackage:
- Πακέτα σταθερής τιμολόγησης - όπου το
hasFlexPricingείναι false. - Ευέλικτη τιμολόγηση - όπου το
hasFlexPricingείναι true.
Και στις δύο περιπτώσεις τα όρια ορίζονται στον λογαριασμό που χρησιμοποιεί το πακέτο, ωστόσο με το Flex ο ενοικιαστής χρεώνεται μια βασική τιμή συν
αυτό που χρησιμοποίησε, που ορίζεται από τις παραμέτρους flex*.
Ένας ενοικιαστής μπορεί να έχει πολλαπλά πακέτα ενοικιαστή και να έχει τη δυνατότητα να αλλάξει το πακέτο ο ίδιος από τη Σελίδα Πληροφοριών Χρέωσης.
Αν θα χειρίζεστε τη χρέωση για τους ενοικιαστές εσείς, θα χρειαστεί ακόμα να ορίσετε ένα πακέτο για κάθε ενοικιαστή για να ορίσετε τα όριά τους. Απλά ορίστε το billingHandledExternally σε true στον Tenant και δεν θα
μπορούν να αλλάξουν τις πληροφορίες χρέωσής τους, ή το ενεργό πακέτο, οι ίδιοι.
Δεν μπορείτε να δημιουργήσετε πακέτα με υψηλότερα όρια από τον γονικό ενοικιαστή.
Η δομή για το αντικείμενο TenantPackage είναι η ακόλουθη:

GET /api/v1/tenant-packages/:id 
Αυτή η διαδρομή επιστρέφει ένα μόνο Πακέτο Ενοικιαστή με βάση το id.



GET /api/v1/tenant-packages 
Αυτό το API χρησιμοποιεί σελιδοποίηση, που παρέχεται από την παράμετρο ερωτήματος skip. Τα TenantPackages επιστρέφονται σε σελίδες των 100, ταξινομημένα κατά createdAt και id.
Το κόστος βασίζεται στον αριθμό των πακέτων ενοικιαστή που επιστρέφονται, κοστίζοντας 1 πίστωση ανά 10 πακέτα ενοικιαστή που επιστρέφονται.



POST /api/v1/tenant-packages 
Αυτή η διαδρομή παρέχει τη δυνατότητα προσθήκης ενός μόνου TenantPackage.
Η δημιουργία ενός TenantPackage έχει τους ακόλουθους περιορισμούς:
- Οι ακόλουθες παράμετροι είναι απαιτούμενες:
nametenantIdmonthlyCostUSD- Μπορεί να είναι null.yearlyCostUSD- Μπορεί να είναι null.maxMonthlyPageLoadsmaxMonthlyAPICreditsmaxMonthlyCommentsmaxConcurrentUsersmaxTenantUsersmaxSSOUsersmaxModeratorsmaxDomainshasDebrandingforWhoTextfeatureTaglineshasFlexPricing- Αν είναι true, τότε όλες οι παράμετροιflex*απαιτούνται.
- Το
nameδεν μπορεί να είναι μεγαλύτερο από50 χαρακτήρες. - Κάθε στοιχείο
forWhoTextδεν μπορεί να είναι μεγαλύτερο από200 χαρακτήρες. - Κάθε στοιχείο
featureTaglinesδεν μπορεί να είναι μεγαλύτερο από100 χαρακτήρες. - Το
TenantPackageπρέπει να είναι "μικρότερο" από τον γονικό ενοικιαστή. Για παράδειγμα, όλες οι παράμετροιmax*πρέπει να έχουν χαμηλότερες τιμές από τον γονικό ενοικιαστή. - Ένας white labeled ενοικιαστής μπορεί να έχει μέχρι πέντε πακέτα.
- Μόνο οι ενοικιαστές με πρόσβαση white labeling μπορούν να δημιουργήσουν ένα
TenantPackage. - Δεν μπορείτε να προσθέσετε πακέτα στον δικό σας ενοικιαστή. :)
Μπορούμε να δημιουργήσουμε ένα TenantPackage ως εξής:



PATCH /api/v1/tenant-packages/:id 
Αυτό το API endpoint παρέχει τη δυνατότητα ενημέρωσης ενός TenantPackage με βάση το id.
Η ενημέρωση ενός TenantPackage έχει τους ακόλουθους περιορισμούς:
- Αν ορίζετε το
hasFlexPricingσε true, τότε όλες οι παράμετροιflex*απαιτούνται στο ίδιο αίτημα. - Το
nameδεν μπορεί να είναι μεγαλύτερο από50 χαρακτήρες. - Κάθε στοιχείο
forWhoTextδεν μπορεί να είναι μεγαλύτερο από200 χαρακτήρες. - Κάθε στοιχείο
featureTaglinesδεν μπορεί να είναι μεγαλύτερο από100 χαρακτήρες. - Το
TenantPackageπρέπει να είναι "μικρότερο" από τον γονικό ενοικιαστή. Για παράδειγμα, όλες οι παράμετροιmax*πρέπει να έχουν χαμηλότερες τιμές από τον γονικό ενοικιαστή. - Δεν μπορείτε να αλλάξετε το
tenantIdπου συσχετίζεται με έναTenantPackage.



DELETE /api/v1/tenant-packages/:id 
Αυτή η διαδρομή παρέχει την αφαίρεση ενός TenantPackage με βάση το id.
Δεν μπορείτε να αφαιρέσετε ένα TenantPackage που είναι σε χρήση (το packageId ενός ενοικιαστή δείχνει στο πακέτο). Ενημερώστε πρώτα τον Tenant.



Δομή Χρήστη Ενοικιαστή 
Ο TenantUser ορίζει έναν User που διαχειρίζεται από έναν συγκεκριμένο ενοικιαστή. Ο λογαριασμός του είναι υπό πλήρη έλεγχο του ενοικιαστή
με τον οποίο συσχετίζεται, και ο λογαριασμός του μπορεί να ενημερωθεί ή να διαγραφεί μέσω του UI ή του API.
Οι χρήστες ενοικιαστή μπορούν να είναι διαχειριστές με όλα τα δικαιώματα και πρόσβαση στον Tenant, ή μπορούν να περιοριστούν σε συγκεκριμένα δικαιώματα για
τον έλεγχο σχολίων, πρόσβαση σε κλειδιά API, κλπ.
Η δομή για το αντικείμενο TenantUser είναι η ακόλουθη:

GET /api/v1/tenant-users/:id 
Αυτή η διαδρομή επιστρέφει έναν μόνο TenantUser με βάση το id.



GET /api/v1/tenant-users 
Αυτό το API χρησιμοποιεί σελιδοποίηση, που παρέχεται από την παράμετρο ερωτήματος skip. Οι TenantUsers επιστρέφονται σε σελίδες των 100, ταξινομημένοι κατά signUpDate, username και id.
Το κόστος βασίζεται στον αριθμό των χρηστών ενοικιαστή που επιστρέφονται, κοστίζοντας 1 πίστωση ανά 10 χρήστες ενοικιαστή που επιστρέφονται.



POST /api/v1/tenant-users 
Αυτή η διαδρομή παρέχει τη δυνατότητα προσθήκης ενός μόνου TenantUser.
Η δημιουργία ενός TenantUser έχει τους ακόλουθους περιορισμούς:
- Ένα
usernameείναι απαιτούμενο. - Ένα
emailείναι απαιτούμενο. - Η
signUpDateδεν μπορεί να είναι στο μέλλον. - Η
localeπρέπει να είναι στη λίστα των Υποστηριζόμενων Τοπικών Ρυθμίσεων. - Το
usernameπρέπει να είναι μοναδικό σε όλο το FastComments.com. Αν αυτό είναι πρόβλημα, προτείνουμε να χρησιμοποιήσετε SSO αντί αυτού. - Το
emailπρέπει να είναι μοναδικό σε όλο το FastComments.com. Αν αυτό είναι πρόβλημα, προτείνουμε να χρησιμοποιήσετε SSO αντί αυτού. - Δεν μπορείτε να δημιουργήσετε περισσότερους χρήστες ενοικιαστή από αυτούς που ορίζονται στο
maxTenantUsersστο πακέτο σας.
Μπορούμε να δημιουργήσουμε έναν TenantUser ως εξής



POST /api/v1/tenant-users/:id/send-login-link 
Αυτή η διαδρομή παρέχει τη δυνατότητα αποστολής συνδέσμου σύνδεσης σε έναν μόνο TenantUser.
Χρήσιμο όταν δημιουργείτε χρήστες μαζικά και δεν θέλετε να τους καθοδηγήσετε για τον τρόπο σύνδεσης στο FastComments.com. Αυτό απλά θα τους στείλει έναν "μαγικό σύνδεσμο" για σύνδεση που
λήγει μετά από 30 ημέρες.
Οι ακόλουθοι περιορισμοί υπάρχουν για την αποστολή συνδέσμου σύνδεσης σε έναν TenantUser:
- Ο
TenantUserπρέπει να υπάρχει ήδη. - Πρέπει να έχετε πρόσβαση στη διαχείριση του
Tenantστον οποίο ανήκει οTenantUser.
Μπορούμε να στείλουμε σύνδεσμο σύνδεσης σε έναν TenantUser ως εξής:

Αυτό θα στείλει ένα email όπως Ο Bob στο TenantName σας προσκαλεί να γίνετε συντονιστής...


PATCH /api/v1/tenant-users/:id 
Αυτή η διαδρομή παρέχει τη δυνατότητα ενημέρωσης ενός μόνου TenantUser.
Η ενημέρωση ενός TenantUser έχει τους ακόλουθους περιορισμούς:
- Η
signUpDateδεν μπορεί να είναι στο μέλλον. - Η
localeπρέπει να είναι στη λίστα των Υποστηριζόμενων Τοπικών Ρυθμίσεων. - Το
usernameπρέπει να είναι μοναδικό σε όλο το FastComments.com. Αν αυτό είναι πρόβλημα, προτείνουμε να χρησιμοποιήσετε SSO αντί αυτού. - Το
emailπρέπει να είναι μοναδικό σε όλο το FastComments.com. Αν αυτό είναι πρόβλημα, προτείνουμε να χρησιμοποιήσετε SSO αντί αυτού. - Δεν μπορείτε να ενημερώσετε το
tenantIdενός χρήστη.
Μπορούμε να δημιουργήσουμε έναν TenantUser ως εξής



DELETE /api/v1/tenant-users/:id 
Αυτή η διαδρομή παρέχει την αφαίρεση ενός TenantUser με βάση το id.
Η διαγραφή των σχολίων του χρήστη είναι δυνατή μέσω της παραμέτρου ερωτήματος deleteComments. Σημειώστε ότι αν αυτό είναι true:
- Όλα τα σχόλια του χρήστη θα διαγραφούν ζωντανά.
- Όλα τα θυγατρικά (τώρα ορφανά) σχόλια θα διαγραφούν ή θα ανωνυμοποιηθούν με βάση τη ρύθμιση της συσχετισμένης σελίδας κάθε σχολίου. Για παράδειγμα αν η λειτουργία διαγραφής νήματος είναι "anonymize", τότε οι απαντήσεις θα παραμείνουν, και τα σχόλια του χρήστη θα ανωνυμοποιηθούν. Αυτό ισχύει μόνο όταν το
commentDeleteModeείναιRemove(η προεπιλεγμένη τιμή). - Το
creditsCostγίνεται2.
Ανωνυμοποιημένα Σχόλια
Μπορείτε να διατηρήσετε τα σχόλια του χρήστη αλλά απλά να τα ανωνυμοποιήσετε ορίζοντας commentDeleteMode=1.
Αν τα σχόλια του χρήστη ανωνυμοποιηθούν τότε οι ακόλουθες τιμές ορίζονται σε null:
- commenterName
- commenterEmail
- avatarSrc
- userId
- anonUserId
- mentions
- badgesΤα isDeleted και isDeletedUser ορίζονται σε true.
Κατά την απόδοση, το widget σχολίων θα χρησιμοποιεί DELETED_USER_PLACEHOLDER (προεπιλογή: "[deleted]") για το όνομα του χρήστη και DELETED_CONTENT_PLACEHOLDER για το σχόλιο. Αυτά μπορούν να προσαρμοστούν μέσω του UI Προσαρμογής Widget.
Παραδείγματα



Δομή Χρήστη 
Ο User είναι ένα αντικείμενο που αντιπροσωπεύει τον πιο κοινό παρονομαστή όλων των χρηστών.
Λάβετε υπόψη ότι στο FastComments έχουμε πολλές διαφορετικές περιπτώσεις χρήσης για χρήστες:
- Secure SSO
- Simple SSO
- Χρήστες Ενοικιαστή (Για παράδειγμα: Διαχειριστές)
- Σχολιαστές
Αυτό το API είναι για Σχολιαστές και χρήστες που δημιουργήθηκαν μέσω Simple SSO. Βασικά, οποιοσδήποτε χρήστης που δημιουργήθηκε
μέσω του ιστότοπού σας μπορεί να προσπελαστεί μέσω αυτού του API. Οι Χρήστες Ενοικιαστή μπορούν επίσης να ανακτηθούν με αυτόν τον τρόπο, αλλά θα λάβετε περισσότερες πληροφορίες αλληλεπιδρώντας με το API /tenant-users/.
Για Secure SSO παρακαλώ χρησιμοποιήστε το API /sso-users/.
Δεν μπορείτε να ενημερώσετε αυτούς τους τύπους χρηστών. Δημιούργησαν τον λογαριασμό τους μέσω του ιστότοπού σας, οπότε παρέχουμε κάποια βασική πρόσβαση μόνο για ανάγνωση, αλλά
δεν μπορείτε να κάνετε αλλαγές. Αν θέλετε να έχετε αυτόν τον τύπο ροής - πρέπει να ρυθμίσετε το Secure SSO.
Η δομή για το αντικείμενο User είναι η ακόλουθη:

GET /api/v1/users/:id 
Αυτή η διαδρομή επιστρέφει έναν μόνο User με βάση το id.



Δομή Ψηφοφορίας 
Ένα αντικείμενο Vote αντιπροσωπεύει μια ψήφο που αφέθηκε από έναν χρήστη.
Η σχέση μεταξύ σχολίων και ψήφων ορίζεται μέσω του commentId.
Η δομή για το αντικείμενο Vote είναι η ακόλουθη:

GET /api/v1/votes 
Οι ψήφοι πρέπει να ανακτηθούν κατά urlId.
Τύποι Ψήφων
Υπάρχουν τρεις τύποι ψήφων:
- Επαληθευμένες Ψήφοι, που εφαρμόζονται στο αντίστοιχο σχόλιο. Μπορείτε να τις δημιουργήσετε μέσω αυτού του API.
- Επαληθευμένες Ψήφοι, που αναμένουν επαλήθευση, και επομένως δεν έχουν ακόμα εφαρμοστεί στο σχόλιο. Αυτές δημιουργούνται όταν ένας χρήστης χρησιμοποιεί τον μηχανισμό σύνδεση για ψηφοφορία του FastComments.com.
- Ανώνυμες Ψήφοι, που εφαρμόζονται στο αντίστοιχο σχόλιο. Αυτές δημιουργούνται μαζί με τα ανώνυμα σχόλια.
Αυτές επιστρέφονται σε ξεχωριστές λίστες στο API για μείωση της σύγχυσης.



Σημειώσεις Ανώνυμων Ψήφων
Σημειώστε ότι οι ανώνυμες ψήφοι που δημιουργήθηκαν μέσω αυτού του API θα εμφανιστούν στη λίστα appliedAuthorizedVotes. Θεωρούνται εξουσιοδοτημένες αφού δημιουργήθηκαν μέσω του API με κλειδί API.
Η δομή appliedAnonymousVotes είναι για ψήφους που δημιουργήθηκαν χωρίς email, κλειδί API, κλπ.
GET /api/v1/votes/for-user 
Επιτρέπει την ανάκτηση ψήφων που αφέθηκαν από έναν χρήστη σε ένα δεδομένο urlId. Δέχεται ένα userId που μπορεί να είναι οποιοσδήποτε χρήστης FastComments.com ή SSO User.
Αυτό είναι χρήσιμο αν θέλετε να δείξετε αν ένας χρήστης έχει ψηφίσει σε ένα σχόλιο. Κατά την ανάκτηση σχολίων, απλά καλέστε αυτό το API ταυτόχρονα για τον χρήστη με το
ίδιο urlId.
Αν χρησιμοποιείτε ανώνυμη ψηφοφορία τότε θα θέλετε να περάσετε το anonUserId αντί αυτού.


Σημειώστε ότι οι ανώνυμες ψήφοι θα εμφανιστούν στη λίστα appliedAuthorizedVotes. Θεωρούνται εξουσιοδοτημένες αφού δημιουργήθηκαν μέσω του API με κλειδί API.


POST /api/v1/votes 
Αυτή η διαδρομή παρέχει τη δυνατότητα προσθήκης μιας μόνου εξουσιοδοτημένης Vote. Οι ψήφοι μπορούν να είναι up (+1) ή down (-1).




Δημιουργία Ανώνυμων Ψήφων
Οι ανώνυμες ψήφοι μπορούν να δημιουργηθούν ορίζοντας το anonUserId στις παραμέτρους ερωτήματος αντί του userId.
Αυτό το id δεν χρειάζεται να αντιστοιχεί σε αντικείμενο χρήστη οπουδήποτε (εξ ου και ανώνυμο). Είναι απλά ένα αναγνωριστικό για τη συνεδρία, ώστε να μπορείτε να ανακτήσετε ψήφους ξανά στην ίδια συνεδρία, για να ελέγξετε αν ένα σχόλιο έχει ψηφιστεί.
Αν δεν έχετε κάτι σαν "ανώνυμες συνεδρίες" όπως το FastComments - μπορείτε απλά να το ορίσετε σε ένα τυχαίο ID, όπως ένα UUID (αν και εκτιμούμε μικρότερα αναγνωριστικά για εξοικονόμηση χώρου).
Άλλες Σημειώσεις
- Αυτό το API υπακούει τις ρυθμίσεις σε επίπεδο ενοικιαστή. Για παράδειγμα, αν απενεργοποιήσετε την ψηφοφορία για μια δεδομένη σελίδα, και προσπαθήσετε να δημιουργήσετε μια ψήφο μέσω του API, θα αποτύχει με κωδικό σφάλματος
voting-disabled. - Αυτό το API είναι ζωντανό από προεπιλογή.
- Αυτό το API θα ενημερώσει τα
votesτου αντίστοιχουComment.
DELETE /api/v1/votes/:id 
Αυτή η διαδρομή παρέχει τη δυνατότητα διαγραφής μιας μόνου Vote.



Σημειώσεις:
- Αυτό το API υπακούει τις ρυθμίσεις σε επίπεδο ενοικιαστή. Για παράδειγμα, αν απενεργοποιήσετε την ψηφοφορία για μια δεδομένη σελίδα, και προσπαθήσετε να δημιουργήσετε μια ψήφο μέσω του API, θα αποτύχει με κωδικό σφάλματος
voting-disabled. - Αυτό το API είναι ζωντανό από προεπιλογή.
- Αυτό το API θα ενημερώσει τα
votesτου αντίστοιχουComment.
Δομή Διαμόρφωσης Τομέα 
Ένα αντικείμενο DomainConfig αντιπροσωπεύει τη διαμόρφωση για ένα domain για έναν ενοικιαστή.
Η δομή για το αντικείμενο DomainConfig είναι η ακόλουθη:


Για Πιστοποίηση
Η Διαμόρφωση Domain χρησιμοποιείται για να καθοριστεί ποιοι ιστότοποι μπορούν να φιλοξενήσουν το widget FastComments για τον λογαριασμό σας. Αυτή είναι μια βασική μορφή πιστοποίησης, που σημαίνει ότι η προσθήκη ή αφαίρεση οποιωνδήποτε Διαμορφώσεων Domain μπορεί να επηρεάσει τη διαθεσιμότητα της εγκατάστασης FastComments σας στην παραγωγή.
Μην αφαιρείτε ή ενημερώνετε την ιδιότητα domain ενός Domain Config για ένα domain που χρησιμοποιείται αυτή τη στιγμή εκτός αν η απενεργοποίηση αυτού του domain είναι επιθυμητή.
Αυτό έχει την ίδια συμπεριφορά με την αφαίρεση ενός domain από το /auth/my-account/configure-domains.
Επίσης σημειώστε ότι η αφαίρεση ενός domain από τη διεπαφή My Domains θα αφαιρέσει οποιαδήποτε αντίστοιχη διαμόρφωση για αυτό το domain που μπορεί να έχει προστεθεί μέσω αυτής της διεπαφής.
Για Προσαρμογή Email
Ο σύνδεσμος διαγραφής εγγραφής στο υποσέλιδο του email, και η λειτουργία διαγραφής εγγραφής με ένα κλικ που προσφέρεται από πολλούς πελάτες email, μπορούν να διαμορφωθούν μέσω αυτού του API ορίζοντας τα footerUnsubscribeURL και emailHeaders, αντίστοιχα.
Για DKIM
Αφού ορίσετε τις εγγραφές DNS DKIM σας, απλά ενημερώστε το DomainConfig με τη διαμόρφωση DKIM σας χρησιμοποιώντας την καθορισμένη δομή.
GET /api/v1/domain-configs 
Αυτό το API παρέχει τη δυνατότητα ανάκτησης όλων των αντικειμένων DomainConfig για έναν ενοικιαστή.



GET /api/v1/domain-configs/:domain 
Μεμονωμένα DomainConfigs μπορούν να ανακτηθούν με βάση το αντίστοιχο domain.



POST /api/v1/domain-configs 
Αυτό το API endpoint παρέχει τη δυνατότητα δημιουργίας διαμορφώσεων domain.
Η προσθήκη διαμόρφωσης για ένα domain εξουσιοδοτεί αυτό το domain για τον λογαριασμό FastComments.
Συνήθεις περιπτώσεις χρήσης αυτού του API είναι η αρχική ρύθμιση, αν επιθυμείται η προσθήκη πολλών domains, ή προσαρμοσμένη διαμόρφωση για αποστολή emails.



PATCH /api/v1/domain-configs/:domain 
Αυτό το API endpoint παρέχει τη δυνατότητα ενημέρωσης μιας διαμόρφωσης domain καθορίζοντας μόνο το domain και το χαρακτηριστικό προς ενημέρωση.



PUT /api/v1/domain-configs/:domain 
Αυτό το API endpoint παρέχει τη δυνατότητα αντικατάστασης μιας διαμόρφωσης domain.



DELETE /api/v1/domain-configs/:domain 
Αυτή η διαδρομή παρέχει την αφαίρεση ενός μόνο DomainConfig με βάση το id.
- Σημείωση: Η αφαίρεση ενός
DomainConfigθα αφαιρέσει την εξουσιοδότηση αυτού του domain από τη χρήση του FastComments. - Σημείωση: Η επαναπροσθήκη ενός domain μέσω του UI θα αναδημιουργήσει το αντικείμενο (με μόνο το
domainσυμπληρωμένο).



Δομή Διαμόρφωσης Ερώτησης 
Το FastComments παρέχει έναν τρόπο κατασκευής ερωτήσεων και συγκέντρωσης των αποτελεσμάτων τους. Ένα παράδειγμα ερώτησης (εφεξής QuestionConfig)
μπορεί να είναι μια βαθμολογία με αστέρια, ένας ολισθητής ή μια ερώτηση NPS (καθορίζεται μέσω του type).
Τα δεδομένα ερωτήσεων μπορούν να συγκεντρωθούν μεμονωμένα, μαζί, με την πάροδο του χρόνου, συνολικά, ανά σελίδα και ούτω καθεξής.
Το πλαίσιο έχει όλες τις δυνατότητες που χρειάζονται για την κατασκευή widgets πλευράς πελάτη (με τον διακομιστή σας μπροστά από αυτό το API), πίνακες ελέγχου διαχείρισης και εργαλεία αναφοράς.
Πρώτα, πρέπει να ορίσουμε ένα QuestionConfig. Η δομή είναι η ακόλουθη:

GET /api/v1/question-configs 
Αυτή η διαδρομή επιστρέφει έως 100 αντικείμενα QuestionConfig τη φορά, με σελιδοποίηση. Το κόστος είναι 1 ανά κάθε 100 αντικείμενα. Είναι
ταξινομημένα κατά κείμενο ερώτησης αύξουσα (question πεδίο).



GET /api/v1/question-configs/:id 
Αυτή η διαδρομή επιστρέφει ένα μόνο QuestionConfig με βάση το id του.



POST /api/v1/question-configs 
Αυτό το API endpoint παρέχει τη δυνατότητα δημιουργίας ενός QuestionConfig.



PATCH /api/v1/question-configs/:id 
Αυτή η διαδρομή παρέχει τη δυνατότητα ενημέρωσης ενός μόνο QuestionConfig.
Η ακόλουθη δομή αντιπροσωπεύει όλες τις τιμές που μπορούν να αλλαχθούν:




DELETE /api/v1/question-configs/:id 
Αυτή η διαδρομή παρέχει την αφαίρεση ενός QuestionConfig με βάση το id.
Αυτό θα διαγράψει όλα τα αντίστοιχα αποτελέσματα ερωτήσεων (αλλά όχι τα σχόλια). Αυτό αποτελεί μέρος του υψηλού κόστους πιστώσεων.



Δομή Αποτελέσματος Ερώτησης 
Για να αποθηκεύσετε αποτελέσματα για ερωτήσεις, δημιουργείτε ένα QuestionResult. Μπορείτε στη συνέχεια να συγκεντρώσετε τα αποτελέσματα ερωτήσεων, και επίσης
να τα συνδέσετε με σχόλια για σκοπούς αναφοράς.

GET /api/v1/question-results 
Αυτή η διαδρομή επιστρέφει έως 1000 αντικείμενα QuestionResults τη φορά, με σελιδοποίηση. Το κόστος είναι 1 ανά κάθε 100 αντικείμενα. Είναι
ταξινομημένα κατά createdAt, αύξουσα. Μπορείτε να φιλτράρετε με διάφορες παραμέτρους.



GET /api/v1/question-results/:id 
Αυτή η διαδρομή επιστρέφει ένα μόνο QuestionResult με βάση το id του.



POST /api/v1/question-results 
Αυτό το API endpoint παρέχει τη δυνατότητα δημιουργίας ενός QuestionResult.



PATCH /api/v1/question-results/:id 
Αυτή η διαδρομή παρέχει τη δυνατότητα ενημέρωσης ενός μόνο QuestionResult.
Η ακόλουθη δομή αντιπροσωπεύει όλες τις τιμές που μπορούν να αλλαχθούν:




DELETE /api/v1/question-results/:id 
Αυτή η διαδρομή παρέχει την αφαίρεση ενός QuestionResult με βάση το id.



GET /api/v1/question-results-aggregate 
Εδώ γίνεται η συγκέντρωση των αποτελεσμάτων.
Η δομή απάντησης συγκέντρωσης είναι η ακόλουθη:

Εδώ είναι οι διαθέσιμες παράμετροι ερωτήματος για συγκέντρωση:

Εδώ είναι ένα παράδειγμα αιτήματος:

Παράδειγμα απάντησης:


Σημειώσεις Απόδοσης
- Για αστοχία προσωρινής μνήμης, οι συγκεντρώσεις γενικά χρειάζονται πέντε δευτερόλεπτα ανά εκατομμύριο αποτελέσματα.
- Διαφορετικά, τα αιτήματα είναι σταθερού χρόνου.
Σημειώσεις Προσωρινής Αποθήκευσης και Κόστους
- Όταν καθορίζεται το
forceRecalculate, το κόστος είναι πάντα10, αντί του κανονικού2. - Αν η προσωρινή μνήμη λήξει και τα δεδομένα επανυπολογιστούν, το κόστος παραμένει σταθερό
2αν δεν καθοριστεί τοforceRecalculate. Η προσωρινή μνήμη λήγει με βάση το μέγεθος του συνόλου δεδομένων που συγκεντρώνεται (μπορεί να κυμαίνεται μεταξύ 30 δευτερολέπτων και 5 λεπτών). - Αυτό γίνεται για να ενθαρρύνει τη χρήση της προσωρινής μνήμης.
GET /api/v1/question-results-aggregate/combine/comments 
Εδώ γίνεται ο συνδυασμός αποτελεσμάτων με σχόλια. Χρήσιμο για τη δημιουργία ενός γραφήματος "πρόσφατα θετικά και αρνητικά σχόλια" για ένα προϊόν, για παράδειγμα.
Μπορείτε να αναζητήσετε μέσω ενός εύρους τιμών (συμπεριλαμβανόμενων), μιας ή περισσότερων ερωτήσεων, και με αρχική ημερομηνία (συμπεριλαμβανόμενη).
Η δομή απάντησης είναι η ακόλουθη:

Εδώ είναι οι διαθέσιμες παράμετροι ερωτήματος για συγκέντρωση:

Εδώ είναι ένα παράδειγμα αιτήματος:

Παράδειγμα απάντησης:


Σημειώσεις Προσωρινής Αποθήκευσης και Κόστους
- Όταν καθορίζεται το
forceRecalculate, το κόστος είναι πάντα10, αντί του κανονικού2. - Αν η προσωρινή μνήμη λήξει και τα δεδομένα επανυπολογιστούν, το κόστος παραμένει σταθερό
2αν δεν καθοριστεί τοforceRecalculate. - Αυτό γίνεται για να ενθαρρύνει τη χρήση της προσωρινής μνήμης.
Δομή Διακριτικού Χρήστη 
Το UserBadge είναι ένα αντικείμενο που αντιπροσωπεύει ένα σήμα που έχει ανατεθεί σε έναν χρήστη στο σύστημα FastComments.
Τα σήματα μπορούν να ανατεθούν σε χρήστες αυτόματα με βάση τη δραστηριότητά τους (όπως αριθμός σχολίων, χρόνος απάντησης, κατάσταση βετεράνου) ή χειροκίνητα από τους διαχειριστές του ιστότοπου.
Η δομή για το αντικείμενο UserBadge είναι η ακόλουθη:

GET /api/v1/user-badges 
Αυτό το endpoint σας επιτρέπει να ανακτήσετε σήματα χρηστών με βάση διάφορα κριτήρια.
Παράδειγμα Αιτήματος:
Run 
Μπορείτε να προσθέσετε διάφορες παραμέτρους ερωτήματος για να φιλτράρετε τα αποτελέσματα:
userId- Λήψη σημάτων για συγκεκριμένο χρήστηbadgeId- Λήψη περιπτώσεων συγκεκριμένου σήματοςtype- Φιλτράρισμα κατά τύπο σήματος (0=CommentCount, 1=CommentUpVotes, 2=CommentReplies, κλπ. Δείτε τη δομή UserBadge για πλήρη λίστα)displayedOnComments- Φιλτράρισμα κατά το αν το σήμα εμφανίζεται στα σχόλια (true/false)limit- Μέγιστος αριθμός σημάτων που θα επιστραφούν (προεπιλογή 30, μέγιστο 200)skip- Αριθμός σημάτων που θα παραλειφθούν (για σελιδοποίηση)
Παράδειγμα Απάντησης:

Πιθανές Απαντήσεις Σφάλματος:


GET /api/v1/user-badges/:id 
Αυτό το endpoint σας επιτρέπει να ανακτήσετε ένα συγκεκριμένο σήμα χρήστη με το μοναδικό του ID.
Παράδειγμα Αιτήματος:
Run 
Παράδειγμα Απάντησης:

Πιθανές Απαντήσεις Σφάλματος:


POST /api/v1/user-badges 
Αυτό το endpoint σας επιτρέπει να δημιουργήσετε μια νέα ανάθεση σήματος χρήστη.
Παράδειγμα Αιτήματος:
Run 
Το σώμα του αιτήματος πρέπει να περιέχει τις ακόλουθες παραμέτρους:
userId(απαιτούμενο) - Το ID του χρήστη στον οποίο θα ανατεθεί το σήμαbadgeId(απαιτούμενο) - Το ID του σήματος που θα ανατεθείdisplayedOnComments(προαιρετικό) - Αν το σήμα θα πρέπει να εμφανίζεται στα σχόλια του χρήστη (προεπιλογή true)
Σημαντικές Σημειώσεις:
- Το σήμα πρέπει να υπάρχει και να είναι ενεργοποιημένο στον κατάλογο σημάτων του ενοικιαστή σας
- Μπορείτε να αναθέσετε σήματα μόνο σε χρήστες που ανήκουν στον ενοικιαστή σας ή έχουν σχολιάσει στον ιστότοπό σας
Παράδειγμα Απάντησης:

Πιθανές Απαντήσεις Σφάλματος:





PUT /api/v1/user-badges/:id 
Αυτό το endpoint σας επιτρέπει να ενημερώσετε μια ανάθεση σήματος χρήστη.
Αυτή τη στιγμή, η μόνη ιδιότητα που μπορεί να ενημερωθεί είναι το displayedOnComments, το οποίο ελέγχει αν το σήμα εμφανίζεται στα σχόλια του χρήστη.
Παράδειγμα Αιτήματος:
Run 
Παράδειγμα Απάντησης:

Πιθανές Απαντήσεις Σφάλματος:



DELETE /api/v1/user-badges/:id 
Αυτό το endpoint σας επιτρέπει να διαγράψετε μια ανάθεση σήματος χρήστη.
Παράδειγμα Αιτήματος:
Run 
Παράδειγμα Απάντησης:

Πιθανές Απαντήσεις Σφάλματος:



Δομή Προόδου Διακριτικού Χρήστη 
Το UserBadgeProgress είναι ένα αντικείμενο που αντιπροσωπεύει την πρόοδο ενός χρήστη προς την απόκτηση διαφόρων σημάτων στο σύστημα FastComments.
Αυτή η παρακολούθηση βοηθά να καθοριστεί πότε οι χρήστες πρέπει να λάβουν αυτόματα σήματα με βάση τη δραστηριότητά τους και τη συμμετοχή τους στην κοινότητά σας.
Η δομή για το αντικείμενο UserBadgeProgress είναι η ακόλουθη:

GET /api/v1/user-badge-progress 
Αυτό το endpoint σας επιτρέπει να ανακτήσετε εγγραφές προόδου σημάτων χρηστών με βάση διάφορα κριτήρια.
Παράδειγμα Αιτήματος:
Run 
Μπορείτε να προσθέσετε διάφορες παραμέτρους ερωτήματος για να φιλτράρετε τα αποτελέσματα:
userId- Λήψη προόδου για συγκεκριμένο χρήστηlimit- Μέγιστος αριθμός εγγραφών που θα επιστραφούν (προεπιλογή 30, μέγιστο 200)skip- Αριθμός εγγραφών που θα παραλειφθούν (για σελιδοποίηση)
Παράδειγμα Απάντησης:

Πιθανές Απαντήσεις Σφάλματος:


GET /api/v1/user-badge-progress/:id 
Αυτό το endpoint σας επιτρέπει να ανακτήσετε μια συγκεκριμένη εγγραφή προόδου σήματος χρήστη με το μοναδικό της ID.
Παράδειγμα Αιτήματος:
Run 
Παράδειγμα Απάντησης:

Πιθανές Απαντήσεις Σφάλματος:


GET /api/v1/user-badge-progress/user/:userId 
Αυτό το endpoint σας επιτρέπει να ανακτήσετε την εγγραφή προόδου σήματος ενός χρήστη με το user ID του.
Παράδειγμα Αιτήματος:
Run 
Παράδειγμα Απάντησης:

Πιθανές Απαντήσεις Σφάλματος:



Συμπερασματικά
Ελπίζουμε ότι βρήκατε την τεκμηρίωση του API μας εκτενή και εύκολη στην κατανόηση. Αν βρείτε τυχόν κενά, ενημερώστε μας παρακάτω.