
Dil 🇹🇷 Türkçe
API Kaynakları
Toplamalar
Denetim Kayıtları
Yorumlar
E-posta Şablonları
Hashtag'ler
Moderatörler
Bildirim Sayısı
Bildirimler
Sayfalar
Bekleyen Webhook Olayları
SSO Kullanıcıları
Abonelikler
Kiracı Günlük Kullanımı
Kiracılar
Kiracı Paketleri
Kiracı Kullanıcıları
Kullanıcılar
Oylar
Alan Adı Yapılandırmaları
Soru Yapılandırmaları
Soru Sonuçları
Soru Sonuçları Toplaması
Kullanıcı Rozetleri
Kullanıcı Rozet İlerlemesi
FastComments API
FastComments, birçok kaynakla etkileşim kurmak için bir API sağlar. Platformumuzla entegrasyonlar oluşturun veya kendi istemcilerinizi dahi yazın!
Bu dokümantasyonda, API tarafından desteklenen tüm kaynakları ve bunların istek ve yanıt tiplerini bulacaksınız.
Kurumsal (Enterprise) müşteriler için, tüm API erişimleri Denetim Günlüğü'ne (Audit Log) kaydedilir.
Oluşturulan SDK'lar
FastComments artık kodumuzdan bir API Spec üretiyor (bu henüz tamamlanmadı, ancak birçok API'yi içeriyor).
Ayrıca popüler diller için SDK'larımız da mevcut:
- fastcomments-cpp
- fastcomments-go
- fastcomments-java
- fastcomments-sdk-js
- fastcomments-nim
- fastcomments-php
- fastcomments-php-sso
- fastcomments-python
- fastcomments-ruby
- fastcomments-rust
- fastcomments-swift
Kimlik Doğrulama
API, api key değerini ya X-API-KEY başlığı olarak ya da API_KEY sorgu parametresi olarak ileyerek kimlik doğrulaması yapar. API çağrıları yapmak için ayrıca tenantId değerine de ihtiyacınız olacaktır. Bu değer, api key ile aynı sayfadan alınabilir.
Güvenlik Notu
Bu yolların bir sunucudan çağrılması amaçlanmıştır. YAPMAYIN bunları bir tarayıcıdan çağırmayın. Bunu yapmak API key'inizi açığa çıkarır - bir sayfanın kaynak kodunu görebilen herkese hesabınıza tam erişim sağlar!
Kimlik Doğrulama Seçeneği Bir - Başlıklar
- Başlık:
X-API-KEY - Başlık:
X-TENANT-ID
Kimlik Doğrulama Seçeneği İki - Sorgu Parametreleri
- Sorgu Parametresi:
API_KEY - Sorgu Parametresi:
tenantId
API Kaynakları 
Kaynak Kullanımı
API'den veri getirilmesinin hesabınızda kullanım olarak sayıldığını belirtmek gerekir.
Her kaynak, o kullanımın ne olduğunu kendi bölümünde listeleyecektir.
Bazı kaynakların sunulması diğerlerinden daha pahalıya mal olur. Her uç noktanın API çağrısı başına belirlenmiş kredi maliyeti vardır. Bazı uç noktalar için kredi sayısı, seçeneklere ve yanıt boyutlarına bağlı olarak değişir.
API kullanımını Faturalama Analitiği sayfasından kontrol edebilir ve birkaç dakikada bir güncellendiğini görebilirsiniz.
Not!
Yorum API'sinde urlId için hangi değerlerin iletileceğine karar verirken karışıklığı azaltmak için Pages dokümantasyonunu önce okumanızı öneririz.
Verilerinizi Toplayın 
Bu API, belgeleri (groupBy sağlanmışsa) gruplayarak ve birden fazla işlem uygulayarak toplar (aggregate eder). Farklı işlemler (ör. sum, countDistinct, avg, vb.) desteklenir.
Maliyet değişkendir. Taranan her 500 nesne 1 API kredisi tutar.
Varsayılan olarak her API çağrısı için izin verilen maksimum bellek kullanımı 64MB'dir ve varsayılan olarak aynı anda yalnızca bir toplama işlemi çalıştırabilirsiniz. Eğer birden fazla toplama işlemini aynı anda gönderirseniz, bunlar sıraya alınır ve gönderildikleri sırayla çalıştırılır. Beklemede olan toplama işlemleri en fazla 60 saniye bekler; bundan sonra istek zaman aşımına uğrar. Bireysel toplama işlemleri en fazla 5 dakika çalışabilir.
Yönetilen kiracılarınız varsa, parentTenantId sorgu parametresini geçirerek tüm alt kiracı kaynaklarını tek bir çağrıda toplayabilirsiniz.
Örnekler
Örnek: Benzersiz Değerleri Sayma


Örnek: Farklı Değerleri Sayma

Yanıt:

Örnek: Birden Fazla Alanın Değerlerini Toplama

Yanıt:

Örnek: Birden Fazla Alanın Ortalama Değerleri

Yanıt:

Örnek: Birden Fazla Alanın Min/Max Değerleri

Yanıt:

Örnek: Birden Fazla Alanın Benzersiz Değerlerini Sayma

Yanıt:

Örnek: Sorgu Oluşturma

Yanıt:

Örnek: İnceleme Bekleyen Yorumları Sayma

Yanıt:

Örnek: Onaylanmış, İncelenmiş ve Spam Yorumların Dağılımı

Yanıt:

Yapılar


Aşağıdaki kaynaklar üzerinde toplama yapılabilir:
- 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 Yapısı 
Bir AuditLog, bu özelliğe erişimi olan kiracılar için denetlenmiş bir olayı temsil eden bir nesnedir.
AuditLog nesnesinin yapısı aşağıdaki gibidir:

Denetim günlüğü değiştirilemez. Ayrıca elle yazılamaz. FastComments.com yalnızca denetim günlüğüne ne zaman yazılacağına karar verebilir. Ancak bu API aracılığıyla ondan okuyabilirsiniz.
Denetim günlüğündeki olayların geçerliliği iki yıl sonra sona erer.
GET /api/v1/audit-logs 
Bu API, skip, before ve after parametreleriyle sağlanan sayfalandırmayı kullanır. AuditLogs, 1000 öğelik sayfalar halinde, when ve id sırasına göre döndürülür.
Her 1000 logu almak kredi maliyeti 10'dur.
Varsayılan olarak, size en yeni öğeler ilk olacak şekilde bir liste verilir. Bu şekilde, skip=0 ile başlayıp, tükettiğiniz son kaydı bulana kadar sayfalandırma yapabilirsiniz.
Alternatif olarak, en eski ilk olacak şekilde sıralayabilir ve kayıt kalmayana kadar sayfalandırabilirsiniz.
Sıralama, order'ı ASC veya DESC olarak ayarlayarak yapılabilir. Varsayılan ASC'dir.
Tarihe göre sorgulama, before ve after'ı milisaniye içeren zaman damgaları olarak kullanarak mümkündür. before ve after dahil değildir.



Yorum Yapısı 
A Comment object represents a comment left by a user.
The relationship between parent and child comments is defined via parentId.
The structure for the Comment object is as follows:

Some of these fields are marked READONLY - these are returned by the API but cannot be set.
Comment Text Structure
Comments are written in a FastComments flavor of markdown, which is just markdown plus traditional bbcode style tags for images, like [img]path[/img].
Text is stored in two fields. The text the user entered is stored unmodified in the comment field. This is rendered and stored in the commentHTML field.
The allowed HTML tags are b, u, i, strike, pre, span, code, img, a, strong, ul, ol, li, and br.
It's recommended to render the HTML, since it is a very small subset of HTML, building a renderer is pretty straightforward. There are multiple libraries for React Native and Flutter, for instance, to help with this
You may choose to render the un-normalized value of the comment field. An example parser is here..
The example parser could also be adjusted to work with HTML, and transform the HTML tags into expected elements to render for your platform.
Tagging
When users are tagged in a comment, the information is stored in a list called mentions. Each object in that list
has the following structure.
Run 
HashTags
When hashtags are used and successfully parsed, the information is stored in a list called hashTags. Each object in that list
has the following structure. Hashtags can also be manually added to the comment hashTags array for querying, if retain is set.
Run 
GET /api/v1/comments 
Bu API, bir kullanıcıya gösterim için yorumları almak amacıyla kullanılır. Örneğin, onaylanmamış veya spam yorumları otomatik olarak filtreler.
Sayfalama
Sayfalama, performans gereksinimlerine ve kullanım durumuna bağlı olarak iki yoldan biriyle yapılabilir:
- En Hızlı: Önceden Hesaplanmış Sayfalama:
- Bu, önceden oluşturulmuş widget'larımızı ve istemcilerimizi kullandığınızda FastComments'in nasıl çalıştığıdır.
- "İleri"ye tıklamak yalnızca sayfa sayısını artırır.
- Bunu bir anahtar-değer deposundan getiriliyormuş gibi düşünebilirsiniz.
- Bu şekilde,
pageparametresini0'dan başlayarak ve bir sıralama yönünüdirectionolarak tanımlamanız yeterlidir. - Sayfa boyutları özelleştirme kurallarıyla ayarlanabilir.
- En Esnek: Esnek Sayfalama:
- Bu şekilde özel
limitveskipparametreleri tanımlayabilirsiniz.pagegöndermeyin. directionsıralama yönü de desteklenir.limit,skipuygulandıktan sonra döndürülecek toplam sayıdır.- Örnek:
sayfa boyutu = 100vepage = 2olduğundaskip = 200, limit = 100olarak ayarlayın.
- Örnek:
- Alt yorumlar (child) yine sayfalama içinde sayılır. Bunu
asTreeseçeneğini kullanarak aşabilirsiniz.- Alt yorumları
limitChildrenveskipChildrenile sayfalandırabilirsiniz. - Döndürülecek konuların derinliğini
maxTreeDepthile sınırlayabilirsiniz.
- Alt yorumları
- Bu şekilde özel
Konular (Threads)
Önceden Hesaplanmış Sayfalamakullanıldığında, yorumlar sayfa bazında gruplanır ve konulardaki yorumlar genel sayfayı etkiler.- Bu şekilde, konular
parentId'ye göre istemci tarafında belirlenebilir. - Örneğin; bir sayfada bir üst düzey yorum ve 29 cevap varsa ve API'de
page=0ayarlanmışsa — sadece üst düzey yorumu ve 29 çocuğu alırsınız. - Çoklu sayfaları gösteren örnek resim burada.
- Bu şekilde, konular
Esnek Sayfalamakullanıldığında, birparentIdparametresi tanımlayabilirsiniz.- Sadece üst düzey yorumları almak için bunu null olarak ayarlayın.
- Konuları görüntülemek için API'yi tekrar çağırın ve
parentIdgönderin. - Yaygın bir çözüm, üst düzey yorumlar için bir API çağrısı yapmak ve ardından her yorumun çocuk yorumlarını almak için paralel API çağrıları yapmaktır.
- YENİ Şubat 2023 itibarıyla!
&asTree=truekullanarak ağaç olarak getirin.- Bunu
Ağaç Olarak Esnek Sayfalamaolarak düşünebilirsiniz. - Sadece üst düzey yorumlar sayfalamada sayılır.
- Ağacı kökten başlatmak için
parentId=nullayarlayın (bu parametreyi ayarlamanız gerekir). - Sayfalama için
skipvelimitayarlayın. asTreedeğerinitrueyapın.- Bu senaryoda, altyapımızın daha fazla işlem yapması gerektiği için kredi maliyeti
2xartar. - İstediğiniz şekilde
maxTreeDepth,limitChildrenveskipChildrenayarlayın.
- Bunu
Ağaçlar Açıklaması
asTree kullanıldığında, sayfalama hakkında akıl yürütmek zor olabilir. İşte faydalı bir görsel:
Yorumları Bir Kullanıcı Bağlamında Getirme
/comments API'si, farklı kullanım durumları için iki bağlamda kullanılabilir:
- Kendi istemcinizi oluşturmak için sıralanmış ve bilgi ile etiketlenmiş yorumları döndürmek için.
- Bu durumda, bir
contextUserIdsorgu parametresi tanımlayın.
- Bu durumda, bir
- Özel entegrasyonlar için backend'inizden yorumları almak için.
- Platform,
contextUserIdolmadan buna varsayılan davranır.
- Platform,




Yorumları Ağaç Olarak Alma
Yorumların, sayfalama yalnızca üst düzey yorumları sayacak şekilde ağaç olarak dönmesi mümkündür.

Sadece üst düzey yorumları ve bunların hemen çocuklarını mı almak istiyorsunuz? İşte bir yol:

Ancak, UI'nizde her yorumda bir "cevapları göster" düğümü gösterip göstermeyeceğinizi bilmeniz gerekebilir. Yorumları ağaç olarak alırken, ilgili olduğunda yorumlara eklenen hasChildren özelliği vardır.
Etiket (Hash Tag) ile Ağaç Olarak Yorum Alma
API ile tüm kiracı (tenant) kapsamında (tek bir sayfa veya urlId ile sınırlı olmadan) etiket ile arama yapmak mümkündür.
Bu örnekte urlId'yi atlıyoruz ve birden fazla etiket ile arama yapıyoruz. API yalnızca istenen tüm etiketlere sahip yorumları döndürecektir.

Tüm İstek Parametreleri

Yanıt

Faydalı İpuçları
URL ID
Muhtemelen urlId parametresiyle Comment API'sini kullanmak isteyeceksiniz. Hangi urlId değerlerinin size sunulduğunu görmek için önce Pages API'sini çağırabilirsiniz.
Anonim İşlemler
Anonim yorum için muhtemelen yorumları alırken ve bayraklama (flagging) ve engelleme (blocking) işlemlerini yaparken anonUserId göndermek isteyeceksiniz.
(!) Bu, birçok uygulama mağazası için gereklidir çünkü kullanıcılar giriş yapmamış olsalar bile görebildikleri kullanıcı tarafından oluşturulmuş içeriği işaretleyebilmelidir. Bunu yapmamak uygulamanızın ilgili mağazadan kaldırılmasına neden olabilir.
Yorumlar Döndürülmüyor
Yorumlarınızın onaylandığını ve spam olmadığını kontrol edin.
GET /api/v1/comments/:id 
Bu API, bir yorumu id ile almanızı sağlar.



POST /api/v1/comments 
Bu API uç noktası yorum oluşturma yeteneği sağlar.
Yaygın kullanım durumları özel kullanıcı arayüzleri, entegrasyonlar veya içe aktarımlardır.
Notlar:
- Bu API, istenirse yorum widget'ını "canlı" olarak güncelleyebilir (bu,
creditsCost'u1'den2'ye çıkarır). - E-posta sağlanırsa bu API sistemimizde otomatik olarak kullanıcı nesneleri oluşturur.
- Farklı e-postalara sahip iki yorumu, fakat aynı kullanıcı adıyla kaydetmeye çalışmak, ikinci yorum için bir hata ile sonuçlanır.
- Eğer
parentIdbelirtiyorsanız ve bir alt yorumunnotificationSentForParentdeğeri false ise, ebeveyn yorum için bildirimler göndereceğiz. Bu her saat yapılır (gönderilen e-posta sayısını azaltmak için bildirimleri toplu olarak gönderiyoruz). - Kullanıcı oluşturulurken karşılama e-postaları veya yorum doğrulama e-postaları göndermek istiyorsanız, sorgu parametrelerinde
sendEmailsdeğerinitrueolarak ayarlayın. - Bu API aracılığıyla oluşturulan yorumlar yönetici uygulamasının Analytics ve Moderation sayfalarında görünecektir.
- Ayar açık ise, "bad words" yorumcu isimlerinde ve yorum metninde hâlâ maskelenir.
- Bu API ile oluşturulan yorumlar istenirse yine de spam için kontrol edilebilir.
- Özelleştirme Kuralı yönetici sayfası aracılığıyla yapılandırıldıysa, maksimum yorum uzunluğu gibi yapılandırmalar burada uygulanır.
Yorum widget'ında görüntülenecek şekilde göndermek için gereken minimum veriler aşağıdaki gibidir:

Daha gerçekçi bir istek şöyle görünebilir:



PATCH /api/v1/comments/:id 
Bu API uç noktası tek bir yorumu güncelleme yeteneği sağlar.
Notlar:
- Bu API, istenirse yorum widget'ını "canlı" olarak güncelleyebilir (bu, temel
creditsCostdeğerini1'den2'ye yükseltir).- Bu, yorumları sayfalar arasında "canlı" olarak taşımayı sağlayabilir (
urlId'yi değiştirmek). - Taşımalar, sayfalar önceden hesaplandığı ve bu CPU yoğun olduğu için ek
2kredi maliyeti getirir.
- Bu, yorumları sayfalar arasında "canlı" olarak taşımayı sağlayabilir (
- Oluşturma API'sinin aksine, bu API e-posta sağlanmış olsa bile sistemimizde kullanıcı nesnelerini OTOMATİK olarak oluşturmaz.
- Bu API aracılığıyla güncellenen yorumlar istenirse yine de spam için kontrol edilebilir.
- Özelleştirme Kuralı yönetici sayfası aracılığıyla yapılandırılmışsa maksimum yorum uzunluğu gibi yapılandırmalar burada uygulanır.
- Kullanıcıların yorum metinlerini güncellemelerine izin vermek için istek gövdesinde yalnızca
comment'i belirtebilirsiniz. Ortaya çıkacakcommentHTML'i biz oluşturacağız.- Hem
commenthem decommentHTMLbelirlerseniz HTML'i otomatik olarak oluşturmayacağız. - Kullanıcı yeni metnine bahsetmeler veya hashtag'ler eklerse, bu yine
POSTAPI'si gibi işlenecektir.
- Hem
- Bir yorumda
commenterEmailgüncellenirken,userId'yi de belirtmek en iyisidir. Aksi takdirde, bu e-postaya sahip kullanıcının kiracınıza ait olduğundan emin olmanız gerekir; aksi halde istek başarısız olur.



DELETE /api/v1/comments/:id 
Bu API uç noktası bir yorumu silme yeteneği sağlar.
Notlar:
- İstenirse bu API yorum bileşenini "live" olarak güncelleyebilir (bu,
creditsCostdeğerini1'den2'ye çıkarır). - Bu API tüm alt yorumları siler.



POST /api/v1/comments/:id/flag 
Bu API uç noktası, belirli bir kullanıcı için bir yorumu işaretleme (flag) yeteneği sağlar.
Notes:
- Bu çağrı her zaman bir kullanıcı bağlamında yapılmalıdır. Kullanıcı FastComments.com Kullanıcısı, SSO Kullanıcısı veya Tenant Kullanıcısı olabilir.
- Eğer bir flag-to-hide eşiği ayarlanmışsa, yorum tanımlanan sayıda işaretlendikten sonra canlı olarak otomatik gizlenecektir.
- Otomatik olarak onayı kaldırıldıktan (gizlendikten) sonra - yorum yalnızca bir yönetici veya moderatör tarafından yeniden onaylanabilir. İşaretin kaldırılması yorumu yeniden onaylamaz.

Anonim işaretleme için bir anonUserId belirtmemiz gerekir. Bu, anonim oturumu temsil eden bir kimlik veya rastgele bir UUID olabilir. Bu, bir kullanıcı giriş yapmamış olsa bile yorumları işaretleme ve işaret kaldırmayı desteklememizi sağlar. Bu şekilde, aynı anonUserId ile yorumlar alındığında yorum işaretlenmiş olarak işaretlenebilir.



POST /api/v1/comments/:id/un-flag 
Bu API uç noktası, belirli bir kullanıcı için bir yorumun bayrağını kaldırma yeteneği sağlar.
Notlar:
- Bu çağrı her zaman bir kullanıcı bağlamında yapılmalıdır. Kullanıcı, FastComments.com Kullanıcısı, SSO Kullanıcısı veya Kiracı (Tenant) Kullanıcısı olabilir.
- Bir yorum otomatik olarak onaydan çıkarıldıktan (gizlendikten) sonra — yorum yalnızca bir yönetici veya moderatör tarafından yeniden onaylanabilir. Bayrağın kaldırılması yorumu yeniden onaylamaz.

Anonim bayraklama için bir anonUserId belirtmeliyiz. Bu, anonim oturumu temsil eden bir kimlik olabilir veya rastgele bir UUID olabilir.



POST /api/v1/comments/:id/block 
Bu API uç noktası, belirli bir yorumu yazan kullanıcıyı engelleme yeteneği sağlar. FastComments.com Kullanıcıları, SSO Kullanıcıları ve Tenant Kullanıcıları tarafından yazılan yorumlardan engellemeyi destekler.
Ayrıca, bu işlem gerçekleştirildikten sonra istemcide potansiyel olarak görünür başka hangi yorumların engellenmesi/engeli kaldırılması gerektiğini kontrol etmek için bir commentIdsToCheck gövde parametresini destekler.
Notlar:
- Bu çağrı her zaman bir kullanıcı bağlamında yapılmalıdır. Kullanıcı FastComments.com Kullanıcısı, SSO Kullanıcısı veya Tenant Kullanıcısı olabilir.
- İstek içindeki
userId, engelleme işlemini yapan kullanıcıdır. Örneğin:User A,User B'yi Engellemek istiyor.userId=User AveUser Bnin yazdığı yorum kimliğini gönderin. - Tamamen anonim yorumlar (kullanıcı kimliği yok, e‑posta yok) engellenemez ve bir hata döndürülecektir.

Anonim engelleme için bir anonUserId belirtmeliyiz. Bu, anonim oturumu temsil eden bir kimlik veya rastgele bir UUID olabilir.
Bu, bir kullanıcı oturum açmamış olsa bile aynı anonUserId ile yorumlar alınarak yorumları engellemeyi desteklememizi sağlar.



POST /api/v1/comments/:id/un-block 
Bu API uç noktası, belirli bir yorumu yazmış bir kullanıcının engellemesini kaldırma yeteneği sağlar. FastComments.com Users, SSO Users, and Tenant Users tarafından yazılmış yorumların engellemesini kaldırmayı destekler.
Bu işlem gerçekleştirildikten sonra istemcideki diğer potansiyel olarak görünür yorumların engellenip/engellenmeyeceğini kontrol etmek için commentIdsToCheck gövde parametresini destekler.
Notlar:
- Bu çağrı her zaman bir kullanıcı bağlamında yapılmalıdır. Kullanıcı FastComments.com User, SSO User, veya Tenant User olabilir.
- İstek içindeki
userId, engelleme kaldırma işlemini yapan kullanıcıdır. Örneğin:User AUser B'nin engellemesini kaldırmak istiyor.userId=User AveUser Btarafından yazılan yorumun id'sini gönderin. - Tamamen anonim yorumlar (kullanıcı kimliği yok, e-posta yok) engellenemez ve bir hata döndürülecektir.




E-posta Şablonu Yapısı 
Bir EmailTemplate nesnesi, bir kiracı için özel bir e-posta şablonunun yapılandırmasını temsil eder.
Sistem, kullanılacak e-posta şablonunu şu yolla seçer:
- Türünü belirten tanımlayıcı, buna
emailTemplateIddiyoruz. Bunlar sabittir. domain. İlgili nesnenin (ör. birComment) bağlı olduğu domain için önce bir şablon bulmaya çalışacağız; eşleşme bulunmazsa domain'in null veya*olduğu bir şablon arayacağız.
EmailTemplate nesnesinin yapısı aşağıdaki gibidir:

Notlar
- Geçerli
emailTemplateIddeğerlerini/definitionsuç noktasından alabilirsiniz. /definitionsuç noktası ayrıca varsayılan çevirileri ve test verilerini içerir.- Geçersiz yapı veya test verileri durumunda şablonlar kaydedilemez.
GET /api/v1/email-templates/:id 
Bireysel EmailTemplates, karşılık gelen id ile alınabilir (NOT emailTemplateId).



GET /api/v1/email-templates 
Bu API, page sorgu parametresiyle sağlanan sayfalandırma kullanır. EmailTemplate'ler, createdAt sonra id sırasına göre, her sayfada 100 öğe olacak şekilde döndürülür.



PATCH /api/v1/email-templates/:id 
Bu API uç noktası, yalnızca id'yi ve güncellenecek özellikleri belirterek bir e-posta şablonunu güncelleme olanağı sağlar.
Bir şablon oluştururken uygulanan aynı doğrulamalar da geçerlidir, örneğin:
- Şablonun render olması gerekir. Bu, her güncellemede kontrol edilir.
- Aynı alan adı için çoğaltılmış şablonlara sahip olamazsınız (aksi takdirde biri sessizce yoksayılır).



POST /api/v1/email-templates 
Bu API uç noktası e-posta şablonları oluşturma olanağı sağlar.
Notlar:
- Aynı domain ile aynı
emailTemplateId'ye sahip birden fazla şablon olamaz. - Ancak bir joker şablon (
domain=*) ile aynıemailTemplateIdiçin alan adı özel bir şablon birlikte bulunabilir. domainbelirtmek yalnızca farklı alan adlarınız varsa veya test için belirli şablonlar kullanmak istiyorsanız önemlidir (domainset tolocalhostetc).domainbelirtirseniz, bunun birDomainConfigile eşleşmesi gerekir. Hata durumunda geçerli alan adlarının bir listesi sağlanır.- Şablon sözdizimi EJS'tir ve 500ms zaman aşımı ile render edilir. Render süresi için P99 <5ms'dir, bu nedenle 500ms'ye ulaşıyorsanız bir sorun var demektir.
- Kaydetmek için şablonunuz verilen
testDataile render olmalıdır. Render hataları birleştirilir ve kontrol panelinde raporlanır (yakında API üzerinden de kullanılabilir).
Bir şablon eklemek için gereken minimum veriler aşağıdaki gibidir:

Site başına şablonlar isteyebilirsiniz; bu durumda domain tanımlarsınız:



POST /api/v1/email-templates/render 
Bu API uç noktası e-posta şablonlarını önizleme olanağı sağlar.



DELETE /api/v1/email-templates/:id 
Bu rota, bir EmailTemplate'in id ile kaldırılmasını sağlar.



Hashtag Yapısı 
Bir HashTag nesnesi, bir kullanıcı tarafından bırakılabilecek bir etiketi temsil eder. HashTags harici bir içeriğe bağlamak veya ilişkili yorumları birbirine bağlamak için kullanılabilir.
HashTag nesnesinin yapısı aşağıdaki gibidir:

Notlar:
- Bazı API uç noktalarında hashtag'in URL içinde kullanıldığını göreceksiniz. Değerleri URI ile kodlamayı unutmayın. Örneğin,
#yerine%23olarak temsil edilmelidir. - Bu alanların bazıları
READONLYolarak işaretlenmiştir - bunlar API tarafından döndürülür ancak ayarlanamaz.
GET /api/v1/hash-tags 
Bu API, page sorgu parametresi ile sağlanan sayfalama kullanır. HashTag'ler tage göre sıralanmış şekilde, 100 öğelik sayfalar halinde döndürülür.



PATCH /api/v1/hash-tags/:tag 
Bu rota tek bir HashTag'ı güncelleme olanağı sağlar.



POST /api/v1/hash-tags 
Bu rota tek bir HashTag ekleme yeteneği sağlar.



POST /api/v1/hash-tags/bulk 
Bu yol aynı anda en fazla 100 HashTag nesnesi ekleme yeteneği sağlar.



DELETE /api/v1/hash-tags/:tag 
Bu rota, sağlanan etiket ile bir HashTag kullanıcısının kaldırılmasını sağlar.
Otomatik HashTag oluşturma devre dışı bırakılmadığı sürece, kullanıcılar yorum yaparken hashtag'i sağlayarak hashtag'leri yeniden oluşturabilir.



Moderatör Yapısı 
Bir Moderator object represents configuration for a moderator.
There are three types of moderators:
isCommentModeratorAdminbayrağına sahip yönetici kullanıcılar.isCommentModeratorAdminbayrağına sahip SSO kullanıcıları.- Moderatör olarak davet edilen normal yorumcular veya FastComments.com kullanıcıları.
The Moderator structure is used to represent the Moderation State of use case 3.
If you want to invite a user to be a moderator, via the API, use the Moderator API by creating a Moderator and inviting them.
If the user does not have a FastComments.com account, the invite email will help them get setup. If they already have an account, they will
be given moderation access to your tenant and the Moderator object's userId will be updated to point to their user. You will not have API
access to their user, as in this case it belongs to themselves and managed by FastComments.com.
If you require complete management of the user's account, we recommend either using SSO, or adding them as a Tenant Kullanıcısı and
then adding a Moderator object to track their stats.
The Moderator structure can be used as a stat tracking mechanism for use cases 1 and 2. After creating the user, add a Moderator
object with their userId defined and their stats will be tracked on the Yorum Moderatörleri Sayfası.
The structure for the Moderator object is as follows:

GET /api/v1/moderators/:id 
Bu rota belirtilen id'ye sahip tek bir moderatörü döndürür.



GET /api/v1/moderators 
Bu API, skip sorgu parametresi tarafından sağlanan sayfalandırmayı kullanır. Moderators, createdAt ve id'ye göre sıralanmış olarak 100lük sayfalar halinde döndürülür.
Maliyet, döndürülen moderatör sayısına göre belirlenir; döndürülen moderatörler için maliyet 1 credit per 10'dur.



PATCH /api/v1/moderators/:id 
Bu API uç noktası, bir Moderator'ı id ile güncelleme olanağı sağlar.
Bir Moderator'ın güncellenmesi aşağıdaki kısıtlamalara tabidir:
- Bir
Moderatorgüncellenirken, aşağıdaki değerler sağlanamaz:acceptedInvitemarkReviewedCountdeletedCountmarkedSpamCountapprovedCounteditedCountbannedCountverificationIdcreatedAt
- Bir
userIdbelirtildiğinde, o kullanıcı mevcut olmalıdır. - Bir
userIdbelirtildiğinde, sorgu parametrelerinde belirtilen aynıtenantId'e ait olmalıdırlar. - Aynı tenant içinde iki moderator aynı
emailile eklenemez. - Bir
Moderatorile ilişkilitenantId'yi değiştiremezsiniz.



POST /api/v1/moderators 
Bu rota tek bir Moderator ekleme yeteneği sağlar.
Bir Moderator oluşturmanın aşağıdaki kısıtlamaları vardır:
- Bir
nameveemailher zaman sağlanmalıdır. BiruserIdisteğe bağlıdır. - Aşağıdaki değerler
Moderatoroluşturulurken sağlanamaz:acceptedInvitemarkReviewedCountdeletedCountmarkedSpamCountapprovedCounteditedCountbannedCountverificationIdcreatedAt
- Bir
userIdbelirtildiğinde, o kullanıcı mevcut olmalıdır. - Bir
userIdbelirtildiğinde, sorgu parametrelerinde belirtilen aynıtenantId'ye ait olmalıdır. - Aynı tenant içindeki iki moderatör aynı
emailile eklenemez.
Sadece e-postasını bildiğimiz bir kullanıcı için bir Moderator oluşturabiliriz:

Veya moderasyon istatistiklerini takip etmek için tenant'ımıza ait bir kullanıcı için bir Moderator oluşturabiliriz:



POST /api/v1/moderators/:id/send-invite 
Bu rota tek bir Moderator davet etme imkânı sağlar.
Bir Moderator'a davet e-postası göndermek için aşağıdaki kısıtlamalar vardır:
Moderatorzaten mevcut olmalıdır.fromName100 characters'den uzun olamaz.
Notlar:
- Sağlanan e-postaya sahip bir kullanıcı zaten varsa, kiracınızın yorumlarını yönetmesi için davet edilir.
- Sağlanan e-postaya sahip bir kullanıcı yoksa, davet bağlantısı onları hesap oluşturmaya yönlendirecektir.
- Davet
30 dayssonra sona erecektir.
Sadece e-postasını bildiğimiz bir kullanıcı için bir Moderator oluşturabiliriz:

Bu, Bob at TenantName is inviting you to be a moderator... gibi bir e-posta gönderecektir.


DELETE /api/v1/moderators/:id 
Bu rota, bir Moderator'ın id ile kaldırılmasını sağlar.



Bildirim Sayısı Yapısı 
A NotificationCount object represents the unread notification count and metadata for a user.
If there are no unread notifications, there will be no NotificationCount for the user.
NotificationCount objects are created automatically and cannot be created via the API. They also expire after one year.
You can clear a user's unread notification count by deleting their NotificationCount.
The structure for the NotificationCount object is as follows:

GET /api/v1/notification-count/:user_id 
Bu rota kullanıcı kimliğine göre tek bir NotificationCount döndürür. SSO ile, kullanıcı kimliği <tenant id>:<user id> formatındadır.
Okunmamış bildirim yoksa bir NotificationCount olmayacaktır - bu nedenle 404 alırsınız.
Bu, notifications/count'den farklıdır: çok daha hızlıdır, ancak filtrelemeye izin vermez.



DELETE /api/v1/notification-count/:user_id 
Bu rota, kullanıcı kimliğine göre tek bir NotificationCount'ı siler. SSO ile, kullanıcı kimliği <tenant id>:<user id> biçimindedir.
Bu, kullanıcının okunmamış bildirim sayısını temizler (yorum widget'ındaki kırmızı zil solacak ve sayı kaybolacaktır).



Bildirim Yapısı 
A Notification object represents a notification for a user.
Notification objects are created automatically and cannot be created via the API. They also expire after one year.
Notifications cannot be deleted. They can however be updated to set viewed to false, and you can query by viewed.
A user may also opt out of notifications for a specific comment by setting optedOut in the notification to true. You can opt in again by setting it to false.
There are different notification types - check relatedObjectType and type.
The ways notifications are created is quite flexible and can be triggered by many scenarios (see NotificationType).
As of today, the existence of a Notification does not actually imply an email is or should be sent. Rather, the notifications
are used for the notification feed and related integrations.
The structure for the Notification object is as follows:

GET /api/v1/notifications 
Bu rota en yeni önce olacak şekilde createdAt'e göre sıralanmış en fazla 30 Notification nesnesi döndürür.
userId ile filtreleyebilirsiniz. SSO ile, kullanıcı kimliği <tenant id>:<user id> formatındadır.



GET /api/v1/notifications/count 
Bu rota, bildirim sayısını count parametresi altında içeren bir nesne döndürür.
Bu, /notification-count/'den daha yavaştır ve kredi maliyeti iki katıdır, ancak daha fazla boyuta göre filtrelemeye izin verir.
/notifications uç noktasındaki userId gibi aynı parametrelere göre filtreleyebilirsiniz. SSO ile kullanıcı kimliği <tenant id>:<user id> formatındadır.




PATCH /api/v1/notifications/:id 
Bu API uç noktası bir Notification'ı id ile güncelleme yeteneği sağlar.
Bir Notification'ın güncellenmesi aşağıdaki kısıtlamalara tabidir:
- Sadece aşağıdaki alanları güncelleyebilirsiniz:
viewedoptedOut



Sayfa Yapısı 
Bir Page nesnesi, birçok yorumun ait olabileceği sayfayı temsil eder. Bu ilişki şu şekilde tanımlanır
urlId.
Bir Page, sayfa başlığı, yorum sayısı ve urlId gibi bilgileri saklar.
Page nesnesinin yapısı aşağıdaki gibidir:

GET /api/v1/pages 
Şu anda yalnızca hesabınıza bağlı tüm sayfaları (veya /by-url-id ile tek bir sayfayı) alabilirsiniz. Daha ayrıntılı arama isterseniz, bize ulaşın.



Yararlı İpucu
Comment API'si bir urlId gerektirir. Hangi urlId değerlerinin size sunulduğunu görmek için önce Pages API'sini çağırabilirsiniz.
GET /api/v1/pages/by-url-id 
Bireysel sayfalar ilgili urlId ile getirilebilir. Bu, sayfa başlıklarını veya yorum sayılarını aramak için faydalı olabilir.



Yararlı İpucu
urlId gibi değerleri URI Encode (URI Kodlama) yapmayı unutmayın.
PATCH /api/v1/pages/:id 
Bu rota tek bir Page'i güncelleme yeteneği sağlar. İlgili yorumlar da güncellenecektir.



Not
Sayfa nesnesindeki bazı parametreler otomatik olarak güncellenir. Bunlar sayaçlar (counts) ve title öznitelikleridir. Sayaçlar API aracılığıyla güncellenemez
çünkü bunlar hesaplanan değerlerdir. Sayfanın title alanı API ile ayarlanabilir, ancak yorum bileşeni aynı urlId'ye sahip ve farklı bir sayfa başlığı olan bir sayfada kullanılırsa üzerine yazılır.
POST /api/v1/pages 
This API endpoint provides the ability to create pages.
A common use cases is access control.
Notes:
- If you've commented on a comment thread, or called the API to create a
Comment, you've already created aPageobject! You can try fetching it via the/by-url-idPageroute, passing in the sameurlIdpassed to the comment widget. - The
Pagestructure contains some calculated values. Currently, these arecommentCountandrootCommentCount. They are populated automatically and cannot be set by the API. Attempting to do so will cause the API to return an error.



DELETE /api/v1/pages/:id 
Bu rota, id ile tek bir sayfanın silinmesini sağlar.
Aynı urlId'ye sahip bir sayfanın yorum widget'ı ile etkileşimde bulunmanın Page'i sorunsuzca yeniden oluşturacağını unutmayın.



Bekleyen Webhook Olayı Yapısı 
A PendingWebhookEvent object represents a queued webhook event that is pending.
PendingWebhookEvent objects are created automatically and cannot be manually created via the API. They also expire after one year.
They can be deleted which removes the task from the queue.
There are different event types - check eventType (OutboundSyncEventType) and type (OutboundSyncType).
A common use case for this API is to implement custom monitoring. You may want to call the /count endpoint periodically
to poll the outstanding count for given filters.
The structure for the PendingWebhookEvent object is as follows:

GET /api/v1/pending-webhook-events 
Bu rota, pendingWebhookEvents parametresi altında bekleyen webhook olaylarının bir listesini döndürür.
Bu API, skip parametresiyle sağlanan sayfalama kullanır. PendingWebhookEvents 100 öğe halinde sayfalanmış şekilde döndürülür, createdAt alanına göre en yeniler ilk sırada olacak şekilde sıralanır.



GET /api/v1/pending-webhook-events/count 
Bu rota, bekleyen webhook olaylarının sayısını count parametresi altında içeren bir nesne döndürür.
Aynı parametrelere göre /pending-webhook-events uç noktasıyla filtreleyebilirsiniz.



DELETE /api/v1/pending-webhook-events/:id 
Bu rota tek bir PendingWebhookEvent öğesinin silinmesine olanak tanır.
Toplu silme yapmanız gerekiyorsa, GET API'sini sayfalandırma ile çağırın ve ardından bu API'yi art arda çağırın.



SSO Kullanıcısı Yapısı 
FastComments provides an easy to use SSO solution. Updating a user's information with the HMAC-based integration is as simple as having the user load the page with an updated payload.
However, it may be desirable to manage a user outside that flow, to improve consistency of your application.
The SSO User API provides a way to CRUD objects that we call SSOUsers. These objects are different from regular Users and kept separate for type safety.
The structure for the SSOUser object is as follows:

Billing for SSO Users
SSO users are billed differently based on their permission flags:
- Regular SSO Users: Users without admin or moderator permissions are billed as regular SSO users
- SSO Admins: Users with
isAccountOwnerorisAdminAdminflags are billed separately as SSO Admins (same rate as regular tenant admins) - SSO Moderators: Users with
isCommentModeratorAdminflag are billed separately as SSO Moderators (same rate as regular moderators)
Important: To prevent double billing, the system automatically deduplicates SSO users against regular tenant users and moderators by email address. If an SSO user has the same email as a regular tenant user or moderator, they will not be billed twice.
Access Control
Users can be broken into groups. This is what the groupIds field is for, and is optional.
@Mentions
By default @mentions will use username to search for other sso users when the @ character is typed. If displayName is used, then results matching
username will be ignored when there is a match for displayName, and the @mention search results will use displayName.
Subscriptions
With FastComments, users can subscribe to a page by clicking the bell icon in the comment widget and clicking Subscribe.
With a regular user, we send them notification emails based on their notification settings.
With SSO Users, we split this up for backwards compatibility. Users will only get sent these additional subscription notification
emails if you set optedInSubscriptionNotifications to true.
Badges
You can assign badges to SSO users using the badgeConfig property. Badges are visual indicators that appear next to a user's name in comments.
badgeIds- An array of badge IDs to assign to the user. These must be valid badge IDs created in your FastComments account. Limited to 30 badges.override- If true, all existing badges displayed on comments will be replaced with the provided ones. If false or omitted, the provided badges will be added to any existing badges.update- If true, badge display properties will be updated from the tenant configuration whenever the user logs in.
GET /api/v1/sso-users 
Bu rota SSO Kullanıcılarını 100'erlik sayfalarda döndürür. Sayfalandırma skip parametresi ile sağlanır. Kullanıcılar signUpDate ve id alanlarına göre sıralanır.



GET /api/v1/sso-users/by-id/:id 
Bu rota, bir SSO kullanıcısını id'sine göre döndürür.



GET /api/v1/sso-users/by-email/:email 
Bu rota e-posta adresine göre tek bir SSO kullanıcısı döndürür.



PATCH /api/v1/sso-users/:id 
Bu rota, tek bir SSO kullanıcısını güncelleme olanağı sağlar.



POST /api/v1/sso-users 
Bu rota tek bir SSO kullanıcısının oluşturulmasını sağlar.
Aynı ID'ye sahip iki kullanıcı oluşturmaya çalışmak hata ile sonuçlanır.

Bu örnekte erişim kontrolü için groupIds belirtiyoruz, ancak bu isteğe bağlıdır.


Entegrasyon Notu
API tarafından gönderilen veriler, farklı bir SSO User HMAC yükü göndererek kolayca geçersiz kılınabilir. Örneğin, kullanıcı adını API üzerinden ayarlarsanız, ancak sayfa yüklemesi sırasında SSO akışıyla farklı bir kullanıcı adı gönderirseniz, kullanıcı adlarını otomatik olarak güncelleyeceğiz.
Bu akışta kullanıcı parametrelerini, bunları açıkça belirtmediğiniz veya null olarak ayarlamadığınız (undefined değil) sürece güncellemeyeceğiz.
PUT /api/v1/sso-users/:id 
Bu rota tek bir SSO kullanıcısını güncelleme yeteneği sağlar.

Bu örnekte erişim kontrolü için groupIds belirtiyoruz, ancak bu isteğe bağlıdır.


DELETE /api/v1/sso-users/:id 
Bu rota, tek bir SSO kullanıcısını id'si ile kaldırmayı sağlar.
Bu kullanıcının payload'ını içeren yorum bileşenini yeniden yüklemenin kullanıcıyı sorunsuz şekilde yeniden oluşturacağını unutmayın.
Kullanıcının yorumlarını silmek deleteComments sorgu parametresi aracılığıyla mümkündür. Bunun true olması durumunda:
- Kullanıcının tüm yorumları canlı olarak silinecektir.
- Tüm child (şimdi yetim) yorumlar, her bir yorumun ilişkili olduğu sayfa yapılandırmasına göre silinecek veya anonimleştirilecektir. Örneğin thread deletion modu "anonymize" ise yanıtlar kalacak ve kullanıcının yorumları anonimleştirilecektir. Bu yalnızca
commentDeleteModeRemove(varsayılan değer) olduğunda geçerlidir. creditsCostdeğeri2olur.
Anonimleştirilmiş Yorumlar
Kullanıcının yorumlarını koruyabilir ancak commentDeleteMode=1 olarak ayarlayarak bunları anonimleştirebilirsiniz.
Kullanıcının yorumları anonimleştirildiyse aşağıdaki değerler null olarak ayarlanır:
- commenterName
- commenterEmail
- avatarSrc
- userId
- anonUserId
- mentions
- badgesisDeleted ve isDeletedUser true olarak ayarlanır.
Render sırasında yorum bileşeni, kullanıcının adı için DELETED_USER_PLACEHOLDER (varsayılan: "[deleted]") ve yorum için DELETED_CONTENT_PLACEHOLDER kullanır. Bunlar Widget Özelleştirme UI'si aracılığıyla özelleştirilebilir.
Örnekler



Abonelik Yapısı 
A Subscription object represents a subscription for a user.
Subscription objects are created when a user clicks the notification bell in the comment widget and clicks "Bu sayfaya abone ol".
Subscriptions can also be created via the API.
Having a Subscription object causes Notification objects to be generated, and emails sent, when new comments are left on the root of the associated page
that the Subscription is for. Sending of emails depends on the type of user. For regular users this depends on optedInNotifications. For SSO Users this depends on optedInSubscriptionNotifications. Note that some applications may not have the concept of a web-accessible page, in which case simply set urlId to
the id of the item you are subscribing to (same value for urlId you would pass to the comment widget).
The structure for the Subscription object is as follows:

GET /api/v1/subscriptions/:id 
Bu rota, createdAt'e göre sıralanmış, en yeni ilk olacak şekilde en fazla 30 Subscription nesnesi döndürür.
userId ile filtreleyebilirsiniz. SSO ile, kullanıcı kimliği <tenant id>:<user id> formatındadır.



POST /api/v1/subscriptions 
This API endpoint provides the ability to create a Subscription. Note that a user may only have one subscription per page, as more is redundant, and trying
to create more than one subscription for the same user for the same page will result in an error.
Creating a subscription will result in Notification objects being created when a new comment is left on the root of the subscribed urlId (when comment parentId is null).



DELETE /api/v1/subscriptions/:id 
Bu rota bir Subscription nesnesini id ile siler.



Kiracı Günlük Kullanım Yapısı 
Bir TenantDailyUsage nesnesi, belirli bir gün için bir kiracının kullanımını temsil eder. Eğer belirli bir kiracı için belirli bir
günde hiçbir etkinlik yoksa, o gün için bir TenantDailyUsage nesnesi olmayacaktır.
The TenantDailyUsage object is not real time and may be minutes behind actual usage.
The structure for the TenantDailyUsage object is as follows:

GET /api/v1/tenant-daily-usage 
Bu rota, bir tenant'ın kullanımını yıl, ay ve güne göre aramaya olanak tanır. En fazla 365 nesne döndürülebilir ve maliyet 10 nesne için 1 API kredisi.
Yanıt nesneleri oluşturuldukları tarihe göre sıralanır (en eski önce).



Kiracı Yapısı 
Tenant, FastComments.com müşterisini tanımlar. Bunlar API aracılığıyla white-label erişimine sahip kiracılar tarafından oluşturulabilir. White-label kiracılar
başka white-label kiracılar oluşturamaz (sadece bir düzey iç içe izin verilir).
Tenant nesnesinin yapısı aşağıdaki gibidir:

GET /api/v1/tenants/:id 
Bu rota id ile tek bir Tenant döndürür.



GET /api/v1/tenants 
Bu API, tenant'ınız tarafından yönetilen tenants listesini döndürür.
Sayfalama skip sorgu parametresi ile sağlanır. Tenants, 100 öğelik sayfalar halinde, signUpDate ve id'ye göre sıralanarak döndürülür.
Maliyet, döndürülen tenants sayısına göre belirlenir; döndürülen her 10 tenants için 1 credit per 10 ücretlendirilir.

Tenant nesneleri üzerinde meta parametreleri tanımlayabilir ve eşleşen tenants için sorgu yapabilirsiniz. Örneğin, someKey anahtarı ve some-value meta değeri için, bu anahtar/değer çiftini içeren bir JSON nesnesi oluşturup filtrelemek için bunu URI kodlayarak sorgu parametresi olarak kullanabiliriz:



POST /api/v1/tenants 
Bu rota tek bir Tenant ekleme yeteneği sağlar.
Bir Tenant oluşturmanın aşağıdaki kısıtlamaları vardır:
- A
nameis required. domainConfigurationis required.- The following values may not be provided when creating a
Tenant:hasFlexPricinglastBillingIssueReminderDateflexLastBilledAmount
- The
signUpDatemay not be in the future. - The
namemay not be longer than200 characters. - The
emailmay not be longer than300 characters. - The
emailmust be unique across all of FastComments.com tenants. - You may not create tenants if the parent tenant does not have a valid
TenantPackagedefined.- If your tenant was created via FastComments.com, this shouldn't be an issue.
- You may not create more tenants than defined under
maxWhiteLabeledTenantsin your package. - You must specify the
tenantIdquery param which is the id of yourparent tenantwith white labeling enabled.
Sadece birkaç parametre ile bir Tenant oluşturabiliriz:



PATCH /api/v1/tenants/:id 
This API endpoint provides the ability to update a Tenant by id.
Updating a Tenant has the following restrictions:
- The following values may not be updated:
hasFlexPricinglastBillingIssueReminderDateflexLastBilledAmountmanagedByTenantId
- The
signUpDatemay not be in the future. - The
namemay not be longer than200 characters. - The
emailmay not be longer than300 characters. - The
emailmust be unique across all of FastComments.com tenants. - When setting
billingInfoValidtotrue,billingInfomust be provided in the same request. - You may not update the
packageIdassociated with your own tenant. - You may not update the
paymentFrequencyassociated with your own tenant.



DELETE /api/v1/tenants/:id 
Bu rota, bir Tenant ve ilgili tüm verilerin (kullanıcılar, yorumlar, vb.) id ile kaldırılmasını sağlar.
Aşağıdaki kısıtlamalar tenant kaldırma işlemi ile ilgilidir:
- Tenant sizin kendi tenant'ınız olmalı veya sizin yönettiğiniz beyaz etiketli bir tenant olmalıdır.
suresorgu parametresitrueolarak ayarlanmış olmalıdır.



Kiracı Paketi Yapısı 
TenantPackage, bir Tenant için mevcut paket bilgilerini tanımlar. Bir tenant'ın birden çok paketi olabilir, ancak aynı anda yalnızca biri kullanımda olabilir.
Bir Tenant, packageId geçerli bir TenantPackage'ı işaret edene kadar herhangi bir ürün için kullanılamaz.
İki tür TenantPackage nesnesi vardır:
- Sabit fiyatlı paketler -
hasFlexPricingfalse olduğunda. - Esnek fiyatlandırma -
hasFlexPricingtrue olduğunda.
Her iki durumda da paketi kullanan hesap üzerinde limitler tanımlanır, ancak Flex ile tenant'a baz bir ücret artı kullandıkları miktar flex* parametreleri ile tanımlanan şekilde faturalandırılır.
Bir tenant'ın birden fazla tenant paketi olabilir ve paketi kendileri Fatura Bilgileri Sayfası. üzerinden değiştirme yetkisi olabilir.
Faturalamayı tenantlar için kendiniz yönetecekseniz, limitlerini tanımlamak için yine de her tenant için bir paket tanımlamanız gerekir. Tenant üzerinde billingHandledExternally'i true olarak ayarlamanız yeterlidir; böylece kendi fatura bilgilerini veya aktif paketlerini değiştiremeyeceklerdir.
Üst tenant'tan daha yüksek limitlere sahip paketler oluşturamazsınız.
TenantPackage nesnesinin yapısı aşağıdaki gibidir:

GET /api/v1/tenant-packages/:id 
Bu rota, id ile tek bir Tenant Package döndürür.



GET /api/v1/tenant-packages 
Bu API, skip sorgu parametresiyle sağlanan sayfalandırmayı kullanır. TenantPackages, createdAt ve id'ye göre sıralanmış olarak, 100 öğelik sayfalar halinde döndürülür.
Maliyet, döndürülen tenant paketlerinin sayısına göre hesaplanır; döndürülen tenant paketleri için maliyet 1 credit per 10'dur.



POST /api/v1/tenant-packages 
Bu rota tek bir TenantPackage ekleme yeteneği sağlar.
Bir TenantPackage oluşturmanın aşağıdaki kısıtlamaları vardır:
- Aşağıdaki parametreler gereklidir:
nametenantIdmonthlyCostUSD- Boş (null) olabilir.yearlyCostUSD- Boş (null) olabilir.maxMonthlyPageLoadsmaxMonthlyAPICreditsmaxMonthlyCommentsmaxConcurrentUsersmaxTenantUsersmaxSSOUsersmaxModeratorsmaxDomainshasDebrandingforWhoTextfeatureTaglineshasFlexPricing- Eğer true ise, tümflex*parametreleri gereklidir.
name50 characters'den daha uzun olamaz.- Her
forWhoTextöğesi200 characters'den daha uzun olamaz. - Her
featureTaglinesöğesi100 characters'den daha uzun olamaz. TenantPackage, üst kiracıdan daha "küçük" olmalıdır. Örneğin, tümmax*parametrelerinin üst kiracıdan daha düşük değerlere sahip olması gerekir.- Bir beyaz etiketli kiracı en fazla beş pakete sahip olabilir.
- Sadece beyaz etiketleme erişimine sahip kiracılar bir
TenantPackageoluşturabilir. - Kendi kiracınıza paket ekleyemezsiniz. :)
Bir TenantPackage şu şekilde oluşturulabilir:



PATCH /api/v1/tenant-packages/:id 
This API endpoint provides the ability to update a TenantPackage by id.
Updating a TenantPackage has the following restrictions:
- If you are setting
hasFlexPricingto true, then allflex*parameters are required in that same request. - The
namemay not be longer than50 characters. - Each
forWhoTextitem may not be longer than200 characters. - Each
featureTaglinesitem may not be longer than100 characters. - The
TenantPackagemust be "smaller" than the parent tenant. For example, all of themax*parameters must have lower values than the parent tenant. - You may not change the
tenantIdassociated with aTenantPackage.



DELETE /api/v1/tenant-packages/:id 
Bu rota bir TenantPackage'ı id ile kaldırmayı sağlar.
Kullanımda olan bir TenantPackage'ı kaldıramazsınız (bir tenant'ın packageId pakete işaret ediyor). Önce Tenant'ı güncelleyin.



Kiracı Kullanıcı Yapısı 
The TenantUser defines a User which is managed by a specific tenant. Their account is in complete control of the tenant
they are associated with, and their account can be updated or deleted via the UI or API.
Tenant users can be administrators with all permissions and access to the Tenant, or they can be limited to specific permissions to
moderate comments, access API keys, etc.
The structure for the TenantUser object is as follows:

GET /api/v1/tenant-users/:id 
Bu rota id ile tek bir TenantUser döndürür.



GET /api/v1/tenant-users 
Bu API, sayfalama için skip sorgu parametresi ile çalışır. TenantUsers, 100 öğe sayfaları halinde döndürülür; signUpDate, username ve id'ye göre sıralanır.
Maliyet döndürülen tenant users sayısına göre belirlenir; döndürülen her 10 tenant users için 1 credit per 10 ücret alınır.



POST /api/v1/tenant-users 
Bu rota tek bir TenantUser ekleme olanağı sağlar.
Bir TenantUser oluşturmanın aşağıdaki kısıtlamaları vardır:
usernamegereklidir.emailgereklidir.signUpDategelecekte olamaz.localeşu listede olmalıdır: Desteklenen Yereller.usernameFastComments.com genelinde benzersiz olmalıdır. Bu bir sorun ise, bunun yerine SSO kullanmanızı öneririz.emailFastComments.com genelinde benzersiz olmalıdır. Bu bir sorun ise, bunun yerine SSO kullanmanızı öneririz.- Paketinizde
maxTenantUsersaltında tanımlanan sayıda tenant kullanıcıdan daha fazlasını oluşturamazsınız.
TenantUser şu şekilde oluşturabiliriz



POST /api/v1/tenant-users/:id/send-login-link 
Bu rota tek bir TenantUser'a giriş bağlantısı gönderebilme imkanı sağlar.
Kullanıcıları toplu oluştururken ve onlara FastComments.com'a nasıl giriş yapacaklarını anlatmak zorunda olmadığınız durumlarda faydalıdır. Bu, onlara giriş yapmak için süresi dolan bir "sihirli bağlantı" gönderecektir; süresi 30 days sonra sona erer.
Bir TenantUser'a giriş bağlantısı göndermek için aşağıdaki kısıtlamalar geçerlidir:
TenantUserzaten mevcut olmalıdır.TenantUser'ın ait olduğuTenant'ı yönetme erişiminiz olmalıdır.
Bir TenantUser'a giriş bağlantısı şu şekilde gönderilebilir:

Bu, şu şekilde bir e-posta gönderecektir: Bob at TenantName is inviting you to be a moderator...


PATCH /api/v1/tenant-users/:id 
This route provides the ability to update a single TenantUser.
Updating a TenantUser has the following restrictions:
- The
signUpDatemay not be in the future. - The
localemust be in the list of Supported Locales. - The
usernamemust be unique across all of FastComments.com. If this is an issue, we suggest using SSO instead. - The
emailmust be unique across all of FastComments.com. If this is an issue, we suggest using SSO instead. - You cannot update the
tenantIdof a user.
We can create a TenantUser as follows



DELETE /api/v1/tenant-users/:id 
Bu rota bir TenantUser'ı id ile kaldırmayı sağlar.
Kullanıcının yorumlarının silinmesi deleteComments sorgu parametresi ile mümkündür. Bunun true olması durumunda:
- Kullanıcının tüm yorumları canlı olarak silinecektir.
- Tüm child (şimdi öksüz) yorumlar, her yorumun ilişkili sayfa yapılandırmasına göre silinecek veya anonimleştirilecektir. Örneğin konu silme modu "anonymize" ise yanıtlar kalır ve kullanıcının yorumları anonimleştirilir. Bu yalnızca
commentDeleteModeRemoveolduğunda (varsayılan değer) geçerlidir. creditsCostdeğeri2olur.
Anonymized Comments
Kullanıcının yorumlarını saklayabilir fakat commentDeleteMode=1 ayarlayarak bunları yalnızca anonimleştirebilirsiniz.
Kullanıcının yorumları anonimleştirildiğinde aşağıdaki değerler null olarak ayarlanır:
- commenterName
- commenterEmail
- avatarSrc
- userId
- anonUserId
- mentions
- badgesisDeleted ve isDeletedUser true olarak ayarlanır.
Render edilirken, yorum widget'ı kullanıcının adı için DELETED_USER_PLACEHOLDER (varsayılan: "[deleted]") ve yorum için DELETED_CONTENT_PLACEHOLDER kullanır. Bunlar Widget Özelleştirme UI'sı aracılığıyla özelleştirilebilir.
Examples



Kullanıcı Yapısı 
User tüm kullanıcı türlerinin en yaygın ortak paydasını temsil eden bir nesnedir.
Unutmayın ki FastComments'ta kullanıcılar için birçok farklı kullanım durumu bulunur:
- Secure SSO
- Simple SSO
- Tenant Users (Örneğin: Yöneticiler)
- Commenters
Bu API Commenters ve Simple SSO aracılığıyla oluşturulan kullanıcılar içindir. Temelde, siteniz üzerinden oluşturulan herhangi bir kullanıcıya bu API aracılığıyla erişilebilir. Tenant Users da bu şekilde alınabilir, ancak /tenant-users/ API'si ile etkileşime girerek daha fazla bilgi edinebilirsiniz.
Secure SSO için lütfen /sso-users/ API'sini kullanın.
Bu tür kullanıcıları güncelleyemezsiniz. Hesaplarını siteniz aracılığıyla oluşturmuşlardır, bu yüzden temel bazı salt okunur erişim sağlıyoruz, ancak değişiklik yapamazsınız. Bu tür bir akışa sahip olmak istiyorsanız - Secure SSO'yu kurmanız gerekir.
User nesnesinin yapısı aşağıdaki gibidir:

GET /api/v1/users/:id 
Bu rota id ile tek bir Kullanıcı döndürür.



Oy Yapısı 
Bir Vote nesnesi, bir kullanıcı tarafından bırakılan bir oyu temsil eder.
Yorumlar ile oy arasındaki ilişki commentId aracılığıyla tanımlanır.
Vote nesnesinin yapısı aşağıdaki gibidir:

GET /api/v1/votes 
Oylar urlId ile alınmalıdır.
Oy Türleri
Üç tür oy vardır:
- Kimliği doğrulanmış oylar, ilgili yoruma uygulanır. Bunları bu API aracılığıyla oluşturabilirsiniz.
- Kimliği doğrulanmış oylar, doğrulama için beklemede olan ve bu nedenle henüz yoruma uygulanmamış olanlar. Bunlar bir kullanıcı FastComments.com oy vermek için giriş yap mekanizmasını kullandığında oluşturulur.
- Anonim oylar, ilgili yoruma uygulanır. Bunlar anonim yorumla birlikte oluşturulur.
Bunlar karışıklığı azaltmak için API'de ayrı listeler halinde döndürülür.



Anonim Oylar Notları
Bu API aracılığıyla oluşturulan anonim oyların appliedAuthorizedVotes listesinde görüneceğini unutmayın. API anahtarıyla API aracılığıyla oluşturuldukları için yetkili olarak kabul edilirler.
appliedAnonymousVotes yapısı e-posta, API anahtarı vb. olmadan oluşturulan oylar içindir.
GET /api/v1/votes/for-user 
Belirli bir urlId üzerinde bir kullanıcı tarafından bırakılan oyları getirmeyi sağlar. Herhangi bir FastComments.com veya SSO User olabilecek bir userId alır.
Bu, bir kullanıcının bir yoruma oy verip vermediğini göstermek istiyorsanız yararlıdır. Yorumları getirirken, aynı urlId ile kullanıcı için aynı anda bu API'yi çağırmanız yeterlidir.
Eğer anonim oy kullanıyorsanız bunun yerine anonUserId göndermek isteyeceksiniz.


Anonim oyların appliedAuthorizedVotes listesinde görüneceğini unutmayın. API anahtarı ile API üzerinden oluşturuldukları için yetkili kabul edilirler.


POST /api/v1/votes 
Bu rota tek bir yetkili Vote ekleme yeteneği sağlar. Oylar up (+1) veya down (-1) olabilir.




Anonim Oy Oluşturma
Anonim oylar, sorgu parametrelerinde userId yerine anonUserId ayarlanarak oluşturulabilir.
Bu id herhangi bir kullanıcı nesnesiyle eşleşmek zorunda değildir (dolayısıyla anonim). Bu, yalnızca oturum için bir tanımlayıcıdır, böylece aynı oturum içinde oyları tekrar alabilir ve bir yorumun oylandığını kontrol edebilirsiniz.
Eğer FastComments'ın sahip olduğu gibi "anonim oturumlar" gibi bir şeye sahip değilseniz - bunu basitçe rastgele bir ID'ye, örneğin bir UUID'ye ayarlayabilirsiniz (ancak alan tasarrufu için daha küçük tanımlayıcıları tercih ediyoruz).
Diğer Notlar
- Bu API, tenant düzeyindeki ayarlara uyar. Örneğin, belirli bir sayfa için oylamayı devre dışı bırakırsanız ve API aracılığıyla bir oy oluşturmaya çalışırsanız,
voting-disabledhata kodu ile başarısız olur. - Bu API varsayılan olarak canlıdır.
- Bu API, ilgili
Comment'invotesalanını güncelleyecektir.
DELETE /api/v1/votes/:id 
Bu rota tek bir Vote'u silme imkanı sağlar.



Notlar:
- Bu API, kiracı düzeyindeki ayarlara uyar. Örneğin, belirli bir sayfa için oylamayı devre dışı bırakırsanız ve API üzerinden bir oy oluşturmaya çalışırsanız,
voting-disabledhata kodu ile başarısız olur. - Bu API varsayılan olarak canlıdır.
- Bu API, ilgili
Comment'invotesdeğerini güncelleyecektir.
Alan Adı Yapılandırması Yapısı 
A DomainConfig object represents configuration for a domain for a tenant.
The structure for the DomainConfig object is as follows:


Kimlik Doğrulama
Alan Yapılandırması, hesabınız için hangi sitelerin FastComments widget'ını barındırabileceğini belirlemek için kullanılır. Bu temel bir kimlik doğrulama biçimidir, yani herhangi bir Alan Yapılandırması eklenmesi veya kaldırılması, FastComments kurulumunuzun üretimdeki kullanılabilirliğini etkileyebilir.
Halihazırda kullanımda olan bir alan için Domain Config içindeki domain özelliğini, o alanı devre dışı bırakmak amaçlanmıyorsa, kaldırmayın veya güncellemeyin.
Bu, /auth/my-account/configure-domains'den bir alanı kaldırma ile aynı davranışı gösterir.
Ayrıca, My Domains UI'dan bir alanı kaldırmanın, bu UI aracılığıyla eklenmiş olabilecek o alana ait ilgili yapılandırmayı da kaldıracağını unutmayın.
E-posta Özelleştirmesi İçin
E-posta altbilgisindeki abonelikten çıkma bağlantısı ve birçok e-posta istemcisinin sunduğu tek tıklamayla abonelikten çıkma özelliği, sırasıyla footerUnsubscribeURL ve emailHeaders tanımlanarak bu API aracılığıyla yapılandırılabilir.
DKIM İçin
DKIM DNS kayıtlarınızı tanımladıktan sonra, tanımlı yapıyı kullanarak DKIM yapılandırmanızı DomainConfig ile güncellemeniz yeterlidir.
GET /api/v1/domain-configs 
Bu API, bir kiracı için tüm DomainConfig nesnelerini getirme yeteneği sağlar.



GET /api/v1/domain-configs/:domain 
Bireysel DomainConfig'ler, karşılık gelen domain ile alınabilir.



POST /api/v1/domain-configs 
Bu API uç noktası alan adı yapılandırmaları oluşturma yeteneği sağlar.
Bir alan adı için yapılandırma eklemek, o alan adını FastComments hesabı için yetkilendirir.
Bu API'nin yaygın kullanım durumları başlangıç kurulumu, birçok alan adı eklenmesi gerektiğinde veya e-posta gönderimi için özel yapılandırmadır.



PATCH /api/v1/domain-configs/:domain 
Bu API uç noktası, yalnızca alan adını ve güncellenecek özniteliği belirterek bir alan yapılandırmasını güncelleme yeteneği sağlar.



PUT /api/v1/domain-configs/:domain 
Bu API uç noktası bir alan yapılandırmasını değiştirme yeteneği sağlar.



DELETE /api/v1/domain-configs/:domain 
Bu rota, tek bir DomainConfig'in id'sine göre kaldırılmasını sağlar.
- Not: Bir
DomainConfig'in kaldırılması, o alan adının FastComments kullanma yetkisini kaldırır. - Not: UI üzerinden bir alan adını yeniden eklemek nesneyi yeniden oluşturur (yalnızca
domainalanı doldurulmuş olarak).



Soru Yapılandırması Yapısı 
FastComments, soru oluşturma ve bunların sonuçlarını toplama yolu sağlar. Bir soru örneği (bundan sonra QuestionConfig olarak anılacaktır)
yıldız derecelendirmesi, bir kaydırıcı veya bir NPS sorusu olabilir (type ile belirlenir).
Soru verileri ayrı ayrı, birlikte, zaman içinde, genel olarak, sayfaya göre vb. şekilde toplanabilir.
Bu çerçeve, istemci tarafı widget'ları (bu API'nin önünde sunucunuzla), yönetici panolarını ve raporlama araçlarını oluşturmak için gereken tüm yeteneklere sahiptir.
İlk olarak bir QuestionConfig tanımlamamız gerekiyor. Yapısı şu şekildedir:

GET /api/v1/question-configs 
Bu rota sayfalandırılmış şekilde tek seferde en fazla 100 QuestionConfig nesnesi döndürür. Maliyet 100 nesne başına 1'dir. Bunlar
soru metnine göre artan sırada sıralanırlar (question alanı).



GET /api/v1/question-configs/:id 
Bu rota verilen id ile tek bir QuestionConfig döndürür.



POST /api/v1/question-configs 
Bu API uç noktası bir QuestionConfig oluşturma yeteneği sağlar.



PATCH /api/v1/question-configs/:id 
Bu rota tek bir QuestionConfig'i güncelleme olanağı sağlar.
Aşağıdaki yapı değiştirilebilecek tüm değerleri temsil eder:




DELETE /api/v1/question-configs/:id 
Bu rota, bir QuestionConfig'ı id ile kaldırmayı sağlar.
Bu, ilgili tüm soru sonuçlarını silecektir (ancak yorumları silmez). Bu, yüksek kredi maliyetinin bir parçasıdır.



Soru Sonucu Yapısı 
Sorular için sonuçları kaydetmek amacıyla bir QuestionResult oluşturursunuz. Ardından soru sonuçlarını toplu hâlde işleyebilir ve raporlama amaçları için yorumlara bağlayabilirsiniz.

GET /api/v1/question-results 
Bu rota sayfalandırılmış olarak aynı anda en fazla 1000 QuestionResults nesnesi döndürür. Ücret her 100 nesne için 1'dir. Onlar
createdAt'e göre artan sırada sıralanırlar. Çeşitli parametrelere göre filtreleyebilirsiniz.



GET /api/v1/question-results/:id 
Bu rota, id'sine göre tek bir QuestionResult döndürür.



POST /api/v1/question-results 
Bu API uç noktası bir QuestionResult oluşturma yeteneği sağlar.



PATCH /api/v1/question-results/:id 
Bu rota tek bir QuestionResult'ı güncelleme yeteneği sağlar.
Aşağıdaki yapı, değiştirilebilecek tüm değerleri temsil eder:




DELETE /api/v1/question-results/:id 
Bu rota, id ile bir QuestionResult'ın kaldırılmasını sağlar.



GET /api/v1/question-results-aggregate 
Burası sonuçların toplandığı yerdir.
Agregasyon yanıt yapısı aşağıdaki gibidir:

Here are the query parameters available for aggregation:

Here's an example request:

Example response:


Performans Notları
- Önbellek bulunamadığında, agregasyonlar genellikle her milyon sonuç için beş saniye sürer.
- Aksi takdirde, istekler sabit zamanlıdır.
Önbellekleme ve Maliyet Notları
forceRecalculatebelirtildiğinde maliyet her zaman10olur, normal2yerine.- Önbellek süresi dolup veriler yeniden hesaplanırsa,
forceRecalculatebelirtilmemişse maliyet yine sabit2'dir. Önbellek, toplanan veri kümesinin boyutuna göre sona erer (30 saniye ile 5 dakika arasında değişebilir). - Bu, önbelleğin kullanılmasını teşvik etmek içindir.
GET /api/v1/question-results-aggregate/combine/comments 
Bu, sonuçların yorumlarla birleştirildiği yerdir. Örneğin bir ürün için "son olumlu ve olumsuz yorumlar" grafiği oluşturmak için faydalıdır.
Değer aralığı (dahil), bir veya daha fazla soru ve bir başlangıç tarihi (dahil) ile arama yapabilirsiniz.
Yanıt yapısı şu şekildedir:

Toplama için kullanılabilen sorgu parametreleri şunlardır:

İşte bir örnek istek:

Örnek yanıt:


Önbellekleme ve Maliyet Notları
forceRecalculatebelirtildiğinde maliyet normal2yerine her zaman10olur.- Önbellek süresi dolup veriler yeniden hesaplanırsa,
forceRecalculatebelirtilmemişse maliyet yine sabit2olur. - Bu, önbelleğin kullanılmasını teşvik etmek içindir.
Kullanıcı Rozeti Yapısı 
UserBadge FastComments sisteminde bir kullanıcıya atanan bir rozeti temsil eden bir nesnedir.
Rozetler, kullanıcı etkinliğine (such as comment count, reply time, veteran status) göre otomatik olarak veya site yöneticileri tarafından elle atanabilir.
The structure for theUserBadgeobject is as follows: -> UserBadge nesnesinin yapısı aşağıdaki gibidir:

GET /api/v1/user-badges 
Bu uç nokta, çeşitli kriterlere göre kullanıcı rozetlerini almanıza olanak tanır.
Example Request:
Run 
You can add various query parameters to filter the results:
userId- Belirli bir kullanıcıya ait rozetleri albadgeId- Belirli bir rozete ait örnekleri altype- Rozet türüne göre filtrele (0=CommentCount, 1=CommentUpVotes, 2=CommentReplies, vb. Tam liste için UserBadge yapısına bakın)displayedOnComments- Rozetin yorumlarda gösterilip gösterilmediğine göre filtrele (true/false)limit- Döndürülecek maksimum rozet sayısı (varsayılan 30, maksimum 200)skip- Atlanacak rozet sayısı (sayfalandırma için)
Example Response:

Possible Error Responses:


GET /api/v1/user-badges/:id 
Bu uç nokta, benzersiz bir ID ile belirli bir kullanıcı rozetini getirmenize olanak tanır.
Örnek İstek:
Run 
Örnek Yanıt:

Olası Hata Yanıtları:


POST /api/v1/user-badges 
Bu uç nokta, yeni bir kullanıcı rozet ataması oluşturmanıza olanak tanır.
Örnek İstek:
Run 
İstek gövdesi aşağıdaki parametreleri içermelidir:
userId(required) - Rozeti atayacağınız kullanıcının kimliğibadgeId(required) - Atanacak rozetin kimliğidisplayedOnComments(optional) - Rozetin kullanıcının yorumlarında gösterilip gösterilmeyeceği (varsayılan true)
Önemli Notlar:
- Rozet, tenant'ınızın rozet kataloğunda mevcut olmalı ve etkinleştirilmiş olmalıdır
- Rozetleri yalnızca tenant'ınıza ait olan veya sitenizde yorum yapmış kullanıcılara atayabilirsiniz
Örnek Yanıt:

Olası Hata Yanıtları:





PUT /api/v1/user-badges/:id 
Bu uç nokta, bir kullanıcı rozeti atamasını güncellemenize olanak tanır.
Şu anda yalnızca güncellenebilen özellik displayedOnComments'tir; bu özellik rozetin kullanıcının yorumlarında gösterilip gösterilmeyeceğini kontrol eder.
Örnek İstek:
Run 
Örnek Yanıt:

Olası Hata Yanıtları:



DELETE /api/v1/user-badges/:id 
Bu uç nokta bir kullanıcı rozet atamasını silmenize olanak tanır.
Örnek İstek:
Run 
Örnek Yanıt:

Olası Hata Yanıtları:



Kullanıcı Rozet İlerleme Yapısı 
UserBadgeProgress is an object that represents a user's progress toward earning various badges in the FastComments system.
This tracking helps determine when users should receive automatic badges based on their activity and participation in your community.
The structure for the UserBadgeProgress object is as follows:

GET /api/v1/user-badge-progress 
Bu uç nokta, çeşitli kriterlere göre kullanıcı rozet ilerleme kayıtlarını almanıza olanak tanır.
Örnek İstek:
Run 
Sonuçları filtrelemek için çeşitli sorgu parametreleri ekleyebilirsiniz:
userId- Belirli bir kullanıcı için ilerlemeyi alınlimit- Döndürülecek maksimum kayıt sayısı (varsayılan 30, maksimum 200)skip- Atlanacak kayıt sayısı (sayfalama için)
Örnek Yanıt:

Olası Hata Yanıtları:


GET /api/v1/user-badge-progress/:id 
Bu uç nokta, benzersiz kimliğiyle belirli bir kullanıcı rozet ilerleme kaydını almanıza olanak tanır.
Example Request:
Run 
Example Response:

Possible Error Responses:


GET /api/v1/user-badge-progress/user/:userId 
Bu uç nokta, bir kullanıcının user ID'sine göre rozet ilerleme kaydını almanıza olanak tanır.
Example Request:
Run 
Example Response:

Possible Error Responses:



Sonuç olarak
API belgelerimizin kapsamlı ve anlaşılması kolay olduğunu umuyoruz. Herhangi bir eksiklik bulursanız, lütfen aşağıdan bize bildirin.