FastComments.com

FastComments Nim SDK

这是 FastComments 的官方 Nim SDK。

FastComments API 的官方 Nim SDK

仓库

在 GitHub 上查看

要求 Internal Link


  • Nim >= 1.6.0
  • nimcrypto >= 0.5.4

安装 Internal Link

使用 Nimble

nimble install fastcomments

从源码构建

nimble build

库内容

此库包含生成的 API 客户端和 SSO 实用程序,以便更方便地使用 API。

公共与受保护的 API

对于 API 客户端,有两个 API 模块,api_defaultapi_publicapi_default 包含需要您的 API 密钥的方法,api_public 包含可以直接从浏览器/移动设备/等在无需身份验证的情况下调用的 API。

快速开始 Internal Link

使用已认证的 APIs (DefaultAPI)

重要: 已认证的端点要求将您的 API 密钥设置为 x-api-key 请求头。

import httpclient
import fastcomments
import fastcomments/apis/api_default
import fastcomments/models/model_comment_data

let client = newHttpClient()
client.headers["x-api-key"] = "your-api-key"

# 发起已认证的 API 调用
let (response, httpResponse) = getComments(
  httpClient = client,
  tenantId = "your-tenant-id",
  page = 0,
  limit = 0,
  skip = 0,
  asTree = false,
  skipChildren = 0,
  limitChildren = 0,
  maxTreeDepth = 0,
  urlId = "your-url-id",
  userId = "",
  anonUserId = "",
  contextUserId = "",
  hashTag = "",
  parentId = "",
  direction = SortDirections.DESC
)

if response.isSome:
  let resp = response.get()
  if resp.comments.isSome:
    echo "Found ", resp.comments.get().len, " comments"

使用公共 APIs (PublicAPI)

公共端点不需要认证:

import httpclient
import fastcomments
import fastcomments/apis/api_public

let client = newHttpClient()

# 发起公共 API 调用
let (response, httpResponse) = getCommentsPublic(
  httpClient = client,
  tenantId = "your-tenant-id",
  urlId = "your-url-id",
  page = 0,
  direction = SortDirections.DESC,
  sso = "",
  skip = 0,
  skipChildren = 0,
  limit = 0,
  limitChildren = 0,
  countChildren = false,
  fetchPageForCommentId = "",
  includeConfig = false,
  countAll = false,
  includei10n = false,
  locale = "",
  modules = "",
  isCrawler = false,
  includeNotificationCount = false,
  asTree = false,
  maxTreeDepth = 0,
  useFullTranslationIds = false,
  parentId = "",
  searchText = "",
  hashTags = @[],
  userId = "",
  customConfigStr = "",
  afterCommentId = "",
  beforeCommentId = ""
)

if response.isSome:
  let resp = response.get()
  if resp.comments.isSome:
    echo "Found ", resp.comments.get().len, " comments"

常见问题

  1. 401 authentication error: 在发出 DefaultAPI 请求之前,请确保在您的 HttpClient 上设置了 x-api-key 请求头:client.headers["x-api-key"] = "your-api-key"
  2. Wrong API class: 对于服务器端的认证请求,请使用 api_default;对于客户端/公共请求,请使用 api_public

调用 API Internal Link


此 SDK 中的所有 API 方法都返回元组 (Option[ResponseType], Response)。第一个元素在成功时包含解析后的响应,第二个元素是原始的 HTTP 响应。

示例:获取评论

import httpclient
import options
import fastcomments
import fastcomments/apis/api_default

let client = newHttpClient()
client.headers["x-api-key"] = "your-api-key"

let (response, httpResponse) = getComments(
  httpClient = client,
  tenantId = "your-tenant-id",
  page = 0,
  limit = 0,
  skip = 0,
  asTree = false,
  skipChildren = 0,
  limitChildren = 0,
  maxTreeDepth = 0,
  urlId = "your-url-id",
  userId = "",
  anonUserId = "",
  contextUserId = "",
  hashTag = "",
  parentId = "",
  direction = SortDirections.DESC
)

if httpResponse.code == Http200:
  if response.isSome:
    let resp = response.get()
    if resp.comments.isSome:
      echo "Found ", resp.comments.get().len, " comments"

备注 Internal Link

广播 ID

在某些 API 调用中,你会看到需要传入 broadcastId。当你接收到事件时,会返回这个 ID,这样如果你计划在客户端乐观地应用更改,就可以据此忽略该事件 (你可能会想这样做,因为它能提供最佳体验)。在此传入一个 UUID。该 ID 应足够唯一,在一次浏览器会话中不会出现两次。

SSO (单点登录)

有关 SSO 示例,请见下文。

SSO 用法 Internal Link

简单 SSO

import fastcomments/sso

let user = newSimpleSSOUserData(
  userId = "user-123",
  email = "user@example.com",
  avatar = "https://example.com/avatar.jpg"
)
let sso = newSimple(simpleUserData = user)
let token = sso.createToken()

echo "SSO Token: ", token

安全 SSO

import fastcomments/sso

let user = newSecureSSOUserData(
  userId = "user-123",
  email = "user@example.com",
  username = "johndoe",
  avatar = "https://example.com/avatar.jpg"
)

let apiKey = "your-api-key"
let sso = newSecure(apiKey = apiKey, secureUserData = user)
let token = sso.createToken()

echo "Secure SSO Token: ", token

聚合 Internal Link

参数

名称 类型 必需 描述
tenantId string
aggregationRequest AggregationRequest
parentTenantId string
includeStats bool

响应

返回:Option[AggregationResponse]

示例

aggregate 示例
Copy Copy
1
2let (response, httpResponse) = client.aggregate(
3 tenantId = "my-tenant-123",
4 aggregationRequest = AggregationRequest(),
5 parentTenantId = "",
6 includeStats = false
7)
8if response.isSome:
9 let aggregation = response.get()
10 echo $aggregation
11

获取审计日志 Internal Link

参数

Name Type Required Description
tenantId string
limit float64
skip float64
order SORTDIR
after float64
before float64

响应

返回:Option[GetAuditLogs_200_response]

示例

getAuditLogs 示例
Copy Copy
1
2let (response, httpResponse) = client.getAuditLogs(
3 tenantId = "my-tenant-123",
4 limit = 100.0,
5 skip = 0.0,
6 order = SORTDIR(0),
7 after = 0.0,
8 before = 0.0
9)
10if response.isSome:
11 let audit = response.get()
12 echo audit
13

在公开评论中屏蔽 Internal Link

参数

名称 类型 必需 描述
tenantId string
commentId string
publicBlockFromCommentParams PublicBlockFromCommentParams
sso string

响应

返回: Option[BlockFromCommentPublic_200_response]

示例

blockFromCommentPublic 示例
Copy Copy
1
2let (response, httpResponse) = client.blockFromCommentPublic(
3 tenantId = "my-tenant-123",
4 commentId = "comment-987654",
5 publicBlockFromCommentParams = PublicBlockFromCommentParams(),
6 sso = "sso-token-7a9b3c"
7)
8if response.isSome:
9 let blockResult = response.get()
10 discard blockResult
11

取消公开评论屏蔽 Internal Link

参数

名称 类型 必填 描述
tenantId string
commentId string
publicBlockFromCommentParams PublicBlockFromCommentParams
sso string

响应

返回:Option[UnBlockCommentPublic_200_response]

示例

unBlockCommentPublic 示例
Copy Copy
1
2let (response, httpResponse) = client.unBlockCommentPublic(
3 tenantId = "news-site-456",
4 commentId = "comment-abc123",
5 publicBlockFromCommentParams = PublicBlockFromCommentParams{},
6 sso = ""
7)
8if response.isSome:
9 let unblocked = response.get()
10 discard unblocked
11else:
12 discard httpResponse
13

检查被屏蔽的评论 Internal Link

参数

Name Type Required Description
tenantId string
commentIds string
sso string

响应

返回: Option[CheckedCommentsForBlocked_200_response]

示例

checkedCommentsForBlocked 示例
Copy Copy
1
2let (response, httpResponse) = client.checkedCommentsForBlocked(
3 tenantId = "my-tenant-123",
4 commentIds = "",
5 sso = ""
6)
7if response.isSome:
8 let checked = response.get()
9 echo "Checked comments received for tenant my-tenant-123"
10 echo checked
11else:
12 echo "No checked comments (HTTP status: ", $httpResponse.statusCode, ")"
13

从评论中屏蔽用户 Internal Link

参数

Name Type Required Description
tenantId string Yes
id string No
blockFromCommentParams BlockFromCommentParams No
userId string No
anonUserId string No

响应

返回: Option[BlockFromCommentPublic_200_response]

示例

blockUserFromComment 示例
Copy Copy
1
2let (response, httpResponse) = client.blockUserFromComment(
3 tenantId = "my-tenant-123",
4 id = "comment-98765",
5 blockFromCommentParams = BlockFromCommentParams(),
6 userId = "user-456",
7 anonUserId = ""
8)
9if response.isSome:
10 let blocked = response.get()
11 echo "Block confirmed for tenant:", " my-tenant-123"
12

创建公开评论 Internal Link

参数

名称 类型 必填 描述
tenantId string
urlId string
broadcastId string
commentData CommentData
sessionId string
sso string

响应

返回: Option[CreateCommentPublic_200_response]

示例

createCommentPublic 示例
Copy Copy
1
2let (response, httpResponse) = client.createCommentPublic(
3 tenantId = "my-tenant-123",
4 urlId = "news/breaking-elections-2025",
5 broadcastId = "broadcast-456",
6 commentData = CommentData(
7 content = "Great reporting — thanks for the clear analysis!",
8 authorName = "Jane Doe",
9 authorEmail = "jane.doe@example.com",
10 isVerified = false,
11 tags = @["politics", "analysis"]
12 ),
13 sessionId = "session-789",
14 sso = "sso-token-abc123"
15)
16
17if response.isSome:
18 let created = response.get()
19 echo "Created comment:", created
20else:
21 echo "No comment returned, HTTP status: ", httpResponse.status`
22

删除评论 Internal Link

参数

名称 类型 必需 描述
tenantId string
id string
contextUserId string
isLive bool

响应

返回: Option[DeleteComment_200_response]

示例

deleteComment 示例
Copy Copy
1
2let (response, httpResponse) = client.deleteComment(tenantId = "my-tenant-123", id = "cmt-456abc", contextUserId = "user-789", isLive = true)
3if response.isSome:
4 let deleted = response.get()
5 discard deleted
6 echo "Delete succeeded"
7else:
8 echo "No delete response"
9

删除公开评论 Internal Link

参数

名称 类型 必填 描述
tenantId string
commentId string
broadcastId string
editKey string
sso string

响应

返回: Option[DeleteCommentPublic_200_response]

示例

deleteCommentPublic 示例
Copy Copy
1
2let (response, httpResponse) = client.deleteCommentPublic(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-987654",
5 broadcastId = "",
6 editKey = "",
7 sso = ""
8)
9if response.isSome:
10 let deleted = response.get()
11 echo "Delete succeeded"
12 echo "HTTP status: ", httpResponse.status
13else:
14 echo "Delete failed, HTTP status: ", httpResponse.status
15

删除评论投票 Internal Link

参数

名称 类型 必填 描述
tenantId string
commentId string
voteId string
urlId string
broadcastId string
editKey string
sso string

响应

返回: Option[DeleteCommentVote_200_response]

示例

deleteCommentVote 示例
Copy Copy
1
2let (response, httpResponse) = client.deleteCommentVote(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-789",
5 voteId = "",
6 urlId = "news/breaking-story-2025",
7 broadcastId = "",
8 editKey = "",
9 sso = ""
10)
11if response.isSome:
12 let deleted = response.get()
13 discard deleted
14 echo "Vote removed for comment cmt-789"
15else:
16 echo "No response body returned"
17

举报评论 Internal Link

参数

名称 类型 必填 描述
tenantId string
id string
userId string
anonUserId string

响应

返回: Option[FlagComment_200_response]

示例

flagComment 示例
Copy Copy
1
2let (response, httpResponse) = client.flagComment(tenantId = "my-tenant-123", id = "cmt-98765", userId = "user-8342", anonUserId = "")
3if response.isSome:
4 let flagged = response.get()
5 echo "Flagged comment response: ", flagged
6else:
7 echo "Flag comment failed: ", httpResponse
8

获取评论 Internal Link

参数

名称 类型 必需 描述
tenantId string
id string

响应

返回: Option[GetComment_200_response]

示例

getComment 示例
Copy Copy
1
2let (response, httpResponse) = client.getComment(tenantId = "my-tenant-123", id = "cmt-987654321")
3if response.isSome:
4 let comment = response.get()
5 echo comment
6

获取评论列表 Internal Link

参数

名称 类型 必需 描述
tenantId string
page int
limit int
skip int
asTree bool
skipChildren int
limitChildren int
maxTreeDepth int
urlId string
userId string
anonUserId string
contextUserId string
hashTag string
parentId string
direction SortDirections

响应

返回: Option[GetComments_200_response]

示例

getComments 示例
Copy Copy
1
2let (response, httpResponse) = client.getComments(
3 tenantId = "my-tenant-123",
4 page = 1,
5 limit = 20,
6 skip = 0,
7 asTree = false,
8 skipChildren = 0,
9 limitChildren = 0,
10 maxTreeDepth = 0,
11 urlId = "news/2025-election-night",
12 userId = "",
13 anonUserId = "",
14 contextUserId = "",
15 hashTag = "",
16 parentId = "",
17 direction = SortDirections.Desc
18)
19
20if response.isSome:
21 let comments = response.get()
22 echo "Status: ", httpResponse.status, " Comments: ", comments
23

获取公开评论 Internal Link

参数

Name Type Required Description
tenantId string
urlId string
page int
direction SortDirections
sso string
skip int
skipChildren int
limit int
limitChildren int
countChildren bool
fetchPageForCommentId string
includeConfig bool
countAll bool
includei10n bool
locale string
modules string
isCrawler bool
includeNotificationCount bool
asTree bool
maxTreeDepth int
useFullTranslationIds bool
parentId string
searchText string
hashTags seq[string]
userId string
customConfigStr string
afterCommentId string
beforeCommentId string

响应

返回:Option[GetCommentsPublic_200_response]

示例

getCommentsPublic 示例
Copy Copy
1
2let (response, httpResponse) = client.getCommentsPublic(
3 tenantId = "my-tenant-123",
4 urlId = "news/world/article-2025",
5 page = 1,
6 direction = SortDirections(0),
7 sso = "sso_token_abc",
8 skip = 0,
9 skipChildren = 0,
10 limit = 20,
11 limitChildren = 5,
12 countChildren = false,
13 fetchPageForCommentId = "cmt_789",
14 includeConfig = true,
15 countAll = false,
16 includei10n = true,
17 locale = "en-US",
18 modules = "reactions,moderation",
19 isCrawler = false,
20 includeNotificationCount = true,
21 asTree = true,
22 maxTreeDepth = 3,
23 useFullTranslationIds = false,
24 parentId = "parent_123",
25 searchText = "openAI integration",
26 hashTags = @["ai", "technology"],
27 userId = "user_456",
28 customConfigStr = "{}",
29 afterCommentId = "cmt_100",
30 beforeCommentId = ""
31)
32
33if response.isSome:
34 let comments = response.get()
35 discard comments
36else:
37 discard httpResponse
38

获取评论文本 Internal Link

参数

名称 类型 必需 描述
tenantId string
commentId string
editKey string
sso string

响应

返回: Option[GetCommentText_200_response]

示例

getCommentText 示例
Copy Copy
1
2let (response, httpResponse) = client.getCommentText(tenantId = "my-tenant-123", commentId = "cmt-456789", editKey = "", sso = "")
3
4if response.isSome:
5 let comment = response.get()
6 echo "Comment text: ", $comment
7else:
8 echo "No comment returned"
9

获取评论投票用户名称 Internal Link


参数

名称 类型 必需 描述
tenantId string
commentId string
dir int
sso string

响应

返回:Option[GetCommentVoteUserNames_200_response]

示例

getCommentVoteUserNames 示例
Copy Copy
1
2let (response, httpResponse) = client.getCommentVoteUserNames(tenantId = "my-tenant-123", commentId = "c_987654321", dir = 0, sso = "")
3if response.isSome:
4 let res = response.get()
5 for userName in res.userNames:
6 echo userName
7

锁定评论 Internal Link

参数

Name Type Required Description
tenantId string
commentId string
broadcastId string
sso string

响应

返回:Option[LockComment_200_response]

示例

lockComment 示例
Copy Copy
1
2let (response, httpResponse) = client.lockComment(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-98765",
5 broadcastId = "",
6 sso = ""
7)
8if response.isSome:
9 let lockResp = response.get()
10 discard lockResp
11

置顶评论 Internal Link

参数

Name Type Required Description
tenantId string
commentId string
broadcastId string
sso string

响应

返回: Option[PinComment_200_response]

示例

pinComment 示例
Copy Copy
1
2let (response, httpResponse) = client.pinComment(tenantId = "my-tenant-123", commentId = "cmt-98765", broadcastId = "", sso = "")
3if response.isSome:
4 let pinned = response.get()
5 echo "Pinned comment response received"
6else:
7 echo "No pin response"
8

保存评论 Internal Link

参数

名称 类型 必需 描述
tenantId string
createCommentParams CreateCommentParams
isLive bool
doSpamCheck bool
sendEmails bool
populateNotifications bool

响应

返回:Option[SaveComment_200_response]

示例

saveComment 示例
Copy Copy
1
2let (response, httpResponse) = client.saveComment(
3 tenantId = "my-tenant-123",
4 createCommentParams = CreateCommentParams(
5 content = "This article was really helpful, thanks!",
6 urlId = "news/2025-11/ai-regulations",
7 authorName = "Jane Doe",
8 authorEmail = "jane.doe@example.com",
9 tags = @["policy", "analysis"]
10 ),
11 isLive = true,
12 doSpamCheck = true,
13 sendEmails = true,
14 populateNotifications = false
15)
16
17if response.isSome:
18 let saved = response.get()
19 discard saved
20

批量保存评论 Internal Link

参数

Name Type Required Description
tenantId string
createCommentParams seq[CreateCommentParams]
isLive bool
doSpamCheck bool
sendEmails bool
populateNotifications bool): (Option[seq[SaveComment_200_response]]
id string
unBlockFromCommentParams UnBlockFromCommentParams
userId string
anonUserId string

响应

返回: Option[UnBlockCommentPublic_200_response]

示例

saveCommentsBulk 示例
Copy Copy
1
2let (response, httpResponse) = client.saveCommentsBulk(
3 tenantId = "my-tenant-123",
4 createCommentParams = @[],
5 isLive = true,
6 doSpamCheck = true,
7 sendEmails = false,
8 populateNotifications = true,
9 id = "batch-20251122",
10 unBlockFromCommentParams = UnBlockFromCommentParams(),
11 userId = "user-456",
12 anonUserId = "anon-789"
13)
14if response.isSome:
15 let unblocked = response.get()
16 echo "Unblocked response received: ", unblocked
17else:
18 echo "No unblocked response, httpResponse: ", $httpResponse
19

设置评论文本 Internal Link

参数

名称 类型 必需 描述
tenantId string
commentId string
broadcastId string
commentTextUpdateRequest CommentTextUpdateRequest
editKey string
sso string

响应

返回: Option[SetCommentText_200_response]

示例

setCommentText 示例
Copy Copy
1
2let (response, httpResponse) = client.setCommentText(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-7890",
5 broadcastId = "broadcast-456",
6 commentTextUpdateRequest = CommentTextUpdateRequest(text = "Updated comment text to fix typos and add clarity."),
7 editKey = "edit-key-abc123",
8 sso = "sso-token-xyz"
9)
10
11if response.isSome:
12 let updated = response.get()
13

取消从评论中屏蔽用户 Internal Link

参数

名称 类型 必需 描述
tenantId string
id string
unBlockFromCommentParams UnBlockFromCommentParams
userId string
anonUserId string

响应

返回: Option[UnBlockCommentPublic_200_response]

示例

unBlockUserFromComment 示例
Copy Copy
1
2let (response, httpResponse) = client.unBlockUserFromComment(
3 tenantId = "news-site-001",
4 id = "cmt-8fj3k9",
5 unBlockFromCommentParams = UnBlockFromCommentParams(),
6 userId = "user-98765",
7 anonUserId = ""
8)
9
10if response.isSome:
11 let unblocked = response.get()
12 discard unblocked
13

取消举报评论 Internal Link

参数

Name Type Required Description
tenantId string Yes
id string No
userId string No
anonUserId string No

响应

返回: Option[FlagComment_200_response]

示例

unFlagComment 示例
Copy Copy
1
2let (response, httpResponse) = client.unFlagComment(
3 tenantId = "my-tenant-123",
4 id = "flag-789",
5 userId = "",
6 anonUserId = ""
7)
8
9if response.isSome:
10 let flagResponse = response.get()
11 echo "Comment unflagged successfully"
12

解锁评论 Internal Link

参数

Name Type Required Description
tenantId string
commentId string
broadcastId string
sso string

响应

返回:Option[LockComment_200_response]

示例

unLockComment 示例
Copy Copy
1
2let (response, httpResponse) = client.unLockComment(tenantId = "my-tenant-123", commentId = "cmt-7f9a3b2d", broadcastId = "", sso = "")
3if response.isSome:
4 let lockResult = response.get()
5 echo "Unlock response: ", $lockResult
6else:
7 echo "Unlock failed, HTTP response: ", $httpResponse
8

取消置顶评论 Internal Link

参数

名称 类型 必需 描述
tenantId string
commentId string
broadcastId string
sso string

响应

返回: Option[PinComment_200_response]

示例

unPinComment 示例
Copy Copy
1
2let (response, httpResponse) = client.unPinComment(tenantId = "my-tenant-123", commentId = "cmt-9f8b7a6", broadcastId = "", sso = "")
3if response.isSome:
4 let pinResp = response.get()
5 echo "Unpinned comment successfully"
6else:
7 echo "Failed to unpin comment; HTTP response: ", httpResponse
8

更新评论 Internal Link

参数

名称 类型 必填 描述
tenantId string
id string
updatableCommentParams UpdatableCommentParams
contextUserId string
doSpamCheck bool
isLive bool

响应

返回:Option[FlagCommentPublic_200_response]

示例

updateComment 示例
Copy Copy
1
2let updatableCommentParams = UpdatableCommentParams(content: "Fixed a typo in the second paragraph", tags: @["article-edit", "typo"], isApproved: true)
3let (response, httpResponse) = client.updateComment(
4 tenantId = "my-tenant-123",
5 id = "comment-456",
6 updatableCommentParams = updatableCommentParams,
7 contextUserId = "user-789",
8 doSpamCheck = true,
9 isLive = true
10)
11if response.isSome:
12 let flagResp = response.get()
13 discard flagResp
14

评论投票 Internal Link

参数

名称 类型 必需 描述
tenantId string
commentId string
urlId string
broadcastId string
voteBodyParams VoteBodyParams
sessionId string
sso string

响应

返回: Option[VoteComment_200_response]

示例

voteComment 示例
Copy Copy
1
2let voteBody = VoteBodyParams()
3let (response, httpResponse) = client.voteComment(
4 tenantId = "my-tenant-123",
5 commentId = "cmt-456789",
6 urlId = "news/2025/fastcomments-integration",
7 broadcastId = "",
8 voteBodyParams = voteBody,
9 sessionId = "",
10 sso = ""
11)
12if response.isSome:
13 let voteResp = response.get()
14 echo "Vote recorded for comment cmt-456789"
15else:
16 echo "Failed to record vote"
17

添加域配置 Internal Link

参数

名称 类型 必需 描述
tenantId string
addDomainConfigParams AddDomainConfigParams

响应

返回: Option[AddDomainConfig_200_response]

示例

addDomainConfig 示例
Copy Copy
1
2let (response, httpResponse) = client.addDomainConfig(tenantId = "my-tenant-123", addDomainConfigParams = AddDomainConfigParams())
3if response.isSome:
4 let domainConfig = response.get()
5 discard domainConfig
6else:
7 discard httpResponse
8

删除域配置 Internal Link

参数

名称 类型 必需 描述
tenantId string
domain string

响应

返回: Option[DeleteDomainConfig_200_response]

示例

deleteDomainConfig 示例
Copy Copy
1
2let (response, httpResponse) = client.deleteDomainConfig(tenantId = "my-tenant-123", domain = "news.example.com")
3if response.isSome:
4 let result = response.get()
5 echo "Deleted domain config result: ", result
6else:
7 echo "No response body, HTTP status: ", $httpResponse.status
8

获取域配置 Internal Link

参数

名称 类型 必填 说明
tenantId string
domain string

响应

返回: Option[GetDomainConfig_200_response]

示例

getDomainConfig 示例
Copy Copy
1
2let (response, httpResponse) = client.getDomainConfig(tenantId = "my-tenant-123", domain = "news.example.com")
3if response.isSome:
4 let domainConfig = response.get()
5 echo "Loaded domain config for tenant my-tenant-123:", $domainConfig
6else:
7 echo "No domain config; HTTP status:", $httpResponse.status
8

获取域配置列表 Internal Link


参数

Name Type 必填 描述
tenantId string

响应

返回: Option[GetDomainConfigs_200_response]

示例

getDomainConfigs 示例
Copy Copy
1
2let (response, httpResponse) = client.getDomainConfigs(tenantId = "my-tenant-123")
3if response.isSome:
4 let domainConfigs = response.get()
5 echo "Domain configs received:"
6 echo domainConfigs
7else:
8 echo "Failed to retrieve domain configs."
9 echo httpResponse
10

部分更新域配置 Internal Link

参数

Name Type Required Description
tenantId string
domainToUpdate string
patchDomainConfigParams PatchDomainConfigParams

响应

返回: Option[GetDomainConfig_200_response]

示例

patchDomainConfig 示例
Copy Copy
1
2let (response, httpResponse) = client.patchDomainConfig(
3 tenantId = "my-tenant-123",
4 domainToUpdate = "news/article-crowdsourcing",
5 patchDomainConfigParams = PatchDomainConfigParams(
6 allowedOrigins = @["https://www.news-site.com"],
7 moderated = true,
8 maxCommentLength = 1000
9 )
10)
11
12if response.isSome:
13 let domainConfig = response.get()
14 echo "Updated domain config received"
15else:
16 echo "No domain config returned"
17

替换域配置 Internal Link

参数

名称 类型 必填 描述
tenantId string
domainToUpdate string
updateDomainConfigParams UpdateDomainConfigParams

响应

返回:Option[GetDomainConfig_200_response]

示例

putDomainConfig 示例
Copy Copy
1
2let updateParams = UpdateDomainConfigParams(
3 allowAnonymous = false,
4 moderationEnabled = true,
5 allowedOrigins = @["https://news.example.com"],
6 maxCommentLength = 2000
7)
8
9let (response, httpResponse) = client.putDomainConfig(
10 tenantId = "my-tenant-123",
11 domainToUpdate = "news/example-article",
12 updateDomainConfigParams = updateParams
13)
14
15if response.isSome:
16 let domainCfg = response.get()
17 discard domainCfg
18

创建邮件模板 Internal Link

参数

名称 类型 必填 描述
tenantId string
createEmailTemplateBody CreateEmailTemplateBody

响应

返回:Option[CreateEmailTemplate_200_response]

示例

createEmailTemplate 示例
Copy Copy
1
2let (response, httpResponse) = client.createEmailTemplate(tenantId = "my-tenant-123", createEmailTemplateBody = CreateEmailTemplateBody(name = "Weekly Newsletter", subject = "Weekly updates from OurSite", fromName = "OurSite Team", fromEmail = "newsletter@oursite.com", bodyHtml = "<h1>Highlights</h1><p>Top stories this week...</p>", enabled = true, tags = @["newsletter", "weekly"]))
3if response.isSome:
4 let template = response.get()
5 discard template
6

删除邮件模板 Internal Link

参数

Name Type Required Description
tenantId string
id string

响应

返回: Option[FlagCommentPublic_200_response]

示例

deleteEmailTemplate 示例
Copy Copy
1
2let (response, httpResponse) = client.deleteEmailTemplate(tenantId = "my-tenant-123", id = "tmpl-456")
3if response.isSome:
4 let deleted = response.get()
5 echo deleted
6

删除邮件模板渲染错误 Internal Link

参数

名称 类型 必填 描述
tenantId string
id string
errorId string

响应

返回: Option[FlagCommentPublic_200_response]

示例

deleteEmailTemplateRenderError 示例
Copy Copy
1
2let (response, httpResponse) = client.deleteEmailTemplateRenderError(
3 tenantId = "my-tenant-123",
4 id = "welcome-email-template",
5 errorId = "render-error-2026"
6)
7if response.isSome:
8 let flagResp = response.get()
9 discard flagResp
10

获取邮件模板 Internal Link

参数

名称 类型 必填 描述
tenantId string
id string

响应

返回: Option[GetEmailTemplate_200_response]

示例

getEmailTemplate 示例
Copy Copy
1
2let (response, httpResponse) = client.getEmailTemplate(tenantId = "my-tenant-123", id = "welcome-email-01")
3if response.isSome:
4 let template = response.get()
5 echo "Template ID: ", template.id
6 echo "Subject: ", template.subject
7 echo "Body: ", template.body
8

获取邮件模板定义 Internal Link

参数

名称 类型 必需 描述
tenantId string

响应

返回: Option[GetEmailTemplateDefinitions_200_response]

示例

getEmailTemplateDefinitions 示例
Copy Copy
1
2let (response, httpResponse) = client.getEmailTemplateDefinitions(tenantId = "my-tenant-123")
3if response.isSome:
4 let defs = response.get()
5 echo "Received email template definitions for tenant my-tenant-123"
6else:
7 echo "No template definitions returned; HTTP status: ", httpResponse.status
8

获取邮件模板渲染错误 Internal Link

参数

名称 类型 必需 描述
tenantId string
id string
skip float64

响应

返回: Option[GetEmailTemplateRenderErrors_200_response]

示例

getEmailTemplateRenderErrors 示例
Copy Copy
1
2let (response, httpResponse) = client.getEmailTemplateRenderErrors(tenantId = "my-tenant-123", id = "welcome-email-template-001", skip = 0.0)
3if response.isSome:
4 let result = response.get()
5 echo "Render errors:", result
6else:
7 echo "No render errors or request failed. HTTP status:", httpResponse.status
8

获取邮件模板列表 Internal Link

参数

名称 类型 必需 描述
tenantId string
skip float64

响应

返回: Option[GetEmailTemplates_200_response]

示例

getEmailTemplates 示例
Copy Copy
1
2let (response, httpResponse) = client.getEmailTemplates(tenantId = "my-tenant-123", skip = 0.0)
3if response.isSome:
4 let templates = response.get()
5 echo templates
6else:
7 echo "No templates returned"
8

渲染邮件模板 Internal Link

参数

名称 类型 必填 描述
tenantId string
renderEmailTemplateBody RenderEmailTemplateBody
locale string

响应

返回:Option[RenderEmailTemplate_200_response]

示例

renderEmailTemplate 示例
Copy Copy
1
2let renderBody = RenderEmailTemplateBody(templateId: "comment-notification", subject: "New comment on your article", variables: @["John Doe", "news/global-climate"])
3let (response, httpResponse) = client.renderEmailTemplate(tenantId = "my-tenant-123", renderEmailTemplateBody = renderBody, locale = "en-US")
4if response.isSome:
5 let rendered = response.get()
6 echo rendered
7

更新邮件模板 Internal Link

参数

Name Type Required Description
tenantId string
id string
updateEmailTemplateBody UpdateEmailTemplateBody

响应

返回: Option[FlagCommentPublic_200_response]

示例

updateEmailTemplate 示例
Copy Copy
1
2let updateBody = UpdateEmailTemplateBody(
3 name = "Welcome Email",
4 subject = "Welcome to Example News",
5 html = "<p>Hi {name}, welcome to Example News.</p>",
6 isActive = true,
7 tags = @["onboarding", "welcome"]
8)
9
10let (response, httpResponse) = client.updateEmailTemplate(
11 tenantId = "my-tenant-123",
12 id = "welcome-template-2026",
13 updateEmailTemplateBody = updateBody
14)
15
16if response.isSome:
17 let template = response.get()
18 discard template
19

获取事件日志 Internal Link

参数

Name Type Required Description
tenantId string
urlId string
userIdWS string
startTime int64
endTime int64

响应

返回: Option[GetEventLog_200_response]

示例

getEventLog 示例
Copy Copy
1
2let (response, httpResponse) = client.getEventLog(
3 tenantId = "my-tenant-123",
4 urlId = "news/politics/election-2024",
5 userIdWS = "",
6 startTime = 0'i64,
7 endTime = 0'i64
8)
9if response.isSome:
10 let eventLog = response.get()
11 echo "Received event log for ", "my-tenant-123"
12else:
13 echo "No event log returned. HTTP status: ", $httpResponse.status
14

获取全局事件日志 Internal Link

参数

名称 类型 必需 描述
tenantId string
urlId string
userIdWS string
startTime int64
endTime int64

响应

返回: Option[GetEventLog_200_response]

示例

getGlobalEventLog 示例
Copy Copy
1
2let (response, httpResponse) = client.getGlobalEventLog(
3 tenantId = "my-tenant-123",
4 urlId = "news/article-title",
5 userIdWS = "",
6 startTime = int64(0),
7 endTime = int64(0)
8)
9if response.isSome:
10 let eventLog = response.get()
11 echo eventLog
12else:
13 echo "No event log returned"
14

创建动态帖子 Internal Link

参数

名称 类型 必需 描述
tenantId string Yes
createFeedPostParams CreateFeedPostParams No
broadcastId string No
isLive bool No
doSpamCheck bool No
skipDupCheck bool No

响应

返回: Option[CreateFeedPost_200_response]

示例

createFeedPost 示例
Copy Copy
1
2let createParams = CreateFeedPostParams(
3 content = "We're rolling out realtime comments to all users!",
4 title = "Realtime Comments Rollout",
5 url = "news/realtime-comments-rollout-2025",
6 authorId = "prod-team",
7 tags = @["release", "comments"]
8)
9
10let (response, httpResponse) = client.createFeedPost(
11 tenantId = "my-tenant-123",
12 createFeedPostParams = createParams,
13 broadcastId = "broadcast-2025-11",
14 isLive = true,
15 doSpamCheck = true,
16 skipDupCheck = false
17)
18
19if response.isSome:
20 let created = response.get()
21 echo "Feed post created, id: ", $created.id
22else:
23 echo "Failed to create feed post, HTTP status: ", $httpResponse.statusCode
24

创建公开动态帖子 Internal Link

参数

Name Type Required Description
tenantId string
createFeedPostParams CreateFeedPostParams
broadcastId string
sso string

响应

返回:Option[CreateFeedPostPublic_200_response]

示例

createFeedPostPublic 示例
Copy Copy
1
2let (response, httpResponse) = client.createFeedPostPublic(
3 tenantId = "my-tenant-123",
4 createFeedPostParams = CreateFeedPostParams(
5 title = "Product Launch Announcement",
6 content = "We just launched a new commenting feature to improve engagement.",
7 authorId = "team-product",
8 url = "news/product-launch",
9 tags = @["launch", "comments"],
10 isFeatured = false
11 ),
12 broadcastId = "broadcast-009",
13 sso = ""
14)
15if response.isSome:
16 let created = response.get()
17 discard created
18

删除公开动态帖子 Internal Link

参数

名称 类型 必需 描述
tenantId string
postId string
broadcastId string
sso string

响应

返回: Option[DeleteFeedPostPublic_200_response]

示例

deleteFeedPostPublic 示例
Copy Copy
1
2let (response, httpResponse) = client.deleteFeedPostPublic(
3 tenantId = "my-tenant-123",
4 postId = "post-456",
5 broadcastId = "broadcast-789",
6 sso = ""
7)
8if response.isSome:
9 let result = response.get()
10

获取动态帖子 Internal Link

参数

Name Type Required Description
tenantId string
afterId string
limit int
tags seq[string]

响应

返回: Option[GetFeedPosts_200_response]

示例

getFeedPosts 示例
Copy Copy
1
2let (response, httpResponse) = client.getFeedPosts(tenantId = "my-tenant-123", afterId = "post_abc123", limit = 20, tags = @["news", "sports"])
3if response.isSome:
4 let feed = response.get()
5 echo "Feed posts retrieved for tenant my-tenant-123"
6else:
7 echo "No feed posts returned, HTTP status: ", $httpResponse.status
8

获取公开动态帖子 Internal Link

参数

Name Type Required Description
tenantId string
afterId string
limit int
tags seq[string]
sso string
isCrawler bool
includeUserInfo bool

响应

返回: Option[GetFeedPostsPublic_200_response]

示例

getFeedPostsPublic 示例
Copy Copy
1
2let (response, httpResponse) = client.getFeedPostsPublic(
3 tenantId = "my-tenant-123",
4 afterId = "",
5 limit = 0,
6 tags = @[],
7 sso = "",
8 isCrawler = false,
9 includeUserInfo = false
10)
11
12if response.isSome:
13 let feed = response.get()
14 echo feed
15

获取动态帖子统计 Internal Link

参数

名称 类型 必需 描述
tenantId string
postIds seq[string]
sso string

响应

返回: Option[GetFeedPostsStats_200_response]

示例

getFeedPostsStats 示例
Copy Copy
1
2let (response, httpResponse) = client.getFeedPostsStats(
3 tenantId = "my-tenant-123",
4 postIds = @["news/article-2025-11-22", "opinion/market-trends-452"],
5 sso = ""
6)
7
8if response.isSome:
9 let stats = response.get()
10 discard stats
11

获取用户公开反应 Internal Link

参数

名称 类型 必需 描述
tenantId string
postIds seq[string]
sso string

响应

返回: Option[GetUserReactsPublic_200_response]

示例

getUserReactsPublic 示例
Copy Copy
1
2let (response, httpResponse) = client.getUserReactsPublic(tenantId = "my-tenant-123", postIds = @[], sso = "")
3if response.isSome:
4 let reacts = response.get()
5 discard reacts
6

对公开动态帖子反应 Internal Link

参数

Name Type Required Description
tenantId string
postId string
reactBodyParams ReactBodyParams
isUndo bool
broadcastId string
sso string

响应

返回:Option[ReactFeedPostPublic_200_response]

示例

reactFeedPostPublic 示例
Copy Copy
1
2let (response, httpResponse) = client.reactFeedPostPublic(
3 tenantId = "my-tenant-123",
4 postId = "news/article-title",
5 reactBodyParams = ReactBodyParams(),
6 isUndo = false,
7 broadcastId = "broadcast-456",
8 sso = ""
9)
10if response.isSome:
11 let result = response.get()
12 echo "Reaction result: ", result
13else:
14 echo "Reaction failed, HTTP response: ", httpResponse
15

更新动态帖子 Internal Link

参数

Name Type Required Description
tenantId string
id string
feedPost FeedPost

响应

返回: Option[FlagCommentPublic_200_response]

示例

updateFeedPost 示例
Copy Copy
1
2let feedPost = FeedPost(
3 title: "Local Election Results",
4 content: "Updated vote counts across precincts",
5 tags: @["politics", "local"],
6 authorId: "journalist-32",
7 isPublished: true,
8 views: 124
9)
10
11let (response, httpResponse) = client.updateFeedPost(tenantId = "my-tenant-123", id = "post-456", feedPost = feedPost)
12
13if response.isSome:
14 let flagResp = response.get()
15 discard flagResp
16

更新公开动态帖子 Internal Link

参数

名称 类型 必需 描述
tenantId string
postId string
updateFeedPostParams UpdateFeedPostParams
broadcastId string
sso string

响应

返回: Option[CreateFeedPostPublic_200_response]

示例

updateFeedPostPublic 示例
Copy Copy
1
2var updateParams: UpdateFeedPostParams = UpdateFeedPostParams(
3 title = "Breaking: Service Update",
4 content = "We improved feed performance and UX for all users.",
5 tags = @["performance", "release"],
6 isPublic = true
7)
8
9let (response, httpResponse) = client.updateFeedPostPublic(
10 tenantId = "my-tenant-123",
11 postId = "post-456",
12 updateFeedPostParams = updateParams,
13 broadcastId = "broadcast-789",
14 sso = "sso-token-abc123"
15)
16
17if response.isSome:
18 let post = response.get()
19 echo "Updated post title: ", post.title
20 echo "HTTP status: ", httpResponse.status
21

公开举报评论 Internal Link

参数

名称 类型 必填 描述
tenantId string
commentId string
isFlagged bool
sso string

响应

返回: Option[FlagCommentPublic_200_response]

示例

flagCommentPublic 示例
Copy Copy
1
2let (response, httpResponse) = client.flagCommentPublic(
3 tenantId = "my-tenant-123",
4 commentId = "comment-98765",
5 isFlagged = false,
6 sso = ""
7)
8if response.isSome:
9 let flagResult = response.get()
10 discard flagResult
11

添加话题标签 Internal Link

参数

名称 类型 必需 描述
tenantId string
createHashTagBody CreateHashTagBody

响应

返回: Option[AddHashTag_200_response]

示例

addHashTag 示例
Copy Copy
1
2let createBody = CreateHashTagBody(
3 name = "sports",
4 description = "Articles and discussions about sports",
5 aliases = @["sport", "athletics"],
6 isActive = true
7)
8
9let (response, httpResponse) = client.addHashTag(tenantId = "my-tenant-123", createHashTagBody = createBody)
10
11if response.isSome:
12 let added = response.get()
13 echo "HashTag added successfully"
14else:
15 echo "Failed to add HashTag"
16

批量添加话题标签 Internal Link

参数

名称 类型 必填 描述
tenantId string
bulkCreateHashTagsBody BulkCreateHashTagsBody

响应

返回: Option[AddHashTagsBulk_200_response]

示例

addHashTagsBulk 示例
Copy Copy
1
2let bulkBody = BulkCreateHashTagsBody(
3 tags = @["breaking", "world-news", "economy"],
4 createdBy = "editor@dailynews.com",
5 replaceExisting = false
6)
7let (response, httpResponse) = client.addHashTagsBulk(tenantId = "newsroom-tenant-42", bulkCreateHashTagsBody = bulkBody)
8if response.isSome:
9 let created = response.get()
10 echo created
11else:
12 echo "AddHashTagsBulk failed:", httpResponse
13

删除话题标签 Internal Link

参数

名称 类型 必需 描述
tag string
tenantId string
deleteHashTagRequest DeleteHashTagRequest

响应

返回:Option[FlagCommentPublic_200_response]

示例

deleteHashTag 示例
Copy Copy
1
2let (response, httpResponse) = client.deleteHashTag(tag = "breaking-news", tenantId = "my-tenant-123", deleteHashTagRequest = DeleteHashTagRequest())
3if response.isSome:
4 let result = response.get()
5 discard result
6

获取话题标签 Internal Link

参数

Name Type Required Description
tenantId string
page float64

响应

返回: Option[GetHashTags_200_response]

示例

getHashTags 示例
Copy Copy
1
2let (response, httpResponse) = client.getHashTags(tenantId = "my-tenant-123", page = 1.0)
3if response.isSome:
4 let tags = response.get()
5 for t in tags:
6 echo t
7else:
8 echo "no hashtags found"
9

部分更新话题标签 Internal Link


参数

名称 类型 必填 描述
tag string
tenantId string
updateHashTagBody UpdateHashTagBody

响应

返回:Option[PatchHashTag_200_response]

示例

patchHashTag 示例
Copy Copy
1
2let (response, httpResponse) = client.patchHashTag(tag = "politics", tenantId = "my-tenant-123", updateHashTagBody = UpdateHashTagBody())
3
4if response.isSome:
5 let updated = response.get()
6 echo "Hashtag updated successfully"
7else:
8 echo "Failed to update hashtag, status:", httpResponse.status
9

创建版主 Internal Link

参数

名称 类型 必需 描述
tenantId string
createModeratorBody CreateModeratorBody

响应

返回:Option[CreateModerator_200_response]

示例

createModerator 示例
Copy Copy
1
2let createBody = CreateModeratorBody(
3 email = "moderator@news-site.com",
4 displayName = "News Moderator",
5 permissions = @["approve_comments", "delete_comments"],
6 isSuperAdmin = false
7)
8
9let (response, httpResponse) = client.createModerator(tenantId = "my-tenant-123", createModeratorBody = createBody)
10
11if response.isSome:
12 let moderator = response.get()
13 echo "Created moderator: ", $moderator
14

删除版主 Internal Link

参数

名称 类型 必需 描述
tenantId string
id string
sendEmail string

响应

返回: Option[FlagCommentPublic_200_response]

示例

deleteModerator 示例
Copy Copy
1
2let (response, httpResponse) = client.deleteModerator(tenantId = "my-tenant-123", id = "moderator-456", sendEmail = "false")
3if response.isSome:
4 let flagResp = response.get()
5 echo "Moderator deletion response: ", $flagResp
6else:
7 echo "No response body; HTTP status: ", $httpResponse.status
8

获取版主 Internal Link

参数

Name Type Required Description
tenantId string
id string

响应

返回: Option[GetModerator_200_response]

示例

getModerator 示例
Copy Copy
1
2let (response, httpResponse) = client.getModerator(tenantId = "my-tenant-123", id = "mod-98765")
3if response.isSome:
4 let moderator = response.get()
5 discard moderator
6

获取版主列表 Internal Link

参数

名称 类型 必填 描述
tenantId string
skip float64

响应

返回: Option[GetModerators_200_response]

示例

getModerators 示例
Copy Copy
1
2let (response, httpResponse) = client.getModerators(tenantId = "my-tenant-123", skip = 0.0)
3if response.isSome:
4 let moderators = response.get()
5 echo "Moderators fetched successfully"
6 echo moderators
7

更新版主 Internal Link

参数

名称 类型 必需 描述
tenantId string
id string
updateModeratorBody UpdateModeratorBody

响应

返回: Option[FlagCommentPublic_200_response]

示例

updateModerator 示例
Copy Copy
1
2let updateBody = UpdateModeratorBody(
3 name: "Alicia Gomez",
4 email: "alicia.gomez@dailynews.com",
5 active: true,
6 roles: @["moderator"]
7)
8
9let (response, httpResponse) = client.updateModerator(tenantId = "my-tenant-123", id = "moderator-789", updateModeratorBody = updateBody)
10
11if response.isSome:
12 let updated = response.get()
13 echo "Moderator updated:", updated
14

删除通知计数 Internal Link

参数

名称 类型 必需 说明
tenantId string
id string

响应

返回: Option[FlagCommentPublic_200_response]

示例

deleteNotificationCount 示例
Copy Copy
1
2let (response, httpResponse) = client.deleteNotificationCount(tenantId = "my-tenant-123", id = "notif-456")
3if response.isSome:
4 let deleted = response.get()
5 echo "Deleted notification count:", deleted
6else:
7 echo "No response body; HTTP response:", httpResponse
8

获取缓存的通知计数 Internal Link

参数

名称 类型 必需 描述
tenantId string
id string

响应

返回: Option[GetCachedNotificationCount_200_response]

示例

getCachedNotificationCount 示例
Copy Copy
1
2let (response, httpResponse) = client.getCachedNotificationCount(tenantId = "my-tenant-123", id = "notif-thread-2026")
3if response.isSome:
4 let cached = response.get()
5 echo "Cached notification count: ", $cached
6

获取通知计数 Internal Link

参数

名称 类型 必需 描述
tenantId string
userId string
urlId string
fromCommentId string
viewed bool

响应

返回: Option[GetNotificationCount_200_response]

示例

getNotificationCount 示例
Copy Copy
1
2let (response, httpResponse) = client.getNotificationCount(
3 tenantId = "acme-corp-tenant-12",
4 userId = "user-84",
5 urlId = "news/2026/market-update",
6 fromCommentId = "cmt-20251234",
7 viewed = false
8)
9
10if response.isSome:
11 let notificationData = response.get()
12 echo "Received notification data"
13else:
14 echo "No notification data"
15

获取通知 Internal Link

参数

名称 类型 必需 描述
tenantId string
userId string
urlId string
fromCommentId string
viewed bool
skip float64

响应

返回: Option[GetNotifications_200_response]

示例

getNotifications 示例
Copy Copy
1
2let (response, httpResponse) = client.getNotifications(
3 tenantId = "fastcomments-tenant-42",
4 userId = "",
5 urlId = "news/latest-tech-innovations",
6 fromCommentId = "",
7 viewed = false,
8 skip = 0.0
9)
10
11if response.isSome:
12 let notifications = response.get()
13 echo "Received notifications: ", notifications
14else:
15 echo "No notifications, response: ", httpResponse
16

更新通知 Internal Link


参数

名称 类型 必需 描述
tenantId string
id string
updateNotificationBody UpdateNotificationBody
userId string

响应

返回: Option[FlagCommentPublic_200_response]

示例

updateNotification 示例
Copy Copy
1
2let (response, httpResponse) = client.updateNotification(tenantId = "my-tenant-123",
3 id = "notif-456",
4 updateNotificationBody = UpdateNotificationBody(),
5 userId = "user-789")
6if response.isSome:
7 let updated = response.get()
8 echo "Updated notification id: ", $updated
9

添加页面 Internal Link

参数

名称 类型 必需 描述
tenantId string
createAPIPageData CreateAPIPageData

响应

返回:Option[AddPageAPIResponse]

示例

addPage 示例
Copy Copy
1
2var createData: CreateAPIPageData
3createData.url = "news/nim-4-release"
4createData.title = "Nim 4 Release Coverage"
5createData.path = "/news/nim-4-release"
6createData.isEnabled = true
7createData.tags = @["nim", "release"]
8createData.description = "Coverage of Nim 4 release"
9
10let (response, httpResponse) = client.addPage(tenantId = "my-tenant-123", createAPIPageData = createData)
11
12if response.isSome:
13 let pageResp = response.get()
14 echo pageResp
15

删除页面 Internal Link

参数

名称 类型 必填 描述
tenantId string
id string

响应

返回: Option[DeletePageAPIResponse]

示例

deletePage 示例
Copy Copy
1
2let (response, httpResponse) = client.deletePage(tenantId = "site-tenant-456", id = "news/winter-updates-2025")
3if response.isSome:
4 let deleted = response.get()
5 echo "DeletePageAPIResponse:", deleted
6else:
7 echo "Delete failed, HTTP response:", httpResponse
8

通过 URL ID 获取页面 Internal Link

参数

名称 类型 是否必需 说明
tenantId string
urlId string

响应

返回:Option[GetPageByURLIdAPIResponse]

示例

getPageByURLId 示例
Copy Copy
1
2let (response, httpResponse) = client.getPageByURLId(tenantId = "my-tenant-123", urlId = "news/article-title")
3if response.isSome:
4 let page = response.get()
5 echo "Page ID: ", page.id
6 echo "Title: ", page.title
7 echo "URL: ", page.url
8 echo "Published: ", $page.published
9 echo "Tags: ", $page.tags
10else:
11 echo "No page found. HTTP status: ", httpResponse.statusCode
12

获取页面列表 Internal Link

参数

名称 类型 必需 描述
tenantId string

响应

返回:Option[GetPagesAPIResponse]

示例

getPages 示例
Copy Copy
1
2let (response, httpResponse) = client.getPages(tenantId = "news-site-456")
3if response.isSome:
4 let pages = response.get()
5 echo "Received pages response: ", pages
6else:
7 echo "No pages returned. HTTP response: ", httpResponse
8

部分更新页面 Internal Link

参数

名称 类型 必需 描述
tenantId string
id string
updateAPIPageData UpdateAPIPageData

响应

返回:Option[PatchPageAPIResponse]

示例

patchPage 示例
Copy Copy
1
2let updateData = UpdateAPIPageData(
3 title = "Breaking: Major Event Update",
4 urlId = "news/major-event-update",
5 visible = true,
6 tags = @["breaking", "headline"],
7 sortOrder = 5
8)
9
10let (response, httpResponse) = client.patchPage(
11 tenantId = "my-tenant-123",
12 id = "news/major-event-update",
13 updateAPIPageData = updateData
14)
15
16if response.isSome:
17 let page = response.get()
18 discard page
19

删除待处理的 Webhook 事件 Internal Link

参数

名称 类型 必填 描述
tenantId string
id string

响应

返回: Option[FlagCommentPublic_200_response]

示例

deletePendingWebhookEvent 示例
Copy Copy
1
2let (response, httpResponse) = client.deletePendingWebhookEvent(tenantId = "my-tenant-123", id = "wh_evt_6f1e3b2a")
3if response.isSome:
4 let flagResp = response.get()
5 discard flagResp
6

获取待处理的 Webhook 事件计数 Internal Link

参数

名称 类型 必需 描述
tenantId string
commentId string
externalId string
eventType string
domain string
attemptCountGT float64

响应

返回: Option[GetPendingWebhookEventCount_200_response]

示例

getPendingWebhookEventCount 示例
Copy Copy
1
2let (response, httpResponse) = client.getPendingWebhookEventCount(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-4567",
5 externalId = "",
6 eventType = "",
7 domain = "",
8 attemptCountGT = 0.0
9)
10if response.isSome:
11 let pending = response.get()
12 echo "Received pending webhook event count response: ", $pending
13else:
14 echo "No pending webhook event count returned, HTTP response: ", $httpResponse
15

获取待处理的 Webhook 事件 Internal Link

参数

名称 类型 必需 描述
tenantId string
commentId string
externalId string
eventType string
domain string
attemptCountGT float64
skip float64

响应

返回: Option[GetPendingWebhookEvents_200_response]

示例

getPendingWebhookEvents 示例
Copy Copy
1
2let (response, httpResponse) = client.getPendingWebhookEvents(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-456789",
5 externalId = "",
6 eventType = "",
7 domain = "",
8 attemptCountGT = 0.0,
9 skip = 0.0
10)
11if response.isSome:
12 let pending = response.get()
13 discard pending
14 echo "Received pending webhook events"
15else:
16 echo "No pending webhook events"
17

创建问题配置 Internal Link

参数

名称 类型 必需 描述
tenantId string
createQuestionConfigBody CreateQuestionConfigBody

响应

返回: Option[CreateQuestionConfig_200_response]

示例

createQuestionConfig 示例
Copy Copy
1
2let body = CreateQuestionConfigBody(
3 key = "recommendation",
4 question = "Would you recommend this article to a friend?",
5 required = false,
6 inputType = "radio",
7 options = @["Yes", "No", "Maybe"]
8)
9
10let (response, httpResponse) = client.createQuestionConfig(tenantId = "my-tenant-123", createQuestionConfigBody = body)
11
12if response.isSome:
13 let config = response.get()
14 discard config
15

删除问题配置 Internal Link

参数

Name Type Required Description
tenantId string
id string

响应

返回: Option[FlagCommentPublic_200_response]

示例

deleteQuestionConfig 示例
Copy Copy
1
2let (response, httpResponse) = client.deleteQuestionConfig(tenantId = "my-tenant-123", id = "qcfg-456")
3if response.isSome:
4 let respVal = response.get()
5 echo "Delete succeeded for tenant my-tenant-123"
6else:
7 echo "Delete returned no data (status: ", $httpResponse.status, ")"
8

获取问题配置 Internal Link

参数

名称 类型 必需 描述
tenantId string
id string

响应

返回:Option[GetQuestionConfig_200_response]

示例

getQuestionConfig 示例
Copy Copy
1
2let (response, httpResponse) = client.getQuestionConfig(tenantId = "my-tenant-123", id = "qcfg-98765")
3if response.isSome:
4 let config = response.get()
5 echo "Received question config for tenant:", " my-tenant-123"
6

获取问题配置列表 Internal Link

参数

Name Type Required Description
tenantId string
skip float64

响应

返回: Option[GetQuestionConfigs_200_response]

示例

getQuestionConfigs 示例
Copy Copy
1
2let (response, httpResponse) = client.getQuestionConfigs(tenantId = "my-tenant-123", skip = 0.0)
3if response.isSome:
4 let configs = response.get()
5 discard configs
6

更新问题配置 Internal Link

参数

Name Type Required Description
tenantId string
id string
updateQuestionConfigBody UpdateQuestionConfigBody

响应

返回: Option[FlagCommentPublic_200_response]

示例

updateQuestionConfig 示例
Copy Copy
1
2let (response, httpResponse) = client.updateQuestionConfig(
3 tenantId = "my-tenant-123",
4 id = "q-config-456",
5 updateQuestionConfigBody = UpdateQuestionConfigBody()
6)
7if response.isSome:
8 let updated = response.get()
9 discard updated
10 echo "Question config updated"
11else:
12 echo "Update did not return a result"
13

创建问题结果 Internal Link

参数

名称 类型 必填 描述
tenantId string
createQuestionResultBody CreateQuestionResultBody

响应

返回: Option[CreateQuestionResult_200_response]

示例

createQuestionResult 示例
Copy Copy
1
2let (response, httpResponse) = client.createQuestionResult(tenantId = "my-tenant-123",
3 createQuestionResultBody = CreateQuestionResultBody(questionId: "q-456",
4 userId: "user-789",
5 correct: true,
6 score: 9,
7 answers: @["B", "D"]))
8if response.isSome:
9 let result = response.get()
10 echo result
11

删除问题结果 Internal Link

参数

名称 类型 必需 描述
tenantId string
id string

响应

返回: Option[FlagCommentPublic_200_response]

示例

deleteQuestionResult 示例
Copy Copy
1
2let (response, httpResponse) = client.deleteQuestionResult(tenantId = "my-tenant-123", id = "question-result-789")
3if response.isSome:
4 let result = response.get()
5 echo "Deleted question result:", result
6else:
7 echo "No result returned, HTTP status:", $httpResponse.status
8

获取问题结果 Internal Link

参数

名称 类型 必填 描述
tenantId string
id string

响应

返回: Option[GetQuestionResult_200_response]

示例

getQuestionResult 示例
Copy Copy
1
2let (response, httpResponse) = client.getQuestionResult(tenantId = "my-tenant-123", id = "question-456")
3if response.isSome:
4 let result = response.get()
5 echo "Received question result:"
6 echo result
7else:
8 echo "No question result returned"
9

获取问题结果列表 Internal Link

参数

名称 类型 必填 描述
tenantId string
urlId string
userId string
startDate string
questionId string
questionIds string
skip float64

响应

返回:Option[GetQuestionResults_200_response]

示例

getQuestionResults 示例
Copy Copy
1
2let (response, httpResponse) = client.getQuestionResults(
3 tenantId = "my-tenant-123",
4 urlId = "news/politics/election-2024",
5 userId = "user-9876",
6 startDate = "2024-01-01T00:00:00Z",
7 questionId = "q-user-satisfaction",
8 questionIds = "q-user-satisfaction,q-engagement",
9 skip = 0.0
10)
11
12if response.isSome:
13 let results = response.get()
14 echo "Got question results: ", $results
15else:
16 echo "No results, HTTP status: ", httpResponse.status
17

更新问题结果 Internal Link

参数

名称 类型 必需 描述
tenantId string Yes
id string No
updateQuestionResultBody UpdateQuestionResultBody No

响应

返回: Option[FlagCommentPublic_200_response]

示例

updateQuestionResult 示例
Copy Copy
1
2let (response, httpResponse) = client.updateQuestionResult(
3 tenantId = "my-tenant-123",
4 id = "question-456",
5 updateQuestionResultBody = UpdateQuestionResultBody(
6 result = "approved",
7 reviewerId = "moderator-42",
8 notes = "Valid question, no action required",
9 isSpam = false
10 )
11)
12if response.isSome:
13 let flagResponse = response.get()
14 discard flagResponse
15

聚合问题结果 Internal Link

参数

Name Type 必需 描述
tenantId string
questionId string
questionIds seq[string]
urlId string
timeBucket AggregateTimeBucket
startDate string
forceRecalculate bool

响应

返回: Option[AggregateQuestionResults_200_response]

示例

aggregateQuestionResults 示例
Copy Copy
1
2let (response, httpResponse) = client.aggregateQuestionResults(
3 tenantId = "my-tenant-123",
4 questionId = "",
5 questionIds = @[],
6 urlId = "news/economy/budget-2025",
7 timeBucket = AggregateTimeBucket(0),
8 startDate = "",
9 forceRecalculate = false
10)
11
12if response.isSome:
13 let aggResults = response.get()
14 discard aggResults
15

批量聚合问题结果 Internal Link

参数

名称 类型 必需 描述
tenantId string
bulkAggregateQuestionResultsRequest BulkAggregateQuestionResultsRequest
forceRecalculate bool

响应

返回: Option[BulkAggregateQuestionResults_200_response]

示例

bulkAggregateQuestionResults 示例
Copy Copy
1
2let request = BulkAggregateQuestionResultsRequest()
3let (response, httpResponse) = client.bulkAggregateQuestionResults(tenantId = "my-tenant-123", bulkAggregateQuestionResultsRequest = request, forceRecalculate = false)
4if response.isSome:
5 let aggregated = response.get()
6 echo aggregated
7

将评论与问题结果合并 Internal Link

参数

名称 类型 必需 描述
tenantId string
questionId string
questionIds seq[string]
urlId string
startDate string
forceRecalculate bool
minValue float64
maxValue float64
limit float64

响应

返回: Option[CombineCommentsWithQuestionResults_200_response]

示例

combineCommentsWithQuestionResults 示例
Copy Copy
1
2let (response, httpResponse) = client.combineCommentsWithQuestionResults(
3 tenantId = "my-tenant-123",
4 questionId = "q-9876",
5 questionIds = @["q-9876", "q-9877"],
6 urlId = "news/article-title",
7 startDate = "2025-01-01T00:00:00Z",
8 forceRecalculate = false,
9 minValue = 1.0,
10 maxValue = 5.0,
11 limit = 100.0
12)
13
14if response.isSome:
15 let combined = response.get()
16 discard combined
17

添加 SSO 用户 Internal Link

参数

名称 类型 必需 描述
tenantId string
createAPISSOUserData CreateAPISSOUserData

响应

返回: Option[AddSSOUserAPIResponse]

示例

addSSOUser 示例
Copy Copy
1
2let (response, httpResponse) = client.addSSOUser(
3 tenantId = "my-tenant-123",
4 createAPISSOUserData = CreateAPISSOUserData(
5 id = "sso-456",
6 email = "alice.johnson@newsorg.com",
7 name = "Alice Johnson",
8 roles = @["editor", "contributor"],
9 isActive = true,
10 isAdmin = false
11 )
12)
13if response.isSome:
14 let apiResp = response.get()
15 discard apiResp
16else:
17 discard httpResponse
18

删除 SSO 用户 Internal Link

参数

Name Type Required Description
tenantId string
id string
deleteComments bool
commentDeleteMode string

响应

返回:Option[DeleteSSOUserAPIResponse]

示例

deleteSSOUser 示例
Copy Copy
1
2let (response, httpResponse) = client.deleteSSOUser(tenantId = "my-tenant-123", id = "sso-user-9876", deleteComments = true, commentDeleteMode = "hard")
3if response.isSome:
4 let deleted = response.get()
5 discard deleted
6else:
7 discard httpResponse
8

通过邮箱获取 SSO 用户 Internal Link


参数

名称 类型 必填 描述
tenantId string
email string

响应

返回: Option[GetSSOUserByEmailAPIResponse]

示例

getSSOUserByEmail 示例
Copy Copy
1
2let (response, httpResponse) = client.getSSOUserByEmail(tenantId = "my-tenant-123", email = "alice@newsco.com")
3if response.isSome:
4 let ssoUser = response.get()
5 echo "SSO user found: ", ssoUser.email
6else:
7 echo "No SSO user found. HTTP status: ", httpResponse.status
8

通过 ID 获取 SSO 用户 Internal Link


参数

名称 类型 必需 描述
tenantId string
id string

响应

返回: Option[GetSSOUserByIdAPIResponse]

示例

getSSOUserById 示例
Copy Copy
1
2let (response, httpResponse) = client.getSSOUserById(tenantId = "my-tenant-123", id = "user-789")
3if response.isSome:
4 let ssoUser: GetSSOUserByIdAPIResponse = response.get()
5 echo "SSO user retrieved: ", $ssoUser
6else:
7 echo "No SSO user found, HTTP status: ", httpResponse.statusCode
8

获取 SSO 用户列表 Internal Link

参数

名称 类型 是否必需 说明
tenantId string
skip int

响应

返回: Option[GetSSOUsers_200_response]

示例

getSSOUsers 示例
Copy Copy
1
2let (response, httpResponse) = client.getSSOUsers(tenantId = "my-tenant-123", skip = 0)
3if response.isSome:
4 let ssoUsers = response.get()
5 echo "Fetched SSO users:"
6 echo ssoUsers
7else:
8 echo "No SSO users returned, HTTP status: ", httpResponse.statusCode
9

部分更新 SSO 用户 Internal Link

参数

名称 类型 必需 描述
tenantId string
id string
updateAPISSOUserData UpdateAPISSOUserData
updateComments bool

响应

返回值: Option[PatchSSOUserAPIResponse]

示例

patchSSOUser 示例
Copy Copy
1
2let (response, httpResponse) = client.patchSSOUser(
3 tenantId = "my-tenant-123",
4 id = "user-789",
5 updateAPISSOUserData = UpdateAPISSOUserData(
6 externalId = "ext-987",
7 username = "j.smith",
8 email = "j.smith@news.example.com",
9 displayName = "John Smith",
10 roles = @["author", "editor"],
11 avatarUrl = "https://cdn.news.example.com/avatars/j.smith.png"
12 ),
13 updateComments = true
14)
15
16if response.isSome:
17 let patched = response.get()
18 echo patched
19

替换 SSO 用户 Internal Link

参数

名称 类型 必需 描述
tenantId string
id string
updateAPISSOUserData UpdateAPISSOUserData
updateComments bool

响应

返回: Option[PutSSOUserAPIResponse]

示例

putSSOUser 示例
Copy Copy
1
2let (response, httpResponse) = client.putSSOUser(
3 tenantId = "my-tenant-123",
4 id = "user-456",
5 updateAPISSOUserData = UpdateAPISSOUserData(
6 externalId = "ext-789",
7 displayName = "Jane Doe",
8 email = "jane.doe@example.com",
9 avatarUrl = "https://cdn.news-site.com/avatars/jane.jpg",
10 roles = @["member", "subscriber"]
11 ),
12 updateComments = true
13)
14
15if response.isSome:
16 let result = response.get()
17 echo "SSO user updated:", result
18

创建订阅 Internal Link

参数

Name Type Required Description
tenantId string
createAPIUserSubscriptionData CreateAPIUserSubscriptionData

响应

返回: Option[CreateSubscriptionAPIResponse]

示例

createSubscription 示例
Copy Copy
1
2let createData = CreateAPIUserSubscriptionData(
3 subscriberId = "user-987",
4 email = "jane.doe@newsreader.com",
5 urlId = "news/local-weather",
6 active = true,
7 tags = @["weather", "local"],
8 frequency = "immediate"
9)
10let (response, httpResponse) = client.createSubscription(tenantId = "my-tenant-123", createAPIUserSubscriptionData = createData)
11if response.isSome:
12 let created = response.get()
13 echo "Created subscription id: ", created.id
14

删除订阅 Internal Link

参数

名称 类型 必需 描述
tenantId string
id string
userId string

响应

返回: Option[DeleteSubscriptionAPIResponse]

示例

deleteSubscription 示例
Copy Copy
1
2let (response, httpResponse) = client.deleteSubscription(tenantId = "my-tenant-123", id = "sub-98765", userId = "user-456")
3if response.isSome:
4 let deleteResp = response.get()
5 echo "Delete subscription response received"
6else:
7 echo "No subscription response"
8

获取订阅列表 Internal Link

参数

Name Type Required Description
tenantId string
userId string

响应

返回: Option[GetSubscriptionsAPIResponse]

示例

getSubscriptions 示例
Copy Copy
1
2let (response, httpResponse) = client.getSubscriptions(tenantId = "my-tenant-123", userId = "")
3if response.isSome:
4 let subscriptions = response.get()
5 discard subscriptions
6

获取租户每日用量 Internal Link

参数

Name Type Required Description
tenantId string
yearNumber float64
monthNumber float64
dayNumber float64
skip float64

响应

返回: Option[GetTenantDailyUsages_200_response]

示例

getTenantDailyUsages 示例
Copy Copy
1
2let (response, httpResponse) = client.getTenantDailyUsages(
3 tenantId = "my-tenant-123",
4 yearNumber = 2025.0,
5 monthNumber = 6.0,
6 dayNumber = 15.0,
7 skip = 0.0
8)
9
10if response.isSome:
11 let usages = response.get()
12 echo usages
13else:
14 echo "No daily usages returned"
15

创建租户套餐 Internal Link

参数

Name Type Required Description
tenantId string
createTenantPackageBody CreateTenantPackageBody

响应

返回: Option[CreateTenantPackage_200_response]

示例

createTenantPackage 示例
Copy Copy
1
2let packageBody = CreateTenantPackageBody(
3 packageName = "premium-comments",
4 description = "Premium moderation package for news site",
5 planId = "plan-pro-2024",
6 seats = 100,
7 enabled = true,
8 features = @["moderation", "analytics", "sentiment"]
9)
10
11let (response, httpResponse) = client.createTenantPackage(tenantId = "my-tenant-123", createTenantPackageBody = packageBody)
12
13if response.isSome:
14 let pkg = response.get()
15 echo "Created package ID: ", pkg.packageId
16 echo "Package name: ", pkg.packageName
17else:
18 echo "Failed to create package, HTTP status: ", httpResponse.status.code
19

删除租户套餐 Internal Link

参数

名称 类型 必需 描述
tenantId string
id string

响应

返回: Option[FlagCommentPublic_200_response]

示例

deleteTenantPackage 示例
Copy Copy
1
2let (response, httpResponse) = client.deleteTenantPackage(tenantId = "my-tenant-123", id = "pkg-789")
3if response.isSome:
4 let deleted = response.get()
5 echo "Successfully deleted tenant package"
6

获取租户套餐 Internal Link

参数

Name Type Required Description
tenantId string
id string

响应

返回: Option[GetTenantPackage_200_response]

示例

getTenantPackage 示例
Copy Copy
1
2let (response, httpResponse) = client.getTenantPackage(tenantId = "my-tenant-123", id = "pkg-premium-001")
3if response.isSome:
4 let pkg = response.get()
5 echo pkg
6else:
7 echo "No package found for tenant"
8

获取租户套餐列表 Internal Link

参数

名称 类型 必填 描述
tenantId string
skip float64

响应

返回: Option[GetTenantPackages_200_response]

示例

getTenantPackages 示例
Copy Copy
1
2let (response, httpResponse) = client.getTenantPackages(tenantId = "my-tenant-123", skip = 0.0)
3if response.isSome:
4 let packages = response.get()
5 echo "Received packages for tenant:", " my-tenant-123"
6 echo packages
7else:
8 echo "No packages found, status:", httpResponse.status
9

替换租户套餐 Internal Link

参数

Name Type Required Description
tenantId string
id string
replaceTenantPackageBody ReplaceTenantPackageBody

Response

返回: Option[FlagCommentPublic_200_response]

示例

replaceTenantPackage 示例
Copy Copy
1
2let replaceBody = ReplaceTenantPackageBody(
3 packageName = "Community Pro",
4 seats = 500,
5 enableModeration = true,
6 features = @["moderation", "analytics", "single-sign-on"]
7)
8
9let (response, httpResponse) = client.replaceTenantPackage(
10 tenantId = "my-tenant-123",
11 id = "community-pro",
12 replaceTenantPackageBody = replaceBody
13)
14
15if response.isSome:
16 let flagResp = response.get()
17 echo "Package replaced for tenant: ", "my-tenant-123"
18 discard flagResp
19

更新租户套餐 Internal Link

参数

名称 类型 必需 描述
tenantId string
id string
updateTenantPackageBody UpdateTenantPackageBody

响应

返回: Option[FlagCommentPublic_200_response]

示例

updateTenantPackage 示例
Copy Copy
1
2let (response, httpResponse) = client.updateTenantPackage(tenantId = "my-tenant-123", id = "pkg-premium", updateTenantPackageBody = UpdateTenantPackageBody())
3if response.isSome:
4 let updated = response.get()
5 echo "Updated package received:", updated
6else:
7 echo "Update failed, HTTP status: ", httpResponse.status
8

创建租户用户 Internal Link

参数

Name Type Required Description
tenantId string
createTenantUserBody CreateTenantUserBody

响应

返回:Option[CreateTenantUser_200_response]

示例

createTenantUser 示例
Copy Copy
1
2let createBody = CreateTenantUserBody(
3 email = "jane.doe@acmepub.com",
4 displayName = "Jane Doe",
5 password = "S3cur3P@ssw0rd",
6 roles = @["moderator", "editor"],
7 disabled = false
8)
9let (response, httpResponse) = client.createTenantUser(tenantId = "my-tenant-123", createTenantUserBody = createBody)
10if response.isSome:
11 let createdUser = response.get()
12 echo createdUser
13

删除租户用户 Internal Link

参数

名称 类型 必需 描述
tenantId string
id string
deleteComments string
commentDeleteMode string

响应

返回: Option[FlagCommentPublic_200_response]

示例

deleteTenantUser 示例
Copy Copy
1
2let (response, httpResponse) = client.deleteTenantUser(tenantId = "my-tenant-123", id = "user-456", deleteComments = "", commentDeleteMode = "")
3if response.isSome:
4 let flagResp = response.get()
5 echo flagResp
6

获取租户用户 Internal Link


参数

名称 类型 必需 描述
tenantId string
id string

响应

返回: Option[GetTenantUser_200_response]

示例

getTenantUser 示例
Copy Copy
1
2let (response, httpResponse) = client.getTenantUser(tenantId = "my-tenant-123", id = "user-456")
3if response.isSome:
4 let tenantUser = response.get()
5 discard tenantUser
6else:
7 discard httpResponse
8

获取租户用户列表 Internal Link

参数

名称 类型 必需 描述
tenantId string
skip float64

响应

返回: Option[GetTenantUsers_200_response]

示例

getTenantUsers 示例
Copy Copy
1
2let (response, httpResponse) = client.getTenantUsers(tenantId = "my-tenant-123", skip = 0.0)
3if response.isSome:
4 let tenantUsers = response.get()
5 echo "Fetched tenant users for my-tenant-123"
6 discard tenantUsers
7else:
8 echo "No users returned"
9 discard httpResponse
10

替换租户用户 Internal Link

参数

名称 类型 必需 描述
tenantId string
id string
replaceTenantUserBody ReplaceTenantUserBody
updateComments string

响应

返回: Option[FlagCommentPublic_200_response]

示例

replaceTenantUser 示例
Copy Copy
1
2let replaceBody = ReplaceTenantUserBody(name: "Jane Doe", email: "jane.doe@example.com", roles: @["moderator", "contributor"], banned: false)
3let (response, httpResponse) = client.replaceTenantUser(tenantId = "my-tenant-123", id = "user-789", replaceTenantUserBody = replaceBody, updateComments = "true")
4if response.isSome:
5 let updated = response.get()
6 echo updated
7else:
8 echo "No response returned"
9

参数

Name Type Required Description
tenantId string
id string
redirectURL string

响应

返回: Option[FlagCommentPublic_200_response]

示例

sendLoginLink 示例
Copy Copy
1
2let (response, httpResponse) = client.sendLoginLink(tenantId = "fastcomments-tenant-42", id = "user-9876", redirectURL = "https://news.example.com/articles/2026/fastcomments-login")
3if response.isSome:
4 let loginResp = response.get()
5 echo "Login link sent successfully"
6else:
7 echo "Failed to send login link"
8

更新租户用户 Internal Link

参数

名称 类型 必填 描述
tenantId string
id string
updateTenantUserBody UpdateTenantUserBody
updateComments string

响应

返回: Option[FlagCommentPublic_200_response]

示例

updateTenantUser 示例
Copy Copy
1
2var body: UpdateTenantUserBody
3body.email = "jane.doe@example.com"
4body.displayName = "Jane Doe"
5body.roles = @["moderator", "editor"]
6body.isActive = true
7
8let (response, httpResponse) = client.updateTenantUser(
9 tenantId = "my-tenant-123",
10 id = "user-789",
11 updateTenantUserBody = body,
12 updateComments = "Promoted user to moderator and editor roles"
13)
14
15if response.isSome:
16 let flagResp = response.get()
17 echo flagResp
18else:
19 echo "Update failed, status: ", httpResponse.status
20

创建租户 Internal Link

参数

Name Type Required Description
tenantId string
createTenantBody CreateTenantBody

响应

返回: Option[CreateTenant_200_response]

示例

createTenant 示例
Copy Copy
1
2let (response, httpResponse) = client.createTenant(tenantId = "my-tenant-123", createTenantBody = CreateTenantBody(
3 name: "My Tenant 123",
4 domain: "mytenant.example.com",
5 plan: "pro",
6 isActive: true,
7 allowedOrigins: @["https://www.example.com", "https://admin.example.com"]
8))
9if response.isSome:
10 let tenantInfo = response.get()
11 discard tenantInfo
12

删除租户 Internal Link


参数

名称 类型 必需 描述
tenantId string
id string
sure string

响应

返回:Option[FlagCommentPublic_200_response]

示例

deleteTenant 示例
Copy Copy
1
2let (response, httpResponse) = client.deleteTenant(tenantId = "my-tenant-123", id = "", sure = "")
3
4if response.isSome:
5 let flagResp = response.get()
6 echo "Tenant deletion response received for tenant: ", "my-tenant-123"
7 discard flagResp
8else:
9 echo "No response body returned for tenant deletion"
10

获取租户 Internal Link

参数

名称 类型 必需 描述
tenantId string
id string

响应

返回: Option[GetTenant_200_response]

示例

getTenant 示例
Copy Copy
1
2let (response, httpResponse) = client.getTenant(tenantId = "my-tenant-123", id = "")
3if response.isSome:
4 let tenant = response.get()
5 echo "Tenant retrieved"
6 discard tenant
7else:
8 echo "No tenant found"
9 echo "HTTP status:", httpResponse.status
10

获取租户列表 Internal Link

参数

名称 类型 必需 描述
tenantId string
meta string
skip float64

响应

返回:Option[GetTenants_200_response]

示例

getTenants 示例
Copy Copy
1
2let (response, httpResponse) = client.getTenants(tenantId = "my-tenant-123", meta = "include=details", skip = 0.0)
3if response.isSome:
4 let tenants = response.get()
5 echo "Received tenants: ", repr(tenants)
6else:
7 echo "Failed to retrieve tenants"
8

更新租户 Internal Link

参数

名称 类型 必需 描述
tenantId string
id string
updateTenantBody UpdateTenantBody

响应

返回: Option[FlagCommentPublic_200_response]

示例

updateTenant 示例
Copy Copy
1
2let (response, httpResponse) = client.updateTenant(
3 tenantId = "my-tenant-123",
4 id = "tenant-456",
5 updateTenantBody = UpdateTenantBody()
6)
7if response.isSome:
8 let flagResponse = response.get()
9 echo flagResponse
10else:
11 echo "No body returned; HTTP status: ", httpResponse.status
12

上传图片 Internal Link

参数

名称 类型 必需 描述
tenantId string
file string
sizePreset SizePreset
urlId string

响应

返回:Option[UploadImageResponse]

示例

uploadImage 示例
Copy Copy
1
2let (response, httpResponse) = client.uploadImage(
3 tenantId = "my-tenant-123",
4 file = "assets/images/comment-avatar.jpg",
5 sizePreset = SizePreset.small,
6 urlId = "news/article-2025-11-22"
7)
8if response.isSome:
9 let upload = response.get()
10 echo "Uploaded image id: ", upload.id
11 echo "Uploaded image url: ", upload.url
12

通过 ID 获取用户徽章进度 Internal Link

参数

名称 类型 必需 描述
tenantId string
id string No

响应

返回: Option[GetUserBadgeProgressById_200_response]

示例

getUserBadgeProgressById 示例
Copy Copy
1
2let (response, httpResponse) = client.getUserBadgeProgressById(tenantId = "my-tenant-123", id = "editor-badge-42")
3if response.isSome:
4 let badgeProgress = response.get()
5 echo "Badge progress received:"
6 echo badgeProgress
7else:
8 echo "No badge progress found for tenant 'my-tenant-123' and id 'editor-badge-42'"
9 echo httpResponse
10

通过用户 ID 获取用户徽章进度 Internal Link

参数

名称 类型 必需 描述
tenantId string
userId string

响应

返回:Option[GetUserBadgeProgressById_200_response]

示例

getUserBadgeProgressByUserId 示例
Copy Copy
1
2let (response, httpResponse) = client.getUserBadgeProgressByUserId(tenantId = "my-tenant-123", userId = "user-456")
3if response.isSome:
4 let badgeProgress = response.get()
5 echo "Badge progress retrieved for user-456"
6else:
7 echo "No badge progress found, HTTP status: ", $httpResponse.status
8

获取用户徽章进度列表 Internal Link

参数

名称 类型 必需 描述
tenantId string
userId string
limit float64
skip float64

响应

返回: Option[GetUserBadgeProgressList_200_response]

示例

getUserBadgeProgressList 示例
Copy Copy
1
2let (response, httpResponse) = client.getUserBadgeProgressList(tenantId = "my-tenant-123", userId = "user-9823", limit = 25.0, skip = 0.0)
3if response.isSome:
4 let badgeProgress = response.get()
5 echo "Badge progress received:", badgeProgress
6else:
7 echo "No badge progress. HTTP response:", httpResponse.status
8

创建用户徽章 Internal Link

参数

Name Type Required Description
tenantId string
createUserBadgeParams CreateUserBadgeParams

响应

返回: Option[CreateUserBadge_200_response]

示例

createUserBadge 示例
Copy Copy
1
2let (response, httpResponse) = client.createUserBadge(tenantId = "my-tenant-123",
3 createUserBadgeParams = CreateUserBadgeParams(userId = "user-987", badgeId = "top-commenter"))
4if response.isSome:
5 let createdBadge = response.get()
6 echo "Created badge for user: ", createdBadge.userId
7else:
8 echo "Failed to create badge, status: ", $httpResponse.status
9

删除用户徽章 Internal Link

参数

名称 类型 必需 描述
tenantId string
id string

响应

返回: Option[UpdateUserBadge_200_response]

示例

deleteUserBadge 示例
Copy Copy
1
2let (response, httpResponse) = client.deleteUserBadge(tenantId = "my-tenant-123", id = "badge-456")
3if response.isSome:
4 let updated = response.get()
5 discard updated
6

获取用户徽章 Internal Link

参数

名称 类型 必需 描述
tenantId string
id string

响应

返回: Option[GetUserBadge_200_response]

示例

getUserBadge 示例
Copy Copy
1
2let (response, httpResponse) = client.getUserBadge(tenantId = "my-tenant-123", id = "")
3
4if response.isSome:
5 let badge = response.get()
6 discard badge
7

获取用户徽章列表 Internal Link

参数

名称 类型 必需 描述
tenantId string
userId string
badgeId string
displayedOnComments bool
limit float64
skip float64

响应

返回:Option[GetUserBadges_200_response]

示例

getUserBadges 示例
Copy Copy
1
2let (response, httpResponse) = client.getUserBadges(
3 tenantId = "my-tenant-123",
4 userId = "user-789",
5 badgeId = "top-commenter",
6 displayedOnComments = true,
7 limit = 50.0,
8 skip = 0.0
9)
10
11if response.isSome:
12 let badges = response.get()
13 echo "Retrieved badges: ", $badges
14

更新用户徽章 Internal Link

参数

Name Type Required Description
tenantId string
id string
updateUserBadgeParams UpdateUserBadgeParams

响应

返回:Option[UpdateUserBadge_200_response]

示例

updateUserBadge 示例
Copy Copy
1
2let updateParams = UpdateUserBadgeParams(
3 name = "Top Contributor",
4 description = "Awarded for consistent high-quality comments",
5 active = true,
6 tags = @["community", "milestone"]
7)
8
9let (response, httpResponse) = client.updateUserBadge(tenantId = "my-tenant-123", id = "badge-456", updateUserBadgeParams = updateParams)
10
11if response.isSome:
12 let updated = response.get()
13 echo "Badge updated successfully"
14else:
15 echo "Failed to update badge, HTTP status: ", $httpResponse.status
16

获取用户通知计数 Internal Link

参数

名称 类型 必需 描述
tenantId string
sso string

响应

返回: Option[GetUserNotificationCount_200_response]

示例

getUserNotificationCount 示例
Copy Copy
1
2let (response, httpResponse) = client.getUserNotificationCount(tenantId = "my-tenant-123", sso = "")
3if response.isSome:
4 let notificationData = response.get()
5 echo "Received notification data: ", $notificationData
6else:
7 echo "No notification data returned. HTTP response: ", $httpResponse.status
8

获取用户通知 Internal Link

参数

名称 类型 必需 描述
tenantId string
pageSize int
afterId string
includeContext bool
afterCreatedAt int64
unreadOnly bool
dmOnly bool
noDm bool
includeTranslations bool
sso string

响应

返回: Option[GetUserNotifications_200_response]

示例

getUserNotifications 示例
Copy Copy
1
2let (response, httpResponse) = client.getUserNotifications(
3 tenantId = "my-tenant-123",
4 pageSize = 50,
5 afterId = "notif_9a1b2c3d",
6 includeContext = true,
7 afterCreatedAt = int64(1699999999000),
8 unreadOnly = false,
9 dmOnly = false,
10 noDm = false,
11 includeTranslations = false,
12 sso = ""
13)
14if response.isSome:
15 let notifications = response.get()
16 discard notifications
17else:
18 discard httpResponse
19

重置用户通知计数 Internal Link

参数

名称 类型 必需 描述
tenantId string
sso string

响应

返回: Option[ResetUserNotifications_200_response]

示例

resetUserNotificationCount 示例
Copy Copy
1
2let (response, httpResponse) = client.resetUserNotificationCount(tenantId = "my-tenant-123", sso = "sso-jwt-9a8b7c6d")
3if response.isSome:
4 let resetResult = response.get()
5 echo resetResult
6else:
7 echo "Reset failed, status: ", httpResponse.status
8

重置用户通知 Internal Link

参数

Name Type 必需 描述
tenantId string
afterId string
afterCreatedAt int64
unreadOnly bool
dmOnly bool
noDm bool
sso string

响应

返回: Option[ResetUserNotifications_200_response]

示例

resetUserNotifications 示例
Copy Copy
1
2let (response, httpResponse) = client.resetUserNotifications(
3 tenantId = "my-tenant-123",
4 afterId = "",
5 afterCreatedAt = int64(0),
6 unreadOnly = false,
7 dmOnly = false,
8 noDm = false,
9 sso = ""
10)
11
12if response.isSome:
13 let result = response.get()
14

更新用户评论订阅状态 Internal Link

参数

名称 类型 必需 描述
tenantId string
notificationId string
optedInOrOut string
commentId string
sso string

响应

返回:Option[UpdateUserNotificationStatus_200_response]

示例

updateUserNotificationCommentSubscriptionStatus 示例
Copy Copy
1
2let (response, httpResponse) = client.updateUserNotificationCommentSubscriptionStatus(
3 tenantId = "my-tenant-123",
4 notificationId = "notif-456",
5 optedInOrOut = "opted_in",
6 commentId = "cmt-789",
7 sso = "sso-token-abc"
8)
9if response.isSome:
10 let updatedStatus = response.get()
11 discard updatedStatus
12else:
13 discard httpResponse
14

更新用户页面订阅状态 Internal Link

参数

名称 Type 必需 描述
tenantId string
urlId string
url string
pageTitle string
subscribedOrUnsubscribed string
sso string

响应

返回: Option[UpdateUserNotificationStatus_200_response]

示例

updateUserNotificationPageSubscriptionStatus 示例
Copy Copy
1
2let (response, httpResponse) = client.updateUserNotificationPageSubscriptionStatus(
3 tenantId = "my-tenant-123",
4 urlId = "news/article-2025-11-22",
5 url = "https://example.com/news/article-2025-11-22",
6 pageTitle = "Breaking News: Market Update",
7 subscribedOrUnsubscribed = "subscribed",
8 sso = "sso-token-abc123"
9)
10
11if response.isSome:
12 let result = response.get()
13 discard result
14

更新用户通知状态 Internal Link

参数

名称 类型 必需 描述
tenantId string
notificationId string
newStatus string
sso string

响应

返回: Option[UpdateUserNotificationStatus_200_response]

示例

updateUserNotificationStatus 示例
Copy Copy
1
2let (response, httpResponse) = client.updateUserNotificationStatus(
3 tenantId = "my-tenant-123",
4 notificationId = "notif-456",
5 newStatus = "read",
6 sso = "sso-abc-789"
7)
8if response.isSome:
9 let updateResp = response.get()
10 discard updateResp
11

获取用户在线状态 Internal Link

参数

Name Type Required Description
tenantId string Yes
urlIdWS string No
userIds string No

响应

返回: Option[GetUserPresenceStatuses_200_response]

示例

getUserPresenceStatuses 示例
Copy Copy
1
2let (response, httpResponse) = client.getUserPresenceStatuses(
3 tenantId = "my-tenant-123",
4 urlIdWS = "news/2025/technology/ai-ethics",
5 userIds = "user-789,user-456"
6)
7if response.isSome:
8 let presence = response.get()
9 echo "Presence received: ", presence
10else:
11 echo "No presence information returned, HTTP status: ", httpResponse.status.code
12

搜索用户 Internal Link

参数

名称 类型 必需 说明
tenantId string
urlId string
usernameStartsWith string
mentionGroupIds seq[string]
sso string

响应

返回:Option[SearchUsers_200_response]

示例

searchUsers 示例
Copy Copy
1
2let (response, httpResponse) = client.searchUsers(
3 tenantId = "my-tenant-123",
4 urlId = "news/article-title",
5 usernameStartsWith = "jo",
6 mentionGroupIds = @["editors", "sports-team"],
7 sso = "sso-abc-456"
8)
9
10if response.isSome:
11 let users = response.get()
12 echo "Users found: ", users
13else:
14 echo "No users found; HTTP status: ", httpResponse.status
15

获取用户 Internal Link


参数

名称 类型 必需 描述
tenantId string
id string

响应

返回: Option[GetUser_200_response]

示例

getUser 示例
Copy Copy
1
2let (response, httpResponse) = client.getUser(tenantId = "my-tenant-123", id = "user-9876")
3if response.isSome:
4 let user = response.get()
5 echo "User:", user
6else:
7 echo "No user found. HTTP response:", httpResponse
8

创建投票 Internal Link

参数

Name Type Required Description
tenantId string
commentId string
direction string
userId string
anonUserId string

响应

返回: Option[VoteComment_200_response]

示例

createVote 示例
Copy Copy
1
2let (response, httpResponse) = client.createVote(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-987654321",
5 direction = "up",
6 userId = "user-42",
7 anonUserId = ""
8)
9if response.isSome:
10 let vote = response.get()
11 echo "Vote recorded: ", $vote
12else:
13 echo "Vote not created, HTTP response: ", $httpResponse
14

删除投票 Internal Link

参数

名称 类型 必需 描述
tenantId string
id string
editKey string

响应

返回: Option[DeleteCommentVote_200_response]

示例

deleteVote 示例
Copy Copy
1
2let (response, httpResponse) = client.deleteVote(tenantId = "my-tenant-123", id = "", editKey = "")
3if response.isSome:
4 let deleted = response.get()
5 discard deleted
6

获取投票 Internal Link

参数

名称 类型 必填 描述
tenantId string
urlId string

响应

返回: Option[GetVotes_200_response]

示例

getVotes 示例
Copy Copy
1
2let (response, httpResponse) = client.getVotes(tenantId = "my-tenant-123", urlId = "news/2026/major-update")
3if response.isSome:
4 let votes = response.get()
5 discard votes
6else:
7 discard httpResponse
8

获取用户的投票 Internal Link

参数

Name Type Required Description
tenantId string
urlId string
userId string
anonUserId string

响应

返回:Option[GetVotesForUser_200_response]

示例

getVotesForUser 示例
Copy Copy
1
2let (response, httpResponse) = client.getVotesForUser(
3 tenantId = "my-tenant-123",
4 urlId = "news/economy-update-2026",
5 userId = "user-789",
6 anonUserId = ""
7)
8
9if response.isSome:
10 let votes = response.get()
11 discard votes
12

需要帮助?

如果在使用 Nim SDK 时遇到任何问题或有任何疑问,请:

贡献

欢迎贡献!请访问 GitHub 仓库 以获取贡献指南。