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 模块,api_defaultapi_publicapi_moderationapi_default 包含需要您的 API 密钥的方法,api_public 包含可以直接从浏览器/移动设备等发起且无需认证的 API 调用。api_moderation 模块包含用于审核员仪表板的方法。

api_moderation 模块提供了一套全面的实时且快速的审核 API。每个 api_moderation 方法都接受一个 sso 参数,并且可以通过 SSO 或 FastComments.com 会话 cookie 进行身份验证。

快速开始 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 调用。
# 必需参数(以及请求体)是位置参数;可选
# 参数通过操作的 options 对象传递。
let (response, httpResponse) = getComments(
  httpClient = client,
  tenantId = "your-tenant-id",
  options = GetCommentsOptions(
    urlId: "your-url-id",
    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 调用。
# tenantId 和 urlId 为必需(位置参数);其余均为可选。
let (response, httpResponse) = getCommentsPublic(
  httpClient = client,
  tenantId = "your-tenant-id",
  urlId = "your-url-id",
  options = GetCommentsPublicOptions(
    direction: SortDirections.DESC
  )
)

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

使用审查 APIs (ModerationAPI)

审查端点为审查员仪表板提供功能,并使用执行审查员的 SSO 令牌进行身份验证:

import httpclient
import fastcomments
import fastcomments/apis/api_moderation

let client = newHttpClient()

# 列出审查仪表板中的评论。
# 此操作没有必需参数,所有参数均为可选。
let (response, httpResponse) = getApiComments(
  httpClient = client,
  options = GetApiCommentsOptions(
    count: 30,
    tenantId: "your-tenant-id",
    sso: "your-sso-token"
  )
)

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

常见问题

  1. 401 认证错误:确保在进行 DefaultAPI 请求之前在 HttpClient 上设置 x-api-key 请求头:client.headers["x-api-key"] = "your-api-key"
  2. 错误的 API 类:对于服务端已认证请求使用 api_default,对于客户端/公共请求使用 api_public,对于审查仪表板请求使用 api_moderation

发起 API 调用 Internal Link

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

必需的参数和请求体按位置传递。其余可选参数收集到一个 Api<Operation>Options 对象中,作为最后一个参数。没有可选参数的操作无需提供 options 对象。

示例:获取评论

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",
  options = GetCommentsOptions(
    urlId: "your-url-id",
    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

Aggregates documents by grouping them (if groupBy is provided) and applying multiple operations. Different operations (e.g. sum, countDistinct, avg, etc.) are supported.

参数

名称类型必需描述
tenantIdstringYes
aggregationRequestAggregationRequestNo
optionsAggregateOptionsNo

响应

返回:Option[AggregateResponse]

示例

聚合示例
Copy Copy
1
2let (aggResp, httpResp) = client.aggregate(tenantId = "my-tenant-123", aggregationRequest = AggregationRequest(), options = AggregateOptions())
3if aggResp.isSome:
4 let response = aggResp.get()
5 echo response
6echo httpResp
7

获取审计日志 Internal Link

参数

名称类型必填描述
tenantIdstringYes
optionsGetAuditLogsOptionsNo

响应

返回: Option[GetAuditLogsResponse]

示例

getAuditLogs 示例
Copy Copy
1
2let (auditOpt, httpResp) = client.getAuditLogs(tenantId = "my-tenant-123", options = GetAuditLogsOptions())
3if auditOpt.isSome:
4 let audit = auditOpt.get()
5 echo audit
6

登出(公开) Internal Link


响应

返回: Option[APIEmptyResponse]

示例

logoutPublic 示例
Copy Copy
1
2let (responseOpt, httpResponse) = client.logoutPublic(tenantId = "my-tenant-123", userId = "user-456")
3if responseOpt.isSome:
4 let emptyResponse = responseOpt.get()
5

从评论封禁(公开) Internal Link

参数

名称类型必填描述
tenantIdstring
commentIdstring
publicBlockFromCommentParamsPublicBlockFromCommentParams
ssostring = ""

响应

返回:Option[BlockSuccess]

示例

blockFromCommentPublic 示例
Copy Copy
1
2let (blockOpt, httpResp) = client.blockFromCommentPublic(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-456789",
5 publicBlockFromCommentParams = PublicBlockFromCommentParams(),
6 sso = ""
7)
8
9if blockOpt.isSome:
10 let block = blockOpt.get()
11

取消封禁评论(公开) Internal Link

参数

名称类型必填描述
tenantIdstring
commentIdstring
publicBlockFromCommentParamsPublicBlockFromCommentParams
ssostring = ""

响应

返回:Option[UnblockSuccess]

示例

unBlockCommentPublic 示例
Copy Copy
1
2let (unblockResult, httpResp) = client.unBlockCommentPublic(
3 tenantId = "my-tenant-123",
4 commentId = "comment-7890",
5 publicBlockFromCommentParams = PublicBlockFromCommentParams(),
6 sso = ""
7)
8
9if unblockResult.isSome:
10 let result = unblockResult.get()
11

检查被封禁的评论 Internal Link

参数

名称类型必需描述
tenantIdstringYes
commentIdsstringNo
ssostring = ""No

响应

Returns: Option[CheckBlockedCommentsResponse]

示例

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

从评论封禁用户 Internal Link

参数

名称类型必需描述
tenantIdstring
idstring
blockFromCommentParamsBlockFromCommentParams
optionsBlockUserFromCommentOptions

响应

返回: Option[BlockSuccess]

示例

blockUserFromComment 示例
Copy Copy
1
2let params = BlockFromCommentParams()
3let opts = BlockUserFromCommentOptions()
4let (blockResult, httpResp) = client.blockUserFromComment(
5 tenantId = "my-tenant-123",
6 id = "comment-456",
7 blockFromCommentParams = params,
8 options = opts
9)
10if blockResult.isSome:
11 let success = blockResult.get()
12 discard success
13

创建评论(公开) Internal Link

参数

NameTypeRequiredDescription
tenantIdstringYes
urlIdstringYes
broadcastIdstringNo
commentDataCommentDataNo
optionsCreateCommentPublicOptionsNo

响应

返回:Option[SaveCommentsResponseWithPresence]

示例

createCommentPublic 示例
Copy Copy
1
2let
3 tenantId = "my-tenant-123"
4 urlId = "news/article-title"
5 broadcastId = "broadcast-456"
6 commentData = CommentData()
7 options = CreateCommentPublicOptions()
8let (maybeResp, httpResp) = client.createCommentPublic(
9 tenantId = tenantId,
10 urlId = urlId,
11 broadcastId = broadcastId,
12 commentData = commentData,
13 options = options)
14
15if maybeResp.isSome:
16 let resp = maybeResp.get()
17 echo resp
18

删除评论 Internal Link

参数

名称类型必填描述
tenantIdstringYes
idstringNo
optionsDeleteCommentOptionsNo

响应

返回:Option[DeleteCommentResult]

示例

deleteComment 示例
Copy Copy
1
2let (delResult, httpResponse) = client.deleteComment(
3 tenantId = "my-tenant-123",
4 id = "comment-456",
5 options = DeleteCommentOptions()
6)
7
8if delResult.isSome:
9 let result = delResult.get()
10 echo result
11

删除评论(公开) Internal Link

参数

NameTypeRequiredDescription
tenantIdstringYes
commentIdstringYes
broadcastIdstringNo
optionsDeleteCommentPublicOptionsNo

响应

Returns: Option[PublicAPIDeleteCommentResponse]

示例

deleteCommentPublic 示例
Copy Copy
1
2let (responseOpt, httpResp) = client.deleteCommentPublic(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-456789",
5 broadcastId = "",
6 options = DeleteCommentPublicOptions())
7if responseOpt.isSome:
8 let resp = responseOpt.get()
9 echo resp
10

删除评论投票 Internal Link

参数

名称类型必填描述
tenantIdstringYes
commentIdstringYes
voteIdstringNo
urlIdstringYes
broadcastIdstringNo
optionsDeleteCommentVoteOptionsNo

响应

返回:Option[VoteDeleteResponse]

示例

deleteCommentVote 示例
Copy Copy
1
2let (response, httpResponse) = client.deleteCommentVote(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-456",
5 voteId = "vote-789",
6 urlId = "news/article-title",
7 broadcastId = "broadcast-001",
8 options = DeleteCommentVoteOptions()
9)
10
11if response.isSome:
12 let voteDelete = response.get()
13

举报评论 Internal Link

参数

名称类型必填描述
tenantIdstringYes
idstringNo
optionsFlagCommentOptionsNo

响应

返回:Option[FlagCommentResponse]

示例

flagComment 示例
Copy Copy
1
2let options = FlagCommentOptions(reason: "spam content", note: "Automated posting detected", isSpam: true, categories: @["spam"])
3let (flagRes, httpRes) = client.flagComment(tenantId = "my-tenant-123", id = "cmt-789", options = options)
4if flagRes.isSome:
5 let res = flagRes.get()
6 discard res
7

获取评论 Internal Link

参数

名称类型必填描述
tenantIdstringYes
idstringNo

响应

返回: Option[APIGetCommentResponse]

示例

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

获取评论列表 Internal Link

参数

名称类型必填描述
tenantIdstring
optionsGetCommentsOptions

响应

返回: Option[APIGetCommentsResponse]

示例

getComments 示例
Copy Copy
1
2let options = GetCommentsOptions(
3 urlId = "news/article-title",
4 page = 0,
5 pageSize = 20,
6 sort = "newest",
7 includeDeleted = false,
8 includeReplies = true,
9 userIds = @[],
10 tags = @[]
11)
12
13let (response, httpResponse) = client.getComments(tenantId = "my-tenant-123", options = options)
14
15if response.isSome:
16 let comments = response.get()
17 discard comments
18

获取公开评论 Internal Link


req tenantId urlId

参数

名称类型必需描述
tenantIdstring
urlIdstring
optionsGetCommentsPublicOptions

响应

返回:Option[GetCommentsResponseWithPresencePublicComment]

示例

getCommentsPublic 示例
Copy Copy
1
2let (optResp, httpResp) = client.getCommentsPublic(
3 tenantId = "my-tenant-123",
4 urlId = "news/article-title",
5 options = GetCommentsPublicOptions(
6 page = 0,
7 pageSize = 10,
8 includeDeleted = false,
9 tags = @[]
10 )
11)
12
13if optResp.isSome:
14 let resp = optResp.get()
15 echo resp
16

获取评论文本 Internal Link

参数

名称类型必填描述
tenantIdstringYes
commentIdstringYes
optionsGetCommentTextOptionsNo

响应

返回: Option[PublicAPIGetCommentTextResponse]

示例

getCommentText 示例
Copy Copy
1
2let (maybeResponse, httpResponse) = client.getCommentText(
3 tenantId = "my-tenant-123",
4 commentId = "comment-456",
5 options = GetCommentTextOptions()
6)
7
8if maybeResponse.isSome:
9 let response = maybeResponse.get()
10

获取评论投票用户名 Internal Link

参数

名称类型必填描述
tenantIdstring
commentIdstring
dirint
ssostring = ""

响应

返回:Option[GetCommentVoteUserNamesSuccessResponse]

示例

getCommentVoteUserNames 示例
Copy Copy
1
2let (voteNamesOpt, httpRes) = client.getCommentVoteUserNames(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-987654321",
5 dir = 0,
6 sso = ""
7)
8
9if voteNamesOpt.isSome:
10 let voteNames = voteNamesOpt.get()
11 echo voteNames
12

锁定评论 Internal Link

参数

名称类型必填描述
tenantIdstringYes
commentIdstringYes
broadcastIdstringNo
ssostring = ""No

响应

返回: Option[APIEmptyResponse]

示例

lockComment 示例
Copy Copy
1
2let (lockResult, httpRes) = client.lockComment(
3 tenantId = "my-tenant-123",
4 commentId = "comment-456",
5 broadcastId = "",
6 sso = "")
7
8if lockResult.isSome:
9 let resp = lockResult.get()
10 discard resp
11

置顶评论 Internal Link

参数

名称类型必需描述
tenantIdstring
commentIdstring
broadcastIdstring
ssostring = ""

响应

返回:Option[ChangeCommentPinStatusResponse]

示例

pinComment 示例
Copy Copy
1
2let (pinResult, httpResp) = client.pinComment(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-456789",
5 broadcastId = "broadcast-001",
6 sso = "",
7)
8
9if pinResult.isSome:
10 let response = pinResult.get()
11 echo response
12

保存评论 Internal Link

参数

名称类型必填描述
tenantIdstringYes
createCommentParamsCreateCommentParamsNo
optionsSaveCommentOptionsNo

响应

返回: Option[APISaveCommentResponse]

示例

saveComment 示例
Copy Copy
1
2let commentParams = CreateCommentParams(
3 body: "Great read, thanks!",
4 name: "Alice Smith",
5 email: "alice@example.com",
6 parentId: ""
7)
8
9let saveOpts = SaveCommentOptions(
10 isPreview: false,
11 isApproved: true,
12 skipSpamCheck: false
13)
14
15let (apiResponse, httpResponse) = client.saveComment(
16 tenantId = "my-tenant-123",
17 createCommentParams = commentParams,
18 options = saveOpts
19)
20
21if apiResponse.isSome:
22 let saved = apiResponse.get()
23 echo saved
24

批量保存评论 Internal Link

参数

名称类型必填描述
tenantIdstring
createCommentParamsseq[CreateCommentParams]
optionsSaveCommentsBulkOptions): (Option[seq[SaveCommentsBulkResponse]]
idstring
fromNamestring

响应

返回:Option[APIEmptyResponse]

示例

saveCommentsBulk 示例
Copy Copy
1
2let (response, httpResponse) = client.saveCommentsBulk(
3 tenantId = "my-tenant-123",
4 createCommentParams = @[],
5 options = SaveCommentsBulkOptions(),
6 id = "",
7 fromName = ""
8)
9
10if response.isSome:
11 let result = response.get()
12

设置评论文本 Internal Link

参数

名称类型必填描述
tenantIdstring
commentIdstring
broadcastIdstring
commentTextUpdateRequestCommentTextUpdateRequest
optionsSetCommentTextOptions

响应

返回: Option[PublicAPISetCommentTextResponse]

示例

setCommentText 示例
Copy Copy
1
2let commentUpdate = CommentTextUpdateRequest(text: "Updated comment text")
3let opts = SetCommentTextOptions()
4let (response, httpResponse) = client.setCommentText(
5 tenantId = "my-tenant-123",
6 commentId = "cmt-456",
7 broadcastId = "broadcast-789",
8 commentTextUpdateRequest = commentUpdate,
9 options = opts)
10if response.isSome:
11 let result = response.get()
12

取消对用户的评论封禁 Internal Link

参数

名称类型必填描述
tenantIdstringYes
idstringNo
unBlockFromCommentParamsUnBlockFromCommentParamsNo
optionsUnBlockUserFromCommentOptionsNo

响应

返回: Option[UnblockSuccess]

示例

unBlockUserFromComment 示例
Copy Copy
1
2let (response, httpResponse) = client.unBlockUserFromComment(
3 tenantId = "my-tenant-123",
4 id = "comment-456",
5 unBlockFromCommentParams = UnBlockFromCommentParams(userId = "user-789", commentId = "cmt-321"),
6 options = UnBlockUserFromCommentOptions(),
7)
8
9if response.isSome:
10 let unblockSuccess = response.get()
11

取消举报评论 Internal Link

参数

名称类型必填描述
tenantIdstring
idstring
optionsUnFlagCommentOptions

响应

返回:Option[FlagCommentResponse]

示例

unFlagComment 示例
Copy Copy
1
2let (flagRespOpt, httpResp) = client.unFlagComment(tenantId = "my-tenant-123", id = "comment-456", options = UnFlagCommentOptions())
3if flagRespOpt.isSome:
4 let flagResp = flagRespOpt.get()
5

解锁评论 Internal Link

参数

名称类型必填描述
tenantIdstring
commentIdstring
broadcastIdstring
ssostring = ""

响应

返回:Option[APIEmptyResponse]

示例

unLockComment 示例
Copy Copy
1
2let (maybeEmpty, httpResp) = client.unLockComment(tenantId = "my-tenant-123", commentId = "comment-456", broadcastId = "", sso = "")
3if maybeEmpty.isSome:
4 let emptyResp = maybeEmpty.get()
5 echo "Comment unlocked"
6else:
7 echo "Failed to unlock comment"
8

取消置顶评论 Internal Link

参数

名称类型必需描述
tenantIdstringYes
commentIdstringYes
broadcastIdstringNo
ssostring = ""No

响应

返回:Option[ChangeCommentPinStatusResponse]

示例

unPinComment 示例
Copy Copy
1
2let (responseOpt, httpResponse) = client.unPinComment(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-456789",
5 broadcastId = "broadcast-001",
6 sso = ""
7)
8
9if responseOpt.isSome:
10 let resp = responseOpt.get()
11 echo resp
12

更新评论 Internal Link

参数

名称类型必需描述
tenantIdstring
idstring
updatableCommentParamsUpdatableCommentParams
optionsUpdateCommentOptions

响应

返回:Option[APIEmptyResponse]

示例

updateComment 示例
Copy Copy
1
2let commentParams = UpdatableCommentParams(content: "Updated comment content")
3let updateOpts = UpdateCommentOptions(force: false)
4
5let (respOpt, httpResp) = client.updateComment(
6 tenantId = "my-tenant-123",
7 id = "comment-456",
8 updatableCommentParams = commentParams,
9 options = updateOpts
10)
11
12if respOpt.isSome:
13 let resp = respOpt.get()
14

为评论投票 Internal Link

参数

名称类型必需描述
tenantIdstring
commentIdstring
urlIdstring
broadcastIdstring
voteBodyParamsVoteBodyParams
optionsVoteCommentOptions

响应

返回:Option[VoteResponse]

示例

voteComment 示例
Copy Copy
1
2let (voteRespOpt, httpResp) = client.voteComment(
3 tenantId = "my-tenant-123",
4 commentId = "comment-98765",
5 urlId = "blog/how-to-code",
6 broadcastId = "",
7 voteBodyParams = VoteBodyParams(),
8 options = VoteCommentOptions()
9)
10
11if voteRespOpt.isSome:
12 let voteResp = voteRespOpt.get()
13

获取用户的评论 Internal Link

参数

名称类型必填描述
optionsGetCommentsForUserOptions

响应

返回: Option[GetCommentsForUserResponse]

示例

getCommentsForUser 示例
Copy Copy
1
2let (maybeResp, httpResp) = client.getCommentsForUser(options = GetCommentsForUserOptions(
3 tenantId = "my-tenant-123",
4 userId = "user-456",
5 page = 0,
6 pageSize = 20,
7 includeDeleted = false,
8 commentIds = @[]
9))
10
11if maybeResp.isSome:
12 let resp = maybeResp.get()
13 discard resp
14

添加域名配置 Internal Link

参数

名称类型必填描述
tenantIdstring
addDomainConfigParamsAddDomainConfigParams

响应

返回: Option[AddDomainConfigResponse]

示例

addDomainConfig 示例
Copy Copy
1
2let (respOpt, httpResp) = client.addDomainConfig(
3 tenantId = "my-tenant-123",
4 addDomainConfigParams = default(AddDomainConfigParams)
5)
6
7if respOpt.isSome:
8 let cfg = respOpt.get()
9

删除域名配置 Internal Link

参数

名称类型必需描述
tenantIdstring
domainstring

响应

返回: Option[DeleteDomainConfigResponse]

示例

deleteDomainConfig 示例
Copy Copy
1
2let (optResp, httpResp) = client.deleteDomainConfig(tenantId = "my-tenant-123", domain = "news.example.com")
3if optResp.isSome:
4 let resp = optResp.get()
5 echo resp
6

获取域名配置 Internal Link

参数

名称类型必需描述
tenantIdstring
domainstring

响应

返回:Option[GetDomainConfigResponse]

示例

getDomainConfig 示例
Copy Copy
1
2let (configOpt, httpResp) = client.getDomainConfig(tenantId = "my-tenant-123", domain = "news.example.com")
3if configOpt.isSome:
4 let cfg = configOpt.get()
5 discard cfg
6

获取域名配置列表 Internal Link

参数

名称类型必填描述
tenantIdstring

响应

返回:Option[GetDomainConfigsResponse]

示例

getDomainConfigs 示例
Copy Copy
1
2let (domainConfigsOpt, httpResponse) = client.getDomainConfigs(tenantId = "my-tenant-123")
3if domainConfigsOpt.isSome:
4 let domainConfigs = domainConfigsOpt.get()
5 echo domainConfigs
6

部分更新域名配置 Internal Link

参数

名称类型必填描述
tenantIdstringYes
domainToUpdatestringNo
patchDomainConfigParamsPatchDomainConfigParamsNo

响应

返回:Option[PatchDomainConfigResponse]

示例

patchDomainConfig 示例
Copy Copy
1
2let (optResp, httpResp) = client.patchDomainConfig(
3 tenantId = "my-tenant-123",
4 domainToUpdate = "news.mywebsite.com",
5 patchDomainConfigParams = PatchDomainConfigParams()
6)
7
8if optResp.isSome:
9 let resp = optResp.get()
10 echo resp
11

替换域名配置 Internal Link

参数

名称类型必填描述
tenantIdstringYes
domainToUpdatestringNo
updateDomainConfigParamsUpdateDomainConfigParamsNo

响应

返回: Option[PutDomainConfigResponse]

示例

putDomainConfig 示例
Copy Copy
1
2let (optResp, httpResp) = client.putDomainConfig(
3 tenantId = "my-tenant-123",
4 domainToUpdate = "example.com",
5 updateDomainConfigParams = UpdateDomainConfigParams()
6)
7
8if optResp.isSome:
9 let resp = optResp.get()
10 echo resp
11

创建邮件模板 Internal Link

参数

名称类型必需描述
tenantIdstring
createEmailTemplateBodyCreateEmailTemplateBody

响应

返回: Option[CreateEmailTemplateResponse]

示例

createEmailTemplate 示例
Copy Copy
1
2let createBody = CreateEmailTemplateBody(
3 name: "Welcome Email",
4 subject: "Welcome to FastComments",
5 htmlBody: "<p>Hello, thank you for joining us!</p>",
6 isActive: true,
7 tags: @[]
8)
9
10let (optResp, httpResp) = client.createEmailTemplate(
11 tenantId = "my-tenant-123",
12 createEmailTemplateBody = createBody
13)
14
15if optResp.isSome:
16 let emailTemplate = optResp.get()
17

删除邮件模板 Internal Link

参数

名称类型必填描述
tenantIdstring
idstring

响应

返回:Option[APIEmptyResponse]

示例

deleteEmailTemplate 示例
Copy Copy
1
2let (respOpt, httpResp) = client.deleteEmailTemplate(tenantId = "my-tenant-123", id = "welcome-email")
3if respOpt.isSome:
4 let emptyResp = respOpt.get()
5 echo "Email template deleted"
6else:
7 echo "Failed to delete email template"
8

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

参数

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
errorIdstringNo

响应

返回: Option[APIEmptyResponse]

示例

deleteEmailTemplateRenderError 示例
Copy Copy
1
2let (apiRes, httpRes) = client.deleteEmailTemplateRenderError(
3 tenantId = "my-tenant-123",
4 id = "welcome-email",
5 errorId = "render-err-456"
6)
7
8if apiRes.isSome:
9 let empty = apiRes.get()
10

获取邮件模板 Internal Link


参数

名称类型必填描述
tenantIdstring
idstring

响应

Returns: Option[GetEmailTemplateResponse]

示例

getEmailTemplate 示例
Copy Copy
1
2let (response, httpResponse) = client.getEmailTemplate(tenantId = "my-tenant-123", id = "welcome-email")
3if response.isSome:
4 let tmpl = response.get()
5

获取邮件模板定义 Internal Link

参数

名称类型必填描述
tenantIdstring

响应

返回:Option[GetEmailTemplateDefinitionsResponse]

示例

getEmailTemplateDefinitions 示例
Copy Copy
1
2let (responseOpt, httpResponse) = client.getEmailTemplateDefinitions(tenantId = "my-tenant-123")
3if responseOpt.isSome:
4 let definitions = responseOpt.get()
5 echo definitions
6

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


参数

名称类型必填描述
tenantIdstring
idstring
skipfloat64

响应

返回: Option[GetEmailTemplateRenderErrorsResponse]

示例

getEmailTemplateRenderErrors 示例
Copy Copy
1
2let (optResp, httpResp) = client.getEmailTemplateRenderErrors(
3 tenantId = "my-tenant-123",
4 id = "welcome-template",
5 skip = 0.0
6)
7
8if optResp.isSome:
9 let resp = optResp.get()
10 # 根据需要使用 resp
11else:
12 # 处理缺失的响应
13 discard
14

获取邮件模板列表 Internal Link

参数

名称类型必填描述
tenantIdstringYes
skipfloat64No

响应

返回:Option[GetEmailTemplatesResponse]

示例

getEmailTemplates 示例
Copy Copy
1
2let (emailTemplatesOpt, httpResp) = client.getEmailTemplates(tenantId = "my-tenant-123", skip = 0.0)
3if emailTemplatesOpt.isSome:
4 let templates = emailTemplatesOpt.get()
5 echo templates
6

渲染邮件模板 Internal Link

参数

名称类型必需描述
tenantIdstring
renderEmailTemplateBodyRenderEmailTemplateBody
localestring = ""

响应

返回:Option[RenderEmailTemplateResponse]

示例

renderEmailTemplate 示例
Copy Copy
1
2let body = RenderEmailTemplateBody()
3let (responseOpt, httpResponse) = client.renderEmailTemplate(tenantId = "my-tenant-123", renderEmailTemplateBody = body, locale = "en-US")
4if responseOpt.isSome:
5 let response = responseOpt.get()
6 discard response
7discard httpResponse
8

更新邮件模板 Internal Link

参数

名称类型必填描述
tenantIdstring
idstring
updateEmailTemplateBodyUpdateEmailTemplateBody

响应

返回:Option[APIEmptyResponse]

示例

updateEmailTemplate 示例
Copy Copy
1
2let updateBody = UpdateEmailTemplateBody(
3 subject: "Welcome to FastComments",
4 body: "Hello \{{user_name}}, thanks for joining!",
5 enabled: true,
6)
7
8let (maybeResp, httpResp) = client.updateEmailTemplate(
9 tenantId = "my-tenant-123",
10 id = "welcome-email",
11 updateEmailTemplateBody = updateBody,
12)
13
14if maybeResp.isSome:
15 let resp = maybeResp.get()
16

获取事件日志 Internal Link

req tenantId urlId userIdWS

参数

名称类型必需描述
tenantIdstring
urlIdstring
userIdWSstring
startTimeint64
endTimeint64

响应

返回:Option[GetEventLogResponse]

示例

getEventLog 示例
Copy Copy
1
2let (eventLogOpt, httpResp) = client.getEventLog(
3 tenantId = "my-tenant-123",
4 urlId = "news/article-title",
5 userIdWS = "",
6 startTime = 0'i64,
7 endTime = 0'i64,
8)
9
10if eventLogOpt.isSome:
11 let eventLog = eventLogOpt.get()
12 echo eventLog
13

获取全局事件日志 Internal Link

请求 tenantId urlId userIdWS

参数

名称类型必填描述
tenantIdstring
urlIdstring
userIdWSstring
startTimeint64
endTimeint64

响应

返回: Option[GetEventLogResponse]

示例

getGlobalEventLog 示例
Copy Copy
1
2let (eventLogOpt, httpResp) = client.getGlobalEventLog(
3 tenantId = "my-tenant-123",
4 urlId = "news/article-title",
5 userIdWS = "user-456",
6 startTime = 1700000000'i64,
7 endTime = 1700003600'i64,
8)
9
10if eventLogOpt.isSome:
11 let eventLog = eventLogOpt.get()
12 echo eventLog
13

创建动态帖子 Internal Link

参数

名称类型必须描述
tenantIdstring
createFeedPostParamsCreateFeedPostParams
optionsCreateFeedPostOptions

响应

返回:Option[CreateFeedPostsResponse]

示例

createFeedPost 示例
Copy Copy
1
2let (respOpt, httpResp) = client.createFeedPost(
3 tenantId = "my-tenant-123",
4 createFeedPostParams = CreateFeedPostParams(),
5 options = CreateFeedPostOptions()
6)
7
8if respOpt.isSome:
9 let feedPost = respOpt.get()
10

创建公开动态帖子 Internal Link

参数

名称类型必填描述
tenantIdstring
createFeedPostParamsCreateFeedPostParams
optionsCreateFeedPostPublicOptions

响应

返回: Option[CreateFeedPostResponse]

示例

createFeedPostPublic 示例
Copy Copy
1
2let params = CreateFeedPostParams(
3 urlId: "news/big-event",
4 title: "Big Event Happened",
5 content: "Full article content goes here.",
6 tags: @["news", "event"]
7)
8
9let opts = CreateFeedPostPublicOptions(
10 sendNotifications: false,
11 allowComments: true
12)
13
14let (response, httpResponse) = client.createFeedPostPublic(
15 tenantId = "my-tenant-123",
16 createFeedPostParams = params,
17 options = opts
18)
19
20if response.isSome:
21 let post = response.get()
22 echo post
23

删除公开动态帖子 Internal Link

参数

名称类型必需描述
tenantIdstring
postIdstring
optionsDeleteFeedPostPublicOptions

响应

返回:Option[DeleteFeedPostPublicResponse]

示例

deleteFeedPostPublic 示例
Copy Copy
1
2let (response, httpResponse) = client.deleteFeedPostPublic(
3 tenantId = "my-tenant-123",
4 postId = "news/article-42",
5 options = DeleteFeedPostPublicOptions()
6)
7
8if response.isSome:
9 let deleteResp = response.get()
10

获取动态帖子 Internal Link

请求 tenantId afterId

参数

名称类型必需描述
tenantIdstringYes
optionsGetFeedPostsOptionsNo

响应

返回: Option[GetFeedPostsResponse]

示例

getFeedPosts 示例
Copy Copy
1
2let (feedResponseOpt, httpResp) = client.getFeedPosts(tenantId = "my-tenant-123", options = GetFeedPostsOptions())
3if feedResponseOpt.isSome:
4 let feedResponse = feedResponseOpt.get()
5 echo feedResponse
6

获取公开动态帖子 Internal Link

req tenantId afterId

参数

名称类型必填描述
tenantIdstring
optionsGetFeedPostsPublicOptions

响应

返回: Option[PublicFeedPostsResponse]

示例

getFeedPostsPublic 示例
Copy Copy
1
2let (feedResponseOpt, httpResponse) = client.getFeedPostsPublic(tenantId = "my-tenant-123", options = GetFeedPostsPublicOptions())
3if feedResponseOpt.isSome:
4 let feedResponse = feedResponseOpt.get()
5

获取动态帖子统计 Internal Link

参数

NameTypeRequiredDescription
tenantIdstringYes
postIdsseq[string]No
ssostring = ""No

响应

Returns: Option[FeedPostsStatsResponse]

示例

getFeedPostsStats 示例
Copy Copy
1
2let (statsOpt, httpResponse) = client.getFeedPostsStats(
3 tenantId = "my-tenant-123",
4 postIds = @["post-abc", "post-def"],
5 sso = "sso-token",
6)
7
8if statsOpt.isSome:
9 let stats = statsOpt.get()
10 # 根据需要使用 stats
11
12
13

获取公开用户反应 Internal Link

参数

名称类型必填描述
tenantIdstring
optionsGetUserReactsPublicOptions

响应

返回:Option[UserReactsResponse]

示例

getUserReactsPublic 示例
Copy Copy
1
2let opts = GetUserReactsPublicOptions(
3 limit = 20,
4 offset = 0,
5 includeDeleted = false
6)
7
8let (response, httpResponse) = client.getUserReactsPublic(
9 tenantId = "my-tenant-123",
10 options = opts
11)
12
13if response.isSome:
14 let userReacts = response.get()
15

对动态帖子进行公开回应(React) Internal Link

参数

名称类型必需描述
tenantIdstringYes
postIdstringNo
reactBodyParamsReactBodyParamsNo
optionsReactFeedPostPublicOptionsNo

响应

返回:Option[ReactFeedPostResponse]

示例

reactFeedPostPublic 示例
Copy Copy
1
2let reactParams = ReactBodyParams()
3let (optResp, httpResp) = client.reactFeedPostPublic(
4 tenantId = "my-tenant-123",
5 postId = "post-456",
6 reactBodyParams = reactParams,
7 options = ReactFeedPostPublicOptions()
8)
9if optResp.isSome:
10 let resp = optResp.get()
11 echo resp
12

更新动态帖子 Internal Link

参数

名称类型必需描述
tenantIdstring
idstring
feedPostFeedPost

响应

返回:Option[APIEmptyResponse]

示例

updateFeedPost 示例
Copy Copy
1
2let feedPost = FeedPost(
3 title: "Breaking News",
4 content: "Updated story content",
5 tags: @["news", "update"]
6)
7
8let (apiRes, httpRes) = client.updateFeedPost(
9 tenantId = "my-tenant-123",
10 id = "post-456",
11 feedPost = feedPost
12)
13
14if apiRes.isSome:
15 let res = apiRes.get()
16

公开更新动态帖子 Internal Link

参数

名称类型必填描述
tenantIdstringYes
postIdstringNo
updateFeedPostParamsUpdateFeedPostParamsNo
optionsUpdateFeedPostPublicOptionsNo

响应

返回: Option[CreateFeedPostResponse]

示例

updateFeedPostPublic 示例
Copy Copy
1
2let (response, httpResponse) = client.updateFeedPostPublic(
3 tenantId = "my-tenant-123",
4 postId = "post-789",
5 updateFeedPostParams = UpdateFeedPostParams(),
6 options = UpdateFeedPostPublicOptions()
7)
8
9if response.isSome:
10 let post = response.get()
11

公开举报评论 Internal Link

参数

名称类型必填描述
tenantIdstringYes
commentIdstringYes
isFlaggedboolNo
ssostring = ""No

响应

返回:Option[APIEmptyResponse]

示例

flagCommentPublic 示例
Copy Copy
1
2let (optResp, httpResp) = client.flagCommentPublic(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-456789",
5 isFlagged = true,
6 sso = ""
7)
8
9if optResp.isSome:
10 let empty = optResp.get()
11 discard empty
12

获取大尺寸动图 Internal Link

参数

名称类型必填描述
tenantIdstring
largeInternalURLSanitizedstring

响应

返回:Option[GifGetLargeResponse]

示例

getGifLarge 示例
Copy Copy
1
2let (gifOpt, httpResp) = client.getGifLarge(
3 tenantId = "my-tenant-123",
4 largeInternalURLSanitized = "https://cdn.example.com/gifs/large123.gif")
5if gifOpt.isSome:
6 let gif = gifOpt.get()
7 echo gif
8

搜索动图 Internal Link

参数

名称类型必填描述
tenantIdstring
searchstring
optionsGetGifsSearchOptions

响应

返回: Option[GetGifsSearchResponse]

示例

getGifsSearch 示例
Copy Copy
1
2let opts = GetGifsSearchOptions(limit = 10, rating = "g")
3let (responseOpt, httpResponse) = client.getGifsSearch(tenantId = "my-tenant-123", search = "funny cats", options = opts)
4if responseOpt.isSome:
5 let resp = responseOpt.get()
6 # use resp as needed
7

获取热门动图 Internal Link

参数

名称类型必需描述
tenantIdstring
optionsGetGifsTrendingOptions

响应

返回: Option[GetGifsTrendingResponse]

示例

getGifsTrending 示例
Copy Copy
1
2let (maybeResponse, httpResponse) = client.getGifsTrending(
3 tenantId = "my-tenant-123",
4 options = GetGifsTrendingOptions()
5)
6
7if maybeResponse.isSome:
8 let gifs = maybeResponse.get()
9 echo gifs
10

添加话题标签 Internal Link

参数

名称类型必需描述
tenantIdstringYes
createHashTagBodyCreateHashTagBodyNo

响应

返回: Option[CreateHashTagResponse]

示例

addHashTag 示例
Copy Copy
1
2let (hashTagOpt, httpResp) = client.addHashTag(
3 tenantId = "my-tenant-123",
4 createHashTagBody = CreateHashTagBody(),
5)
6
7if hashTagOpt.isSome:
8 let tag = hashTagOpt.get()
9

批量添加话题标签 Internal Link

参数

名称类型必填描述
tenantIdstring
bulkCreateHashTagsBodyBulkCreateHashTagsBody

响应

返回: Option[BulkCreateHashTagsResponse]

示例

addHashTagsBulk 示例
Copy Copy
1
2let (optResp, httpResp) = client.addHashTagsBulk(
3 tenantId = "my-tenant-123",
4 bulkCreateHashTagsBody = BulkCreateHashTagsBody(
5 hashTags = @["news", "technology"]
6 )
7)
8
9if optResp.isSome:
10 let resp = optResp.get()
11

删除话题标签 Internal Link

参数

名称类型必填描述
tenantIdstring
tagstring
deleteHashTagRequestBodyDeleteHashTagRequestBody

响应

返回: Option[APIEmptyResponse]

示例

deleteHashTag 示例
Copy Copy
1
2let (apiResp, httpResp) = client.deleteHashTag(tenantId = "my-tenant-123", tag = "sports", deleteHashTagRequestBody = DeleteHashTagRequestBody())
3if apiResp.isSome:
4 let emptyResp = apiResp.get()
5

获取话题标签 Internal Link

参数

名称类型必填描述
tenantIdstring
pagefloat64

响应

返回: Option[GetHashTagsResponse]

示例

getHashTags 示例
Copy Copy
1
2let (hashTagsOpt, httpResp) = client.getHashTags(tenantId = "my-tenant-123", page = 0.0)
3if hashTagsOpt.isSome:
4 let hashTags = hashTagsOpt.get()
5 echo hashTags
6else:
7 echo "No hashtags found"
8

部分更新话题标签 Internal Link

参数

名称类型必填描述
tenantIdstring
tagstring
updateHashTagBodyUpdateHashTagBody

响应

返回: Option[UpdateHashTagResponse]

示例

patchHashTag 示例
Copy Copy
1
2let updateBody = UpdateHashTagBody()
3let (optResp, httpResp) = client.patchHashTag(
4 tenantId = "my-tenant-123",
5 tag = "news",
6 updateHashTagBody = updateBody
7)
8if optResp.isSome:
9 let resp = optResp.get()
10 echo resp
11else:
12 echo "No response"
13

删除审核投票 Internal Link

参数

名称类型必需描述
tenantIdstringYes
commentIdstringYes
voteIdstringNo
optionsDeleteModerationVoteOptionsNo

响应

返回: Option[VoteDeleteResponse]

示例

deleteModerationVote 示例
Copy Copy
1
2let (respOpt, httpResp) = client.deleteModerationVote(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-987654",
5 voteId = "vote-abc123",
6 options = DeleteModerationVoteOptions()
7)
8
9if respOpt.isSome:
10 let resp = respOpt.get()
11

获取 API 评论(审核) Internal Link


参数

名称类型必填描述
tenantIdstring
optionsGetApiCommentsOptions

响应

返回:Option[ModerationAPIGetCommentsResponse]

示例

getApiComments 示例
Copy Copy
1
2let (maybeResp, httpResp) = client.getApiComments(tenantId = "my-tenant-123", options = GetApiCommentsOptions())
3if maybeResp.isSome:
4 let resp = maybeResp.get()
5 # 可以使用 `resp` 进行进一步处理
6

获取 API 导出状态 Internal Link

参数

名称类型必需描述
tenantIdstring
optionsGetApiExportStatusOptions

响应

返回:Option[ModerationExportStatusResponse]

示例

getApiExportStatus 示例
Copy Copy
1
2let (exportStatusOpt, httpResp) = client.getApiExportStatus(
3 tenantId = "my-tenant-123",
4 options = GetApiExportStatusOptions()
5)
6if exportStatusOpt.isSome:
7 let exportStatus = exportStatusOpt.get()
8 # 根据需要使用 exportStatus
9

获取 API IDs Internal Link

参数

名称类型必需描述
tenantIdstring
optionsGetApiIdsOptions

响应

返回:Option[ModerationAPIGetCommentIdsResponse]

示例

getApiIds 示例
Copy Copy
1
2let opts = GetApiIdsOptions()
3let (maybeResponse, httpResponse) = client.getApiIds(tenantId = "my-tenant-123", options = opts)
4if maybeResponse.isSome:
5 let response = maybeResponse.get()
6 echo response
7

获取因评论被封禁的用户 Internal Link


参数

名称类型必需描述
tenantIdstring
commentIdstring
ssostring = ""

响应

返回:Option[GetBannedUsersFromCommentResponse]

示例

getBanUsersFromComment 示例
Copy Copy
1
2let (response, httpResponse) = client.getBanUsersFromComment(tenantId = "my-tenant-001", commentId = "cmt-123456", sso = "")
3if response.isSome:
4 let banInfo = response.get()
5 echo banInfo
6

获取评论封禁状态 Internal Link

参数

名称类型必需描述
tenantIdstring
commentIdstring
ssostring = ""

响应

返回: Option[GetCommentBanStatusResponse]

示例

getCommentBanStatus 示例
Copy Copy
1
2let (banStatusOpt, httpResp) = client.getCommentBanStatus(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-456789",
5 sso = "")
6
7if banStatusOpt.isSome:
8 let banStatus = banStatusOpt.get()
9 echo banStatus
10

获取评论子项 Internal Link

参数

名称类型必填描述
tenantIdstringYes
commentIdstringYes
ssostring = ""No

响应

返回:Option[ModerationAPIChildCommentsResponse]

示例

getCommentChildren 示例
Copy Copy
1
2let (childRespOpt, httpResp) = client.getCommentChildren(tenantId = "my-tenant-123", commentId = "cmt-456789", sso = "")
3if childRespOpt.isSome:
4 let childResp = childRespOpt.get()
5 echo childResp
6

获取计数 Internal Link

参数

名称类型必需描述
tenantIdstring
optionsGetCountOptions

响应

返回:Option[ModerationAPICountCommentsResponse]

示例

getCount 示例
Copy Copy
1
2let (countOpt, httpResponse) = client.getCount(tenantId = "my-tenant-123", options = GetCountOptions())
3if countOpt.isSome:
4 let count = countOpt.get()
5

获取多个计数 Internal Link

参数

名称类型必填描述
tenantIdstring
ssostring = ""

响应

返回: Option[GetBannedUsersCountResponse]

示例

getCounts 示例
Copy Copy
1
2let (maybeCounts, httpRes) = client.getCounts(tenantId = "my-tenant-123", sso = "")
3if maybeCounts.isSome:
4 let counts = maybeCounts.get()
5 echo counts
6else:
7 echo "No counts returned"
8

获取日志 Internal Link

参数

名称类型必需描述
tenantIdstring
commentIdstring
ssostring = ""

响应

返回:Option[ModerationAPIGetLogsResponse]

示例

getLogs 示例
Copy Copy
1
2let (logsOpt, httpRes) = client.getLogs(tenantId = "my-tenant-123", commentId = "cmt-789", sso = "")
3if logsOpt.isSome:
4 let logs = logsOpt.get()
5 echo logs
6

获取手动徽章 Internal Link

参数

名称类型必需描述
tenantIdstring
ssostring = ""

响应

返回: Option[GetTenantManualBadgesResponse]

示例

getManualBadges 示例
Copy Copy
1
2let (manualBadgesOpt, httpResponse) = client.getManualBadges(tenantId = "my-tenant-123", sso = "")
3if manualBadgesOpt.isSome:
4 let manualBadges = manualBadgesOpt.get()
5 echo manualBadges
6

获取某用户的手动徽章 Internal Link

参数

名称类型必需描述
tenantIdstring
optionsGetManualBadgesForUserOptions

响应

返回:Option[GetUserManualBadgesResponse]

示例

getManualBadgesForUser 示例
Copy Copy
1
2let (userBadgesOpt, httpResp) = client.getManualBadgesForUser(
3 tenantId = "my-tenant-123",
4 options = GetManualBadgesForUserOptions()
5)
6if userBadgesOpt.isSome:
7 let badges = userBadgesOpt.get()
8 echo badges
9

获取审核评论 Internal Link

参数

名称类型必填描述
tenantIdstring
commentIdstring
optionsGetModerationCommentOptions

响应

返回:Option[ModerationAPICommentResponse]

示例

getModerationComment 示例
Copy Copy
1
2let (maybeComment, httpResponse) = client.getModerationComment(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-456789",
5 options = default(GetModerationCommentOptions)
6)
7
8if maybeComment.isSome:
9 let comment = maybeComment.get()
10 echo comment
11

获取审核评论文本 Internal Link

参数

名称类型必填描述
tenantIdstring
commentIdstring
ssostring = ""

响应

返回: Option[GetCommentTextResponse]

示例

getModerationCommentText 示例
Copy Copy
1
2let (optResp, httpResp) = client.getModerationCommentText(
3 tenantId = "my-tenant-123",
4 commentId = "comment-456abc",
5 sso = ""
6)
7
8if optResp.isSome:
9 let resp = optResp.get()
10 echo resp
11

获取预封禁摘要 Internal Link

参数

名称类型必填描述
tenantIdstringYes
commentIdstringYes
optionsGetPreBanSummaryOptionsNo

响应

Returns: Option[PreBanSummary]

示例

getPreBanSummary 示例
Copy Copy
1
2let (preBanSummaryOpt, httpResponse) = client.getPreBanSummary(tenantId = "my-tenant-123", commentId = "cmt-456", options = GetPreBanSummaryOptions())
3if preBanSummaryOpt.isSome:
4 let summary = preBanSummaryOpt.get()
5

获取搜索评论摘要 Internal Link

参数

名称类型必需描述
tenantIdstring
optionsGetSearchCommentsSummaryOptions

响应

返回:Option[ModerationCommentSearchResponse]

示例

getSearchCommentsSummary 示例
Copy Copy
1
2let (summaryOpt, httpResp) = client.getSearchCommentsSummary(
3 tenantId = "my-tenant-123",
4 options = GetSearchCommentsSummaryOptions()
5)
6
7if summaryOpt.isSome:
8 let summary = summaryOpt.get()
9 echo summary
10

获取搜索页面 Internal Link

参数

名称类型必填描述
tenantIdstring
optionsGetSearchPagesOptions

响应

返回:Option[ModerationPageSearchResponse]

示例

getSearchPages 示例
Copy Copy
1
2let (searchResp, httpResp) = client.getSearchPages(
3 tenantId = "my-tenant-123",
4 options = GetSearchPagesOptions(
5 page: 1,
6 pageSize: 20,
7 query: "spam"
8 )
9)
10
11if searchResp.isSome:
12 let resp = searchResp.get()
13

获取搜索站点 Internal Link

参数

名称类型必需描述
tenantIdstring
optionsGetSearchSitesOptions

响应

返回:Option[ModerationSiteSearchResponse]

示例

getSearchSites 示例
Copy Copy
1
2let (searchResult, httpResp) = client.getSearchSites(tenantId = "my-tenant-123", options = GetSearchSitesOptions())
3if searchResult.isSome:
4 let siteResp = searchResult.get()
5

获取搜索建议 Internal Link


参数

名称类型必填描述
tenantIdstring
optionsGetSearchSuggestOptions

响应

返回:Option[ModerationSuggestResponse]

示例

getSearchSuggest 示例
Copy Copy
1
2let (suggestOpt, httpResp) = client.getSearchSuggest(
3 tenantId = "my-tenant-123",
4 options = GetSearchSuggestOptions(),
5)
6
7if suggestOpt.isSome:
8 let suggest = suggestOpt.get()
9 echo suggest
10

获取搜索用户 Internal Link

参数

NameTypeRequiredDescription
tenantIdstring
optionsGetSearchUsersOptions

响应

Returns: Option[ModerationUserSearchResponse]

示例

getSearchUsers 示例
Copy Copy
1
2let (searchRes, httpRes) = client.getSearchUsers(tenantId = "my-tenant-123", options = default(GetSearchUsersOptions))
3if searchRes.isSome:
4 let data = searchRes.get()
5 echo data
6

获取信任因子 Internal Link

参数

名称类型必填描述
tenantIdstring
optionsGetTrustFactorOptions

响应

返回:Option[GetUserTrustFactorResponse]

示例

getTrustFactor 示例
Copy Copy
1
2let (trustOpt, httpResp) = client.getTrustFactor(tenantId = "my-tenant-123", options = GetTrustFactorOptions())
3if trustOpt.isSome:
4 let trust = trustOpt.get()
5 discard trust
6

获取用户封禁偏好 Internal Link

参数

名称类型必需描述
tenantIdstring
ssostring = ""

响应

返回:Option[APIModerateGetUserBanPreferencesResponse]

示例

getUserBanPreference 示例
Copy Copy
1
2let (maybePref, httpResp) = client.getUserBanPreference(tenantId = "my-tenant-123", sso = "")
3if maybePref.isSome:
4 let pref = maybePref.get()
5 echo pref
6

获取用户内部档案 Internal Link

参数

名称类型必填描述
tenantIdstring
optionsGetUserInternalProfileOptions

响应

返回:Option[GetUserInternalProfileResponse]

示例

getUserInternalProfile 示例
Copy Copy
1
2let (profileOpt, httpResp) = client.getUserInternalProfile(
3 tenantId = "my-tenant-123",
4 options = GetUserInternalProfileOptions()
5)
6
7if profileOpt.isSome:
8 let profile = profileOpt.get()
9

调整评论投票 Internal Link

参数

名称类型必需描述
tenantIdstringYes
commentIdstringYes
adjustCommentVotesParamsAdjustCommentVotesParamsNo
optionsPostAdjustCommentVotesOptionsNo

响应

返回: Option[AdjustVotesResponse]

示例

postAdjustCommentVotes 示例
Copy Copy
1
2let (adjustRespOpt, httpResp) = client.postAdjustCommentVotes(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-789",
5 adjustCommentVotesParams = AdjustCommentVotesParams(),
6 options = PostAdjustCommentVotesOptions()
7)
8
9if adjustRespOpt.isSome:
10 let adjustResp = adjustRespOpt.get()
11

提交 API 导出 Internal Link

参数

NameTypeRequiredDescription
tenantIdstringYes
optionsPostApiExportOptionsNo

响应

返回: Option[ModerationExportResponse]

示例

postApiExport 示例
Copy Copy
1
2let (optExport, httpResp) = client.postApiExport(tenantId = "my-tenant-123", options = PostApiExportOptions())
3if optExport.isSome:
4 let export = optExport.get()
5 echo export
6

提交对用户的评论封禁 Internal Link

参数

名称类型必需描述
tenantIdstringYes
commentIdstringYes
optionsPostBanUserFromCommentOptionsNo

响应

返回: Option[BanUserFromCommentResult]

示例

postBanUserFromComment 示例
Copy Copy
1
2let (banResult, httpResp) = client.postBanUserFromComment(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-456",
5 options = PostBanUserFromCommentOptions()
6)
7
8if banResult.isSome:
9 let result = banResult.get()
10 echo result
11

撤销用户封禁 Internal Link

参数

NameTypeRequiredDescription
tenantIdstringYes
banUserUndoParamsBanUserUndoParamsNo
ssostring = ""No

响应

Returns: Option[APIEmptyResponse]

示例

postBanUserUndo 示例
Copy Copy
1
2let (apiResp, httpResp) = client.postBanUserUndo(
3 tenantId = "my-tenant-123",
4 banUserUndoParams = BanUserUndoParams(userId = "user-456"),
5 sso = ""
6)
7
8if apiResp.isSome:
9 let _ = apiResp.get()
10

批量提交预封禁摘要 Internal Link


参数

名称类型必需描述
tenantIdstring
bulkPreBanParamsBulkPreBanParams
optionsPostBulkPreBanSummaryOptions

响应

返回:Option[BulkPreBanSummary]

示例

postBulkPreBanSummary 示例
Copy Copy
1
2let bulkParams = BulkPreBanParams(emailAddresses: @["spam@example.com"], ipAddresses: @["203.0.113.5"])
3let opt = PostBulkPreBanSummaryOptions(dryRun: false, maxResults: 0)
4let (summaryOpt, httpResp) = client.postBulkPreBanSummary(tenantId = "my-tenant-123", bulkPreBanParams = bulkParams, options = opt)
5if summaryOpt.isSome:
6 let _ = summaryOpt.get()
7

按 ID 获取评论(批量) Internal Link

参数

名称类型必填描述
tenantIdstringYes
commentsByIdsParamsCommentsByIdsParamsNo
ssostring = ""No

响应

返回:Option[ModerationAPIChildCommentsResponse]

示例

postCommentsByIds 示例
Copy Copy
1
2let tenantId = "my-tenant-123"
3let params = CommentsByIdsParams(commentIds = @["cmt-001", "cmt-002"])
4let (maybeResp, httpResp) = client.postCommentsByIds(tenantId = tenantId, commentsByIdsParams = params, sso = "")
5if maybeResp.isSome:
6 let resp = maybeResp.get()
7 # 根据需要使用 resp
8

提交举报评论 Internal Link

参数

名称类型必需描述
tenantIdstringYes
commentIdstringYes
optionsPostFlagCommentOptionsNo

响应

返回: Option[APIEmptyResponse]

示例

postFlagComment 示例
Copy Copy
1
2let opts = PostFlagCommentOptions()
3let (response, httpResponse) = client.postFlagComment(
4 tenantId = "my-tenant-123",
5 commentId = "comment-987654",
6 options = opts,
7)
8if response.isSome:
9 let result = response.get()
10

提交移除评论 Internal Link

参数

名称类型必需描述
tenantIdstringYes
commentIdstringYes
optionsPostRemoveCommentOptionsNo

响应

返回: Option[PostRemoveCommentApiResponse]

示例

postRemoveComment 示例
Copy Copy
1
2let (apiResponseOpt, httpResp) = client.postRemoveComment(
3 tenantId = "my-tenant-123",
4 commentId = "comment-987654",
5 options = PostRemoveCommentOptions()
6)
7
8if apiResponseOpt.isSome:
9 let apiResponse = apiResponseOpt.get()
10

恢复已删除评论 Internal Link

参数

名称类型必填描述
tenantIdstring
commentIdstring
optionsPostRestoreDeletedCommentOptions

响应

返回:Option[APIEmptyResponse]

示例

postRestoreDeletedComment 示例
Copy Copy
1
2let (respOpt, httpResp) = client.postRestoreDeletedComment(
3 tenantId = "my-tenant-123",
4 commentId = "comment-456",
5 options = default(PostRestoreDeletedCommentOptions)
6)
7
8if respOpt.isSome:
9 let empty = respOpt.get()
10 echo "Comment restored"
11

设置评论审批状态 Internal Link

参数

名称类型必填描述
tenantIdstring
commentIdstring
optionsPostSetCommentApprovalStatusOptions

响应

返回:Option[SetCommentApprovedResponse]

示例

postSetCommentApprovalStatus 示例
Copy Copy
1
2let (approvedOpt, httpResp) = client.postSetCommentApprovalStatus(
3 tenantId = "my-tenant-123",
4 commentId = "comment-7890",
5 options = PostSetCommentApprovalStatusOptions()
6)
7
8if approvedOpt.isSome:
9 let approved = approvedOpt.get()
10 echo approved
11

设置评论复核状态 Internal Link

参数

名称类型必填描述
tenantIdstring
commentIdstring
optionsPostSetCommentReviewStatusOptions

响应

返回:Option[APIEmptyResponse]

示例

postSetCommentReviewStatus 示例
Copy Copy
1
2let (apiResp, httpResp) = client.postSetCommentReviewStatus(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-7890",
5 options = PostSetCommentReviewStatusOptions()
6)
7
8if apiResp.isSome:
9 let _ = apiResp.get()
10 discard
11else:
12 discard
13

设置评论为垃圾状态 Internal Link

参数

名称类型必填描述
tenantIdstringYes
commentIdstringYes
optionsPostSetCommentSpamStatusOptionsNo

响应

返回: Option[APIEmptyResponse]

示例

postSetCommentSpamStatus 示例
Copy Copy
1
2let defaultOpts = PostSetCommentSpamStatusOptions()
3let (maybeResp, httpResp) = client.postSetCommentSpamStatus(tenantId = "my-tenant-123", commentId = "cmt-456789", options = defaultOpts)
4if maybeResp.isSome:
5 let resp = maybeResp.get()
6

设置评论文本(审核) Internal Link

参数

名称类型必需描述
tenantIdstring
commentIdstring
setCommentTextParamsSetCommentTextParams
optionsPostSetCommentTextOptions

响应

返回: Option[SetCommentTextResponse]

示例

postSetCommentText 示例
Copy Copy
1
2let (responseOpt, httpResponse) = client.postSetCommentText(
3 tenantId = "my-tenant-123",
4 commentId = "comment-987654",
5 setCommentTextParams = SetCommentTextParams(),
6 options = PostSetCommentTextOptions()
7)
8
9if responseOpt.isSome:
10 let updatedComment = responseOpt.get()
11

取消举报评论(审核) Internal Link

参数

名称类型必填描述
tenantIdstring
commentIdstring
optionsPostUnFlagCommentOptions

响应

返回: Option[APIEmptyResponse]

示例

postUnFlagComment 示例
Copy Copy
1
2let (maybeResp, httpResp) = client.postUnFlagComment(
3 tenantId = "my-tenant-123",
4 commentId = "cmt-456789",
5 options = default(PostUnFlagCommentOptions)
6)
7
8if maybeResp.isSome:
9 let emptyResp = maybeResp.get()
10

提交投票(审核) Internal Link

参数

名称类型必填描述
tenantIdstringYes
commentIdstringYes
optionsPostVoteOptionsNo

响应

返回:Option[VoteResponse]

示例

postVote 示例
Copy Copy
1
2let (voteOpt, httpResp) = client.postVote(
3 tenantId = "my-tenant-123",
4 commentId = "comment-789",
5 options = default(PostVoteOptions)
6)
7
8if voteOpt.isSome:
9 let vote = voteOpt.get()
10

授予徽章 Internal Link

参数

名称类型必填描述
tenantIdstring
badgeIdstring
optionsPutAwardBadgeOptions

响应

返回:Option[AwardUserBadgeResponse]

示例

putAwardBadge 示例
Copy Copy
1
2let (response, httpResponse) = client.putAwardBadge(
3 tenantId = "my-tenant-123",
4 badgeId = "gold-badge",
5 options = PutAwardBadgeOptions()
6)
7
8if response.isSome:
9 let award = response.get()
10

关闭主题 Internal Link

参数

名称类型必需描述
tenantIdstringYes
urlIdstringYes
ssostring = ""No

响应

返回:Option[APIEmptyResponse]

示例

putCloseThread 示例
Copy Copy
1
2let (respOpt, httpResp) = client.putCloseThread(tenantId = "my-tenant-123", urlId = "news/fastcomments-integration", sso = "")
3if respOpt.isSome:
4 let empty = respOpt.get()
5 echo "Thread successfully closed"
6

移除徽章 Internal Link

参数

名称类型必需描述
tenantIdstringYes
badgeIdstringNo
optionsPutRemoveBadgeOptionsNo

响应

返回:Option[RemoveUserBadgeResponse]

示例

putRemoveBadge 示例
Copy Copy
1
2let (maybeResp, httpResp) = client.putRemoveBadge(
3 tenantId = "my-tenant-123",
4 badgeId = "badge-456",
5 options = PutRemoveBadgeOptions()
6)
7
8if maybeResp.isSome:
9 let badgeResp = maybeResp.get()
10

重新打开主题 Internal Link

参数

名称类型必需描述
tenantIdstring
urlIdstring
ssostring = ""

响应

返回:Option[APIEmptyResponse]

示例

putReopenThread 示例
Copy Copy
1
2let (apiRespOpt, httpResp) = client.putReopenThread(
3 tenantId = "my-tenant-123",
4 urlId = "news/article-title",
5 sso = ""
6)
7
8if apiRespOpt.isSome:
9 let emptyResp = apiRespOpt.get()
10 discard
11

设置信任因子 Internal Link

参数

名称类型必填描述
tenantIdstring
optionsSetTrustFactorOptions

响应

返回: Option[SetUserTrustFactorResponse]

示例

setTrustFactor 示例
Copy Copy
1
2let opts = SetTrustFactorOptions(userId = "user-456", trustFactor = 5, reason = "spam detection")
3let (trustResponse, httpResponse) = client.setTrustFactor(tenantId = "my-tenant-123", options = opts)
4if trustResponse.isSome:
5 let result = trustResponse.get()
6

创建审核员 Internal Link

参数

名称类型必需描述
tenantIdstringYes
createModeratorBodyCreateModeratorBodyNo

响应

返回: Option[CreateModeratorResponse]

示例

createModerator 示例
Copy Copy
1
2let (moderatorRes, httpResp) = client.createModerator(tenantId = "my-tenant-123", createModeratorBody = CreateModeratorBody())
3if moderatorRes.isSome:
4 let moderator = moderatorRes.get()
5

删除审核员 Internal Link

参数

名称类型必填描述
tenantIdstring
idstring
sendEmailstring = ""

响应

返回:Option[APIEmptyResponse]

示例

deleteModerator 示例
Copy Copy
1
2let (apiResp, httpResp) = client.deleteModerator(
3 tenantId = "my-tenant-123",
4 id = "mod-789",
5 sendEmail = "admin@mydomain.com",
6)
7
8if apiResp.isSome:
9 let empty = apiResp.get()
10 echo "Moderator removed"
11

获取审核员 Internal Link

参数

名称类型必需描述
tenantIdstringYes
idstringNo

响应

返回: Option[GetModeratorResponse]

示例

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

获取审核员列表 Internal Link

参数

名称类型必填描述
tenantIdstring
skipfloat64

响应

返回:Option[GetModeratorsResponse]

示例

getModerators 示例
Copy Copy
1
2let (moderatorsOpt, httpResp) = client.getModerators(tenantId = "my-tenant-123", skip = 0.0)
3if moderatorsOpt.isSome:
4 let moderators = moderatorsOpt.get()
5 echo moderators
6

更新审核员 Internal Link

参数

名称类型必需描述
tenantIdstring
idstring
updateModeratorBodyUpdateModeratorBody

响应

返回:Option[APIEmptyResponse]

示例

updateModerator 示例
Copy Copy
1
2let body = UpdateModeratorBody(name = "John Doe", email = "john@example.com", isActive = true)
3let (apiResult, httpResp) = client.updateModerator(tenantId = "my-tenant-123", id = "mod-456", updateModeratorBody = body)
4if apiResult.isSome:
5 let result = apiResult.get()
6

删除通知计数 Internal Link

参数

名称类型必填描述
tenantIdstringYes
idstringNo

响应

返回:Option[APIEmptyResponse]

示例

deleteNotificationCount 示例
Copy Copy
1
2let (apiRespOpt, httpResp) = client.deleteNotificationCount(tenantId = "my-tenant-123", id = "notif-456")
3if apiRespOpt.isSome:
4 let _ = apiRespOpt.get()
5

获取缓存的通知计数 Internal Link

参数

名称类型必填描述
tenantIdstringYes
idstringNo

响应

返回:Option[GetCachedNotificationCountResponse]

示例

getCachedNotificationCount 示例
Copy Copy
1
2let (cachedCountOpt, httpResp) = client.getCachedNotificationCount(tenantId = "my-tenant-123", id = "article-456")
3if cachedCountOpt.isSome:
4 let cachedCount = cachedCountOpt.get()
5 echo cachedCount
6

获取通知计数 Internal Link

参数

名称类型必填描述
tenantIdstringYes
optionsGetNotificationCountOptionsNo

响应

返回: Option[GetNotificationCountResponse]

示例

getNotificationCount 示例
Copy Copy
1
2let (notifOpt, httpResp) = client.getNotificationCount(tenantId = "my-tenant-123", options = GetNotificationCountOptions())
3if notifOpt.isSome:
4 let notif = notifOpt.get()
5 echo notif
6

获取通知 Internal Link

参数

名称类型必需描述
tenantIdstringYes
optionsGetNotificationsOptionsNo

响应

返回: Option[GetNotificationsResponse]

示例

getNotifications 示例
Copy Copy
1
2let (notifOpt, httpResp) = client.getNotifications(tenantId = "my-tenant-123", options = GetNotificationsOptions())
3if notifOpt.isSome:
4 let notifications = notifOpt.get()
5

更新通知 Internal Link

参数

名称类型必填描述
tenantIdstring
idstring
updateNotificationBodyUpdateNotificationBody
userIdstring = ""

响应

返回: Option[APIEmptyResponse]

示例

updateNotification 示例
Copy Copy
1
2let body = UpdateNotificationBody(message: "Your comment was approved", isRead: false)
3let (optResp, httpResp) = client.updateNotification(
4 tenantId = "my-tenant-123",
5 id = "notif-789",
6 updateNotificationBody = body,
7 userId = "user-42"
8)
9if optResp.isSome:
10 let _ = optResp.get()
11

创建 V1 页面反应 Internal Link

参数

名称类型必填描述
tenantIdstring
urlIdstring
titlestring = ""

响应

返回: Option[CreateV1PageReact]

示例

createV1PageReact 示例
Copy Copy
1
2let (pageOpt, httpResp) = client.createV1PageReact(
3 tenantId = "my-tenant-123",
4 urlId = "news/article-456",
5 title = "Breaking News: Nim Takes Over"
6)
7
8if pageOpt.isSome:
9 let page = pageOpt.get()
10 discard page
11 discard httpResp
12

创建 V2 页面反应 Internal Link

参数

名称类型必填描述
tenantIdstringYes
urlIdstringYes
idstringNo
titlestring = ""No

响应

返回: Option[CreateV1PageReact]

示例

createV2PageReact 示例
Copy Copy
1
2let (pageResult, httpResponse) = client.createV2PageReact(
3 tenantId = "my-tenant-123",
4 urlId = "news/article-title",
5 id = "page-456",
6 title = "Breaking News",
7)
8
9if pageResult.isSome:
10 let page = pageResult.get()
11 # 根据需要使用 `page`
12

删除 V1 页面反应 Internal Link

参数

名称类型必需描述
tenantIdstring
urlIdstring

响应

返回: Option[CreateV1PageReact]

示例

deleteV1PageReact 示例
Copy Copy
1
2let (reactOpt, httpResp) = client.deleteV1PageReact(tenantId = "my-tenant-123", urlId = "news/article-title")
3if reactOpt.isSome:
4 let react = reactOpt.get()
5

删除 V2 页面反应 Internal Link

参数

NameTypeRequiredDescription
tenantIdstringYes
urlIdstringYes
idstringNo

响应

返回: Option[CreateV1PageReact]

示例

deleteV2PageReact 示例
Copy Copy
1
2let (maybeReact, httpResp) = client.deleteV2PageReact(
3 tenantId = "my-tenant-123",
4 urlId = "news/article-title",
5 id = "react-456",
6)
7
8if maybeReact.isSome:
9 let react = maybeReact.get()
10 echo react
11

获取 V1 页面点赞 Internal Link


参数

名称类型必填描述
tenantIdstring
urlIdstring

响应

返回: Option[GetV1PageLikes]

示例

getV1PageLikes 示例
Copy Copy
1
2let (response, httpResponse) = client.getV1PageLikes(tenantId = "my-tenant-123", urlId = "news/article-title")
3if response.isSome:
4 let pageLikes = response.get()
5 # 根据需要使用 pageLikes
6

获取 V2 页面反应 Internal Link

参数

名称类型必填描述
tenantIdstring
urlIdstring

响应

返回:Option[GetV2PageReacts]

示例

getV2PageReacts 示例
Copy Copy
1
2let (reactsOpt, httpResp) = client.getV2PageReacts(tenantId = "my-tenant-123", urlId = "news/article-title")
3if reactsOpt.isSome:
4 let reacts = reactsOpt.get()
5 echo reacts
6

获取 V2 页面反应用户 Internal Link

参数

名称类型必填描述
tenantIdstringYes
urlIdstringYes
idstringNo

响应

返回:Option[GetV2PageReactUsersResponse]

示例

getV2PageReactUsers 示例
Copy Copy
1
2let (maybeResponse, httpResponse) = client.getV2PageReactUsers(
3 tenantId = "my-tenant-123",
4 urlId = "news/article-title",
5 id = "user-456"
6)
7
8if maybeResponse.isSome:
9 let resp = maybeResponse.get()
10 echo resp
11

添加页面 Internal Link

参数

名称类型必填描述
tenantIdstringYes
createAPIPageDataCreateAPIPageDataNo

响应

返回:Option[AddPageAPIResponse]

示例

addPage 示例
Copy Copy
1
2let pageData = CreateAPIPageData(
3 urlId = "news/article-2024",
4 title = "Breaking News: Nim Takes Over",
5 description = "An in-depth article about Nim's rise.",
6 tags = @["nim", "programming", "news"]
7)
8
9let (addPageResp, httpResp) = client.addPage(
10 tenantId = "my-tenant-123",
11 createAPIPageData = pageData
12)
13
14if addPageResp.isSome:
15 let resp = addPageResp.get()
16 echo resp
17

删除页面 Internal Link

参数

名称类型必需描述
tenantIdstringYes
idstringNo

响应

返回: Option[DeletePageAPIResponse]

示例

deletePage 示例
Copy Copy
1
2let (deleteRespOpt, httpResp) = client.deletePage(tenantId = "my-tenant-123", id = "news/article-title")
3if deleteRespOpt.isSome:
4 let deleteResp = deleteRespOpt.get()
5 discard deleteResp
6discard httpResp
7

获取离线用户 Internal Link

Past commenters on the page who are NOT currently online. Sorted by displayName.
Use this after exhausting /users/online to render a "Members" section.
Cursor pagination on commenterName: server walks the partial {tenantId, urlId, commenterName}
index from afterName forward via $gt, no $skip cost.

参数

名称类型必填描述
tenantIdstring
urlIdstring
optionsGetOfflineUsersOptions

响应

Returns: Option[PageUsersOfflineResponse]

示例

getOfflineUsers 示例
Copy Copy
1
2let (offlineResp, httpResponse) = client.getOfflineUsers(
3 tenantId = "my-tenant-123",
4 urlId = "news/article-title",
5 options = GetOfflineUsersOptions()
6)
7if offlineResp.isSome:
8 let offline = offlineResp.get()
9 echo offline)
10

获取在线用户 Internal Link

Currently-online viewers of a page: people whose websocket session is subscribed to the page right now.
返回 anonCount + totalCount (room-wide subscribers, including anon viewers we don't enumerate).

参数

名称类型必填描述
tenantIdstringYes
urlIdstringYes
optionsGetOnlineUsersOptionsNo

响应

返回: Option[PageUsersOnlineResponse]

示例

getOnlineUsers 示例
Copy Copy
1
2let opts = GetOnlineUsersOptions()
3let (onlineUsersOpt, httpResp) = client.getOnlineUsers(tenantId = "my-tenant-123", urlId = "news/article-title", options = opts)
4if onlineUsersOpt.isSome:
5 let onlineUsers = onlineUsersOpt.get()
6 echo onlineUsers
7

通过 URLId 获取页面 Internal Link

参数

名称类型必填描述
tenantIdstringYes
urlIdstringYes

响应

返回: Option[GetPageByURLIdAPIResponse]

示例

getPageByURLId 示例
Copy Copy
1
2let (pageOpt, httpRes) = client.getPageByURLId(tenantId = "my-tenant-123", urlId = "news/article-title")
3if pageOpt.isSome:
4 let page = pageOpt.get()
5 echo page
6

获取页面列表 Internal Link

参数

NameTypeRequiredDescription
tenantIdstringYes

响应

返回:Option[GetPagesAPIResponse]

示例

getPages 示例
Copy Copy
1
2let (pagesOpt, httpResp) = client.getPages(tenantId = "my-tenant-123")
3if pagesOpt.isSome:
4 let pages = pagesOpt.get()
5 echo pages
6else:
7 echo "No pages returned"
8echo httpResp
9

获取公开页面列表 Internal Link

列出租户的页面。由 FChat 桌面客户端用于填充其房间列表。
需要在每个页面的解析自定义配置中将 enableFChat 设置为 true。
需要 SSO 的页面会根据请求用户的组访问权限进行过滤。

参数

名称类型必需描述
tenantIdstringYes
optionsGetPagesPublicOptionsNo

响应

返回:Option[GetPublicPagesResponse]

示例

getPagesPublic 示例
Copy Copy
1
2let (response, httpResponse) = client.getPagesPublic(tenantId = "my-tenant-123", options = GetPagesPublicOptions())
3if response.isSome:
4 let pages = response.get()
5 echo pages
6

获取用户信息 Internal Link

Bulk user info for a tenant. Given userIds, return display info from User / SSOUser.
Used by the comment widget to enrich users that just appeared via a presence event.
No page context: privacy is enforced uniformly (private profiles are masked).

参数

名称类型必填描述
tenantIdstring
idsstring

响应

Returns: Option[PageUsersInfoResponse]

示例

获取用户信息 示例
Copy Copy
1
2let (usersInfoOpt, httpResp) = client.getUsersInfo(tenantId = "my-tenant-123", ids = "user42")
3if usersInfoOpt.isSome:
4 let usersInfo = usersInfoOpt.get()
5

部分更新页面 Internal Link

参数

名称类型必需描述
tenantIdstring
idstring
updateAPIPageDataUpdateAPIPageData

响应

返回:Option[PatchPageAPIResponse]

示例

patchPage 示例
Copy Copy
1
2let (response, httpResponse) = client.patchPage(
3 tenantId = "my-tenant-123",
4 id = "news/article-456",
5 updateAPIPageData = UpdateAPIPageData(title = "Updated article title", description = "Revised description")
6)
7
8if response.isSome:
9 let resp = response.get()
10

删除待处理的 Webhook 事件 Internal Link

参数

名称类型必填描述
tenantIdstring
idstring

响应

返回:Option[APIEmptyResponse]

示例

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

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

参数

名称类型必需描述
tenantIdstring
optionsGetPendingWebhookEventCountOptions

响应

返回: Option[GetPendingWebhookEventCountResponse]

示例

getPendingWebhookEventCount 示例
Copy Copy
1
2let (pendingCountOpt, httpResponse) = client.getPendingWebhookEventCount(tenantId = "my-tenant-123", options = GetPendingWebhookEventCountOptions())
3if pendingCountOpt.isSome:
4 let pendingCount = pendingCountOpt.get()
5 echo pendingCount
6

获取待处理 Webhook 事件 Internal Link

参数

名称类型必需描述
tenantIdstringYes
optionsGetPendingWebhookEventsOptionsNo

响应

返回: Option[GetPendingWebhookEventsResponse]

示例

getPendingWebhookEvents 示例
Copy Copy
1
2let (maybeResp, httpResp) = client.getPendingWebhookEvents(
3 tenantId = "my-tenant-123",
4 options = GetPendingWebhookEventsOptions()
5)
6
7if maybeResp.isSome:
8 let resp = maybeResp.get()
9

创建问题配置 Internal Link

参数

名称类型必填描述
tenantIdstring
createQuestionConfigBodyCreateQuestionConfigBody

响应

返回: Option[CreateQuestionConfigResponse]

示例

createQuestionConfig 示例
Copy Copy
1
2let configBody = CreateQuestionConfigBody()
3let (maybeResp, httpResp) = client.createQuestionConfig(
4 tenantId = "my-tenant-123",
5 createQuestionConfigBody = configBody,
6)
7if maybeResp.isSome:
8 let resp = maybeResp.get()
9 # 根据需要使用 resp
10

删除问题配置 Internal Link

参数

名称类型必需描述
tenantIdstring
idstring

响应

返回:Option[APIEmptyResponse]

示例

deleteQuestionConfig 示例
Copy Copy
1
2let (apiResult, httpResponse) = client.deleteQuestionConfig(tenantId = "my-tenant-123", id = "question-config-456")
3if apiResult.isSome:
4 let empty = apiResult.get()
5

获取问题配置 Internal Link

参数

名称类型必需描述
tenantIdstring
idstring

响应

返回:Option[GetQuestionConfigResponse]

示例

getQuestionConfig 示例
Copy Copy
1
2let (questionConfigOpt, httpResp) = client.getQuestionConfig(tenantId = "my-tenant-123", id = "question-987")
3if questionConfigOpt.isSome:
4 let config = questionConfigOpt.get()
5 echo config
6

获取问题配置列表 Internal Link

Parameters

名称类型必填描述
tenantIdstring
skipfloat64

Response

返回:Option[GetQuestionConfigsResponse]

Example

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 echo configs
6

更新问题配置 Internal Link

参数

名称类型必填描述
tenantIdstring
idstring
updateQuestionConfigBodyUpdateQuestionConfigBody

响应

返回:Option[APIEmptyResponse]

示例

updateQuestionConfig 示例
Copy Copy
1
2let (apiResp, httpResp) = client.updateQuestionConfig(
3 tenantId = "my-tenant-123",
4 id = "question-456",
5 updateQuestionConfigBody = UpdateQuestionConfigBody()
6)
7
8if apiResp.isSome:
9 let resp = apiResp.get()
10

创建问题结果 Internal Link

参数

名称类型必需描述
tenantIdstring
createQuestionResultBodyCreateQuestionResultBody

响应

返回: Option[CreateQuestionResultResponse]

示例

createQuestionResult 示例
Copy Copy
1
2let tenantId = "my-tenant-123"
3let body = CreateQuestionResultBody()
4let (optResult, httpResp) = client.createQuestionResult(tenantId = tenantId, createQuestionResultBody = body)
5if optResult.isSome:
6 let result = optResult.get()
7 echo result
8

删除问题结果 Internal Link

参数

名称类型必填描述
tenantIdstring
idstring

响应

返回: Option[APIEmptyResponse]

示例

deleteQuestionResult 示例
Copy Copy
1
2let (maybeResult, httpResp) = client.deleteQuestionResult(tenantId = "my-tenant-123", id = "question-456")
3if maybeResult.isSome:
4 let result = maybeResult.get()
5

获取问题结果 Internal Link

参数

名称类型必填描述
tenantIdstringYes
idstringNo

响应

返回:Option[GetQuestionResultResponse]

示例

getQuestionResult 示例
Copy Copy
1
2let (optResult, httpResp) = client.getQuestionResult(tenantId = "my-tenant-123", id = "question-456")
3if optResult.isSome:
4 let result = optResult.get()
5 discard result
6

获取问题结果列表 Internal Link

参数

名称类型必填描述
tenantIdstring
optionsGetQuestionResultsOptions

响应

返回:Option[GetQuestionResultsResponse]

示例

getQuestionResults 示例
Copy Copy
1
2let (response, httpResponse) = client.getQuestionResults(
3 tenantId = "my-tenant-123",
4 options = GetQuestionResultsOptions()
5)
6
7if response.isSome:
8 let results = response.get()
9 echo results
10

更新问题结果 Internal Link

参数

名称类型必填描述
tenantIdstringYes
idstringNo
updateQuestionResultBodyUpdateQuestionResultBodyNo

响应

返回: Option[APIEmptyResponse]

示例

updateQuestionResult 示例
Copy Copy
1
2let (optResp, httpResp) = client.updateQuestionResult(
3 tenantId = "my-tenant-123",
4 id = "question-456",
5 updateQuestionResultBody = UpdateQuestionResultBody()
6)
7
8if optResp.isSome:
9 let resp = optResp.get()
10

汇总问题结果 Internal Link

参数

名称类型必需描述
tenantIdstring
optionsAggregateQuestionResultsOptions

响应

返回:Option[AggregateQuestionResultsResponse]

示例

aggregateQuestionResults 示例
Copy Copy
1
2let opts = AggregateQuestionResultsOptions()
3let (aggResultOpt, httpResp) = client.aggregateQuestionResults(tenantId = "my-tenant-123", options = opts)
4if aggResultOpt.isSome:
5 let aggResult = aggResultOpt.get()
6

批量汇总问题结果 Internal Link

参数

名称类型必需描述
tenantIdstringYes
bulkAggregateQuestionResultsRequestBulkAggregateQuestionResultsRequestNo
forceRecalculateboolNo

响应

返回: Option[BulkAggregateQuestionResultsResponse]

示例

bulkAggregateQuestionResults 示例
Copy Copy
1
2let request = BulkAggregateQuestionResultsRequest()
3let (maybeResult, httpResp) = client.bulkAggregateQuestionResults(
4 tenantId = "my-tenant-123",
5 bulkAggregateQuestionResultsRequest = request,
6 forceRecalculate = false)
7
8if maybeResult.isSome:
9 let result = maybeResult.get()
10

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

参数

名称类型必填描述
tenantIdstring
optionsCombineCommentsWithQuestionResultsOptions

响应

返回: Option[CombineQuestionResultsWithCommentsResponse]

示例

combineCommentsWithQuestionResults 示例
Copy Copy
1
2let (combineOpt, httpResponse) = client.combineCommentsWithQuestionResults(
3 tenantId = "my-tenant-123",
4 options = default(CombineCommentsWithQuestionResultsOptions)
5)
6
7if combineOpt.isSome:
8 let combineResult = combineOpt.get()
9

添加 SSO 用户 Internal Link

参数

名称类型必填描述
tenantIdstringYes
createAPISSOUserDataCreateAPISSOUserDataNo

响应

返回: Option[AddSSOUserAPIResponse]

示例

addSSOUser 示例
Copy Copy
1
2let (optResp, httpResp) = client.addSSOUser(tenantId = "my-tenant-123", createAPISSOUserData = CreateAPISSOUserData())
3if optResp.isSome:
4 let userResp = optResp.get()
5

删除 SSO 用户 Internal Link

参数

名称类型必填描述
tenantIdstring
idstring
optionsDeleteSSOUserOptions

响应

返回:Option[DeleteSSOUserAPIResponse]

示例

deleteSSOUser 示例
Copy Copy
1
2let (apiRespOpt, httpResp) = client.deleteSSOUser(
3 tenantId = "my-tenant-123",
4 id = "user-456",
5 options = DeleteSSOUserOptions()
6)
7
8if apiRespOpt.isSome:
9 let apiResp = apiRespOpt.get()
10

通过邮箱获取 SSO 用户 Internal Link

参数

名称类型必填描述
tenantIdstringYes
emailstringNo

响应

返回:Option[GetSSOUserByEmailAPIResponse]

示例

getSSOUserByEmail 示例
Copy Copy
1
2let (optResp, httpResp) = client.getSSOUserByEmail(tenantId = "my-tenant-123", email = "john.doe@example.com")
3if optResp.isSome:
4 let user = optResp.get()
5 discard user
6

通过 ID 获取 SSO 用户 Internal Link

参数

名称类型必需描述
tenantIdstring
idstring

响应

返回:Option[GetSSOUserByIdAPIResponse]

示例

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

获取 SSO 用户列表 Internal Link

参数

名称类型必填描述
tenantIdstring
skipint

响应

返回:Option[GetSSOUsersResponse]

示例

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

部分更新 SSO 用户 Internal Link

参数

名称类型必填描述
tenantIdstringYes
idstringNo
updateAPISSOUserDataUpdateAPISSOUserDataNo
updateCommentsboolNo

响应

返回: Option[PatchSSOUserAPIResponse]

示例

patchSSOUser 示例
Copy Copy
1
2let updateData = UpdateAPISSOUserData()
3let (responseOpt, httpResponse) = client.patchSSOUser(
4 tenantId = "my-tenant-123",
5 id = "user-789",
6 updateAPISSOUserData = updateData,
7 updateComments = true)
8if responseOpt.isSome:
9 let response = responseOpt.get()
10 echo response
11echo httpResponse.statusCode
12

替换 SSO 用户 Internal Link

参数

名称类型必填描述
tenantIdstring
idstring
updateAPISSOUserDataUpdateAPISSOUserData
updateCommentsbool

响应

返回: Option[PutSSOUserAPIResponse]

示例

putSSOUser 示例
Copy Copy
1
2let (apiRespOpt, httpResp) = client.putSSOUser(
3 tenantId = "my-tenant-123",
4 id = "user-456",
5 updateAPISSOUserData = default(UpdateAPISSOUserData),
6 updateComments = false)
7
8if apiRespOpt.isSome:
9 let apiResp = apiRespOpt.get()
10 echo apiResp
11

创建订阅 Internal Link

参数

名称类型必填描述
tenantIdstringYes
createAPIUserSubscriptionDataCreateAPIUserSubscriptionDataNo

响应

返回: Option[CreateSubscriptionAPIResponse]

示例

createSubscription 示例
Copy Copy
1
2let (respOpt, httpResp) = client.createSubscription(
3 tenantId = "my-tenant-123",
4 createAPIUserSubscriptionData = default(CreateAPIUserSubscriptionData),
5)
6
7if respOpt.isSome:
8 let resp = respOpt.get()
9

删除订阅 Internal Link

参数

名称类型必填描述
tenantIdstring
idstring
userIdstring = ""

响应

返回:Option[DeleteSubscriptionAPIResponse]

示例

deleteSubscription 示例
Copy Copy
1
2let (maybeResp, httpResp) = client.deleteSubscription(
3 tenantId = "my-tenant-123",
4 id = "sub-789",
5 userId = ""
6)
7
8if maybeResp.isSome:
9 let apiResult = maybeResp.get()
10 # 根据需要使用 apiResult
11

获取订阅列表 Internal Link

参数

名称类型必填描述
tenantIdstring
userIdstring = ""

响应

返回:Option[GetSubscriptionsAPIResponse]

示例

getSubscriptions 示例
Copy Copy
1
2let (subscriptionsOpt, httpResp) = client.getSubscriptions(tenantId = "my-tenant-123", userId = "user-456")
3if subscriptionsOpt.isSome:
4 let subscriptions = subscriptionsOpt.get()
5 echo subscriptions
6

更新订阅 Internal Link

参数

名称类型必需描述
tenantIdstringYes
idstringNo
updateAPIUserSubscriptionDataUpdateAPIUserSubscriptionDataNo
userIdstring = ""No

响应

返回:Option[UpdateSubscriptionAPIResponse]

示例

updateSubscription 示例
Copy Copy
1
2let subscriptionData = UpdateAPIUserSubscriptionData(
3 planId = "premium-plan",
4 isActive = true,
5 expiresAt = "2025-01-01",
6)
7
8let (responseOpt, httpResponse) = client.updateSubscription(
9 tenantId = "my-tenant-123",
10 id = "sub-456",
11 updateAPIUserSubscriptionData = subscriptionData,
12 userId = "user-789",
13)
14
15if responseOpt.isSome:
16 let subscriptionResult = responseOpt.get()
17

获取租户每日使用情况 Internal Link

参数

名称类型必填描述
tenantIdstring
optionsGetTenantDailyUsagesOptions

响应

返回:Option[GetTenantDailyUsagesResponse]

示例

getTenantDailyUsages 示例
Copy Copy
1
2let (respOpt, httpResp) = client.getTenantDailyUsages(
3 tenantId = "my-tenant-123",
4 options = default(GetTenantDailyUsagesOptions),
5)
6if respOpt.isSome:
7 let usage = respOpt.get()
8 echo usage
9 echo httpResp.statusCode
10

创建租户套餐 Internal Link

参数

名称类型必填描述
tenantIdstring
createTenantPackageBodyCreateTenantPackageBody

响应

返回: Option[CreateTenantPackageResponse]

示例

createTenantPackage 示例
Copy Copy
1
2let (responseOpt, httpResponse) = client.createTenantPackage(
3 tenantId = "my-tenant-123",
4 createTenantPackageBody = CreateTenantPackageBody()
5)
6
7if responseOpt.isSome:
8 let response = responseOpt.get()
9

删除租户套餐 Internal Link

参数

名称类型必填描述
tenantIdstring
idstring

响应

返回: Option[APIEmptyResponse]

示例

deleteTenantPackage 示例
Copy Copy
1
2let (apiResponse, httpResponse) = client.deleteTenantPackage(tenantId = "my-tenant-123", id = "pkg-456def")
3if apiResponse.isSome:
4 let emptyResponse = apiResponse.get()
5

获取租户套餐 Internal Link

参数

名称类型必填描述
tenantIdstring
idstring

返回

返回: Option[GetTenantPackageResponse]

示例

getTenantPackage 示例
Copy Copy
1
2let (pkgOpt, httpResp) = client.getTenantPackage(tenantId = "my-tenant-123", id = "premium-plan")
3if pkgOpt.isSome:
4 let pkg = pkgOpt.get()
5 echo pkg
6

获取租户套餐列表 Internal Link

参数

名称类型必填描述
tenantIdstring
skipfloat64

响应

返回: Option[GetTenantPackagesResponse]

示例

getTenantPackages 示例
Copy Copy
1
2let (maybeResp, httpResp) = client.getTenantPackages(tenantId = "my-tenant-123", skip = 0.0)
3if maybeResp.isSome:
4 let packages = maybeResp.get()
5 echo packages
6 echo httpResp.statusCode
7

替换租户套餐 Internal Link

参数

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
replaceTenantPackageBodyReplaceTenantPackageBodyNo

响应

返回: Option[APIEmptyResponse]

示例

replaceTenantPackage 示例
Copy Copy
1
2let (optResp, httpResp) = client.replaceTenantPackage(
3 tenantId = "my-tenant-123",
4 id = "pkg-456",
5 replaceTenantPackageBody = ReplaceTenantPackageBody()
6)
7if optResp.isSome:
8 let resp = optResp.get()
9 discard resp
10

更新租户套餐 Internal Link

参数

名称类型必填描述
tenantIdstringYes
idstringNo
updateTenantPackageBodyUpdateTenantPackageBodyNo

响应

返回: Option[APIEmptyResponse]

示例

updateTenantPackage 示例
Copy Copy
1
2let body = UpdateTenantPackageBody()
3let (optResp, httpResp) = client.updateTenantPackage(
4 tenantId = "my-tenant-123",
5 id = "premium-plan",
6 updateTenantPackageBody = body
7)
8if optResp.isSome:
9 let empty = optResp.get()
10

创建租户用户 Internal Link

参数

名称类型必填描述
tenantIdstring
createTenantUserBodyCreateTenantUserBody

响应

返回: Option[CreateTenantUserResponse]

示例

createTenantUser 示例
Copy Copy
1
2let tenantId = "my-tenant-123"
3let userBody = CreateTenantUserBody(
4 email: "john.doe@example.com",
5 name: "John Doe",
6 password: "s3cr3tP@ss",
7 role: "admin"
8)
9let (optResp, httpResp) = client.createTenantUser(
10 tenantId = tenantId,
11 createTenantUserBody = userBody
12)
13if optResp.isSome:
14 let resp = optResp.get()
15 echo resp.userId
16

删除租户用户 Internal Link

参数

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
optionsDeleteTenantUserOptionsNo

响应

返回: Option[APIEmptyResponse]

示例

deleteTenantUser 示例
Copy Copy
1
2let (response, httpResponse) = client.deleteTenantUser(
3 tenantId = "my-tenant-123",
4 id = "user-456",
5 options = DeleteTenantUserOptions(),
6)
7if response.isSome:
8 let empty = response.get()
9 echo "User successfully deleted"
10

获取租户用户 Internal Link

参数

NameTypeRequiredDescription
tenantIdstring
idstring

响应

返回:Option[GetTenantUserResponse]

示例

getTenantUser 示例
Copy Copy
1
2let (maybeUser, httpResp) = client.getTenantUser(tenantId = "my-tenant-123", id = "user-456")
3if maybeUser.isSome:
4 let user = maybeUser.get()
5 echo user
6

获取租户用户列表 Internal Link

参数

名称类型必需描述
tenantIdstring
skipfloat64

响应

返回:Option[GetTenantUsersResponse]

示例

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

替换租户用户 Internal Link

参数

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
replaceTenantUserBodyReplaceTenantUserBodyNo
updateCommentsstring = ""No

响应

Returns: Option[APIEmptyResponse]

示例

replaceTenantUser 示例
Copy Copy
1
2let replaceBody = ReplaceTenantUserBody()
3let (response, httpResponse) = client.replaceTenantUser(
4 tenantId = "my-tenant-123",
5 id = "user-456",
6 replaceTenantUserBody = replaceBody,
7 updateComments = "")
8if response.isSome:
9 let empty = response.get()
10

参数

名称类型必需描述
tenantIdstring
idstring
redirectURLstring = ""

响应

返回:Option[APIEmptyResponse]

示例

sendLoginLink 示例
Copy Copy
1
2let (maybeResp, httpResp) = client.sendLoginLink(
3 tenantId = "my-tenant-123",
4 id = "user-456",
5 redirectURL = "https://myapp.example.com/login-success"
6)
7
8if maybeResp.isSome:
9 let emptyResp = maybeResp.get()
10

更新租户用户 Internal Link

参数

名称类型必需描述
tenantIdstring
idstring
updateTenantUserBodyUpdateTenantUserBody
updateCommentsstring = ""

响应

返回:Option[APIEmptyResponse]

示例

updateTenantUser 示例
Copy Copy
1
2let updateBody = UpdateTenantUserBody()
3let (optResp, httpResp) = client.updateTenantUser(
4 tenantId = "my-tenant-123",
5 id = "user-456",
6 updateTenantUserBody = updateBody,
7 updateComments = "Changed role to moderator",
8)
9if optResp.isSome:
10 let _ = optResp.get()
11

创建租户 Internal Link

参数

名称类型必填描述
tenantIdstring
createTenantBodyCreateTenantBody

响应

返回:Option[CreateTenantResponse]

示例

createTenant 示例
Copy Copy
1
2let (maybeResp, httpResp) = client.createTenant(tenantId = "my-tenant-123", createTenantBody = CreateTenantBody())
3if maybeResp.isSome:
4 let resp = maybeResp.get()
5 discard resp
6discard httpResp
7

删除租户 Internal Link


参数

名称类型必填描述
tenantIdstring
idstring
surestring = ""

响应

返回: Option[APIEmptyResponse]

示例

deleteTenant 示例
Copy Copy
1
2let (respOpt, httpResp) = client.deleteTenant(tenantId = "my-tenant-123", id = "tenant-to-delete", sure = "yes")
3if respOpt.isSome:
4 let emptyResp = respOpt.get()
5

获取租户 Internal Link

参数

名称类型必填描述
tenantIdstringYes
idstringNo

响应

返回: Option[GetTenantResponse]

示例

getTenant 示例
Copy Copy
1
2let (tenantResponse, httpResponse) = client.getTenant(tenantId = "my-tenant-123", id = "config-001")
3if tenantResponse.isSome:
4 let tenant = tenantResponse.get()
5 echo tenant
6

获取租户列表 Internal Link

参数

名称类型必填描述
tenantIdstringYes
optionsGetTenantsOptionsNo

响应

返回: Option[GetTenantsResponse]

示例

getTenants 示例
Copy Copy
1
2let (maybeResp, httpResp) = client.getTenants(tenantId = "my-tenant-123", options = GetTenantsOptions())
3if maybeResp.isSome:
4 let resp = maybeResp.get()
5 echo resp
6

更新租户 Internal Link

参数

名称类型必填描述
tenantIdstring
idstring
updateTenantBodyUpdateTenantBody

响应

返回: Option[APIEmptyResponse]

示例

updateTenant 示例
Copy Copy
1
2let updateBody = UpdateTenantBody(
3 name: "My Tenant",
4 description: "Tenant for news site",
5 isActive: true,
6 allowedDomains: @["example.com", "news.com"]
7)
8
9let (apiResp, httpResp) = client.updateTenant(
10 tenantId = "my-tenant-123",
11 id = "tenant-456",
12 updateTenantBody = updateBody
13)
14
15if apiResp.isSome:
16 let emptyResp = apiResp.get()
17

更改工单状态 Internal Link

参数

名称类型必填描述
tenantIdstring
userIdstring
idstring
changeTicketStateBodyChangeTicketStateBody

响应

返回:Option[ChangeTicketStateResponse]

示例

changeTicketState 示例
Copy Copy
1
2let (optResp, httpResp) = client.changeTicketState(
3 tenantId = "my-tenant-001",
4 userId = "user-42",
5 id = "ticket-12345",
6 changeTicketStateBody = ChangeTicketStateBody(state = "closed")
7)
8
9if optResp.isSome:
10 let resp = optResp.get()
11 echo resp
12

创建工单 Internal Link

参数

名称类型必填描述
tenantIdstringYes
userIdstringNo
createTicketBodyCreateTicketBodyNo

响应

返回:Option[CreateTicketResponse]

示例

createTicket 示例
Copy Copy
1
2let tenantId = "my-tenant-123"
3let userId = "user-456"
4let ticketBody = CreateTicketBody()
5let (responseOpt, httpResponse) = client.createTicket(tenantId = tenantId, userId = userId, createTicketBody = ticketBody)
6if responseOpt.isSome:
7 let ticketResponse = responseOpt.get()
8

获取工单 Internal Link

参数

名称类型必填描述
tenantIdstringYes
idstringNo
userIdstring = ""No

响应

返回: Option[GetTicketResponse]

示例

getTicket 示例
Copy Copy
1
2let (ticketOpt, httpResp) = client.getTicket(tenantId = "my-tenant-123", id = "ticket-456", userId = "")
3if ticketOpt.isSome:
4 let ticket = ticketOpt.get()
5 discard ticket
6

获取工单列表 Internal Link

参数

名称类型必需描述
tenantIdstring
optionsGetTicketsOptions

响应

返回: Option[GetTicketsResponse]

示例

getTickets 示例
Copy Copy
1
2let (ticketsOpt, httpResp) = client.getTickets(tenantId = "my-tenant-123", options = GetTicketsOptions())
3if ticketsOpt.isSome:
4 let tickets = ticketsOpt.get()
5 # 根据需要使用 tickets
6

获取翻译 Internal Link

参数

名称类型必填描述
namespacestring
componentstring
optionsGetTranslationsOptions

响应

返回:Option[GetTranslationsResponse]

示例

getTranslations 示例
Copy Copy
1
2let opts = GetTranslationsOptions()
3let (maybeResp, httpResp) = client.getTranslations(namespace = "my-tenant-123", component = "news/article-title", options = opts)
4if maybeResp.isSome:
5 let resp = maybeResp.get()
6 echo resp
7

上传图片 Internal Link

上传并调整图像尺寸

参数

名称类型必填描述
tenantIdstring
filestring
optionsUploadImageOptions

响应

返回:Option[UploadImageResponse]

示例

uploadImage 示例
Copy Copy
1
2let (uploadResult, httpResponse) = client.uploadImage(
3 tenantId = "my-tenant-123",
4 file = "images/avatar.jpg",
5 options = UploadImageOptions()
6)
7
8if uploadResult.isSome:
9 let result = uploadResult.get()
10 # 根据需要使用结果
11

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

参数

名称类型必填描述
tenantIdstringYes
idstringNo

响应

返回:Option[APIGetUserBadgeProgressResponse]

示例

getUserBadgeProgressById 示例
Copy Copy
1
2let (badgeProgressOpt, httpResp) = client.getUserBadgeProgressById(tenantId = "my-tenant-123", id = "badge-456")
3if badgeProgressOpt.isSome:
4 let badgeProgress = badgeProgressOpt.get()
5 echo badgeProgress
6

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

参数

名称类型必填描述
tenantIdstringYes
userIdstringNo

响应

返回:Option[APIGetUserBadgeProgressResponse]

示例

getUserBadgeProgressByUserId 示例
Copy Copy
1
2let (badgeProgressOpt, httpResp) = client.getUserBadgeProgressByUserId(tenantId = "my-tenant-123", userId = "user-456")
3if badgeProgressOpt.isSome:
4 let progress = badgeProgressOpt.get()
5 echo progress
6

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

参数

名称类型必需描述
tenantIdstring
optionsGetUserBadgeProgressListOptions

响应

返回:Option[APIGetUserBadgeProgressListResponse]

示例

getUserBadgeProgressList 示例
Copy Copy
1
2let (response, httpResponse) = client.getUserBadgeProgressList(tenantId = "my-tenant-123", options = GetUserBadgeProgressListOptions())
3if response.isSome:
4 let badgeProgress = response.get()
5

创建用户徽章 Internal Link

参数

名称类型必需描述
tenantIdstringYes
createUserBadgeParamsCreateUserBadgeParamsNo

响应

返回: Option[APICreateUserBadgeResponse]

示例

createUserBadge 示例
Copy Copy
1
2let (badgeRespOpt, httpResp) = client.createUserBadge(tenantId = "my-tenant-123", createUserBadgeParams = default(CreateUserBadgeParams))
3if badgeRespOpt.isSome:
4 let badgeResp = badgeRespOpt.get()
5

删除用户徽章 Internal Link

参数

名称类型必填描述
tenantIdstring
idstring

响应

返回: Option[APIEmptySuccessResponse]

示例

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

获取用户徽章 Internal Link

参数

名称类型必需描述
tenantIdstring
idstring

响应

返回: Option[APIGetUserBadgeResponse]

示例

getUserBadge 示例
Copy Copy
1
2let (badgeOpt, httpResp) = client.getUserBadge(tenantId = "my-tenant-123", id = "user-789")
3if badgeOpt.isSome:
4 let badge = badgeOpt.get()
5 echo badge
6else:
7 echo "No badge found"
8echo httpResp.statusCode
9

获取用户徽章列表 Internal Link

参数

NameTypeRequiredDescription
tenantIdstringYes
optionsGetUserBadgesOptionsNo

响应

返回: Option[APIGetUserBadgesResponse]

示例

getUserBadges 示例
Copy Copy
1
2let opts = GetUserBadgesOptions()
3let (badgesOpt, httpResp) = client.getUserBadges(tenantId = "my-tenant-123", options = opts)
4if badgesOpt.isSome:
5 let badges = badgesOpt.get()
6

更新用户徽章 Internal Link

参数

名称类型必填描述
tenantIdstringYes
idstringNo
updateUserBadgeParamsUpdateUserBadgeParamsNo

响应

返回: Option[APIEmptySuccessResponse]

示例

updateUserBadge 示例
Copy Copy
1
2let params = UpdateUserBadgeParams()
3let (maybeResp, httpResp) = client.updateUserBadge(tenantId = "my-tenant-123", id = "user-456", updateUserBadgeParams = params)
4if maybeResp.isSome:
5 let success = maybeResp.get()
6

获取用户通知计数 Internal Link

参数

名称类型必需描述
tenantIdstring
ssostring = ""

响应

返回:Option[GetUserNotificationCountResponse]

示例

getUserNotificationCount 示例
Copy Copy
1
2let (optResp, httpResp) = client.getUserNotificationCount(tenantId = "my-tenant-123", sso = "")
3if optResp.isSome:
4 let resp = optResp.get()
5 echo resp
6

获取用户通知 Internal Link

参数

名称类型必填描述
tenantIdstring
optionsGetUserNotificationsOptions

响应

返回:Option[GetMyNotificationsResponse]

示例

getUserNotifications 示例
Copy Copy
1
2let (maybeResponse, httpResponse) = client.getUserNotifications(tenantId = "my-tenant-123", options = GetUserNotificationsOptions())
3if maybeResponse.isSome:
4 let notifications = maybeResponse.get()
5

重置用户通知计数 Internal Link

参数

名称类型必填描述
tenantIdstring
ssostring = ""

响应

返回: Option[ResetUserNotificationsResponse]

示例

resetUserNotificationCount 示例
Copy Copy
1
2let (resetRespOpt, httpResp) = client.resetUserNotificationCount(tenantId = "my-tenant-123", sso = "user-456")
3if resetRespOpt.isSome:
4 let resetResp = resetRespOpt.get()
5 echo resetResp
6else:
7 echo "Reset notification count response not available"
8

重置用户通知 Internal Link

参数

名称类型必填描述
tenantIdstringYes
optionsResetUserNotificationsOptionsNo

响应

返回:Option[ResetUserNotificationsResponse]

示例

resetUserNotifications 示例
Copy Copy
1
2let (maybeResp, httpResp) = client.resetUserNotifications(
3 tenantId = "my-tenant-123",
4 options = ResetUserNotificationsOptions())
5if maybeResp.isSome:
6 let resp = maybeResp.get()
7

更新用户评论订阅状态(通知) Internal Link

为特定评论启用或禁用通知。

参数

名称类型必填描述
tenantIdstring
notificationIdstring
optedInOrOutstring
commentIdstring
ssostring = ""

响应

返回: Option[UpdateUserNotificationCommentSubscriptionStatusResponse]

示例

updateUserNotificationCommentSubscriptionStatus 示例
Copy Copy
1
2let (optResp, httpResp) = client.updateUserNotificationCommentSubscriptionStatus(
3 tenantId = "my-tenant-123",
4 notificationId = "notif-456",
5 optedInOrOut = "opted-in",
6 commentId = "comment-789",
7 sso = ""
8)
9
10if optResp.isSome:
11 let resp = optResp.get()
12

更新用户页面订阅状态(通知) Internal Link

启用或禁用页面的通知。当用户订阅页面时,会为新的根评论以及其他情况创建通知

参数

名称类型必填描述
tenantIdstringYes
urlIdstringYes
urlstringNo
pageTitlestringNo
subscribedOrUnsubscribedstringNo
ssostring = ""No

响应

Returns: Option[UpdateUserNotificationPageSubscriptionStatusResponse]

示例

updateUserNotificationPageSubscriptionStatus 示例
Copy Copy
1
2let (optResp, httpResp) = client.updateUserNotificationPageSubscriptionStatus(
3 tenantId = "my-tenant-123",
4 urlId = "news/article-456",
5 url = "https://example.com/news/article-456",
6 pageTitle = "Breaking News: Something Happened",
7 subscribedOrUnsubscribed = "subscribed",
8 sso = ""
9)
10
11if optResp.isSome:
12 let resp = optResp.get()
13 # 进一步处理响应
14

更新用户通知状态 Internal Link


参数

名称类型必需描述
tenantIdstringYes
notificationIdstringNo
newStatusstringNo
ssostring = ""No

响应

返回:Option[UpdateUserNotificationStatusResponse]

示例

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

获取用户在线状态列表 Internal Link

参数

名称类型必填描述
tenantIdstring
urlIdWSstring
userIdsstring

响应

返回:Option[GetUserPresenceStatusesResponse]

示例

getUserPresenceStatuses 示例
Copy Copy
1
2let (presenceOpt, httpResp) = client.getUserPresenceStatuses(tenantId = "my-tenant-123", urlIdWS = "news/article-title", userIds = "user42")
3if presenceOpt.isSome:
4 let presence = presenceOpt.get()
5

搜索用户 Internal Link

参数

名称类型必需描述
tenantIdstringYes
urlIdstringYes
optionsSearchUsersOptionsNo

响应

返回: Option[SearchUsersResult]

示例

searchUsers 示例
Copy Copy
1
2let (response, httpResponse) = client.searchUsers(
3 tenantId = "my-tenant-123",
4 urlId = "news/article-title",
5 options = SearchUsersOptions()
6)
7
8if response.isSome:
9 let result = response.get()
10

获取用户 Internal Link

参数

名称类型必需描述
tenantIdstring
idstring

响应

返回: Option[GetUserResponse]

示例

getUser 示例
Copy Copy
1
2let (userOpt, httpResp) = client.getUser(tenantId = "my-tenant-123", id = "user-456")
3if userOpt.isSome:
4 let user = userOpt.get()
5 echo user
6else:
7 echo "User not found"
8

创建投票 Internal Link

参数

名称类型必填描述
tenantIdstring
commentIdstring
directionstring
optionsCreateVoteOptions

响应

返回:Option[VoteResponse]

示例

createVote 示例
Copy Copy
1
2let (voteOpt, httpResp) = client.createVote(
3 tenantId = "my-tenant-123",
4 commentId = "comment-7890",
5 direction = "up",
6 options = CreateVoteOptions()
7)
8
9if voteOpt.isSome:
10 let vote = voteOpt.get()
11 echo vote
12

删除投票 Internal Link

参数

名称类型必填描述
tenantIdstring
idstring
editKeystring = ""

响应

返回: Option[VoteDeleteResponse]

示例

deleteVote 示例
Copy Copy
1
2let (voteRespOpt, httpResp) = client.deleteVote(tenantId = "my-tenant-123", id = "comment-456", editKey = "")
3if voteRespOpt.isSome:
4 let voteResp = voteRespOpt.get()
5 discard voteResp
6 discard httpResp
7

获取投票 Internal Link

参数

名称类型必填描述
tenantIdstringYes
urlIdstringYes

响应

Returns: Option[GetVotesResponse]

示例

getVotes 示例
Copy Copy
1
2let (optVotes, httpResp) = client.getVotes(tenantId = "my-tenant-123", urlId = "news/article-42")
3if optVotes.isSome:
4 let votes = optVotes.get()
5 discard votes
6

获取用户的投票 Internal Link

参数

名称类型必填描述
tenantIdstringYes
urlIdstringYes
optionsGetVotesForUserOptionsNo

响应

返回: Option[GetVotesForUserResponse]

示例

getVotesForUser 示例
Copy Copy
1
2let (optResp, httpResp) = client.getVotesForUser(
3 tenantId = "my-tenant-123",
4 urlId = "news/article-title",
5 options = GetVotesForUserOptions()
6)
7
8if optResp.isSome:
9 let resp = optResp.get()
10 echo resp
11

需要帮助?

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

贡献

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