FastComments.com

FastComments Nim 開發套件


這是 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_moderationapi_default 包含需要您的 API 金鑰的方法,api_public 包含可直接從瀏覽器/行動裝置等無需驗證即可呼叫的 API。api_moderation 模組則提供給管理員儀表板使用的方法。

api_moderation 模組提供廣泛的即時與快速審核 API。每個 api_moderation 方法都接受 sso 參數,並可透過 SSO 或 FastComments.com 的會話 Cookie 進行驗證。

快速開始 Internal Link

使用已驗證的 API(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"

# Make authenticated API calls.
# Required parameters (and the request body) are positional; optional
# parameters are passed via the operation's options object.
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"

使用公共 API(PublicAPI)

公共端點不需要驗證:

import httpclient
import fastcomments
import fastcomments/apis/api_public

let client = newHttpClient()

# Make public API calls.
# tenantId and urlId are required (positional); everything else is optional.
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"

使用審核 API(ModerationAPI)

審核端點為審核者儀表板提供功能,並以執行中的審核者的 SSO 令牌進行驗證:

import httpclient
import fastcomments
import fastcomments/apis/api_moderation

let client = newHttpClient()

# List comments in the moderation dashboard.
# This operation has no required parameters, so everything is optional.
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

All API methods in this SDK return tuples of (Option[ResponseType], Response). The first element contains the parsed response if successful, and the second element is the raw HTTP response.

Required parameters and the request body are passed positionally. The remaining optional parameters are collected into a single Api<Operation>Options object, which is the last argument. Operations with no optional parameters take no options object.

範例:取得評論

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.

參數

名稱類型必填描述
tenantIdstring
aggregationRequestAggregationRequest
optionsAggregateOptions

回應

回傳: 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

參數

名稱類型必填描述
tenantIdstringYes
commentIdstringYes
publicBlockFromCommentParamsPublicBlockFromCommentParamsNo
ssostring = ""No

回應

Returns: 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

回應

返回: 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

參數

名稱類型必填說明
tenantIdstringYes
idstringNo
blockFromCommentParamsBlockFromCommentParamsNo
optionsBlockUserFromCommentOptionsNo

回應

返回: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

參數

名稱類型必填說明
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

參數

名稱類型必填說明
tenantIdstring
idstring
optionsDeleteCommentOptions

回應

返回: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

參數

名稱類型必填說明
tenantIdstring
commentIdstring
broadcastIdstring
optionsDeleteCommentPublicOptions

回應

回傳: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

參數

NameTypeRequiredDescription
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

參數

名稱類型必填說明
tenantIdstring
idstring
optionsFlagCommentOptions

回應

回傳: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

參數

名稱類型必填說明
tenantIdstring
idstring

回應

返回: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

參數

名稱類型必填說明
tenantIdstring
commentIdstring
optionsGetCommentTextOptions

回應

返回: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

參數

名稱類型必填說明
tenantIdstringYes
commentIdstringYes
dirintNo
ssostring = ""No

回應

返回: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

參數

名稱類型必填說明
tenantIdstring
createCommentParamsCreateCommentParams
optionsSaveCommentOptions

回應

Returns: 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

參數

名稱類型必填描述
tenantIdstringYes
createCommentParamsseq[CreateCommentParams]No
optionsSaveCommentsBulkOptions): (Option[seq[SaveCommentsBulkResponse]]No
idstringNo
fromNamestringNo

回應

返回: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

回應

Returns: 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

參數

名稱型別必填描述
tenantIdstring
idstring
unBlockFromCommentParamsUnBlockFromCommentParams
optionsUnBlockUserFromCommentOptions

回應

回傳: 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

參數

名稱類型必要描述
tenantIdstringYes
idstringNo
optionsUnFlagCommentOptionsNo

回應

返回: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

回應

Returns: 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

參數

名稱類型必填說明
optionsGetCommentsForUserOptionsNo

回應

回傳: 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

參數

名稱類型必填描述
tenantIdstringYes
addDomainConfigParamsAddDomainConfigParamsNo

回應

返回: 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

參數

名稱類型必填說明
tenantIdstringYes

回應

返回: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


參數

NameTypeRequiredDescription
tenantIdstringYes
domainToUpdatestringNo
updateDomainConfigParamsUpdateDomainConfigParamsNo

回應

Returns: 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

參數

NameTypeRequiredDescription
tenantIdstringYes
createEmailTemplateBodyCreateEmailTemplateBodyNo

回應

回傳: 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

參數

名稱類型必填說明
tenantIdstringYes
idstringNo

回應

返回: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

參數

NameTypeRequiredDescription
tenantIdstringYes
idstringNo

回應

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 # 依需求使用回應
11else:
12 # 處理缺少的回應
13 discard
14

取得電子郵件範本列表 Internal Link

參數

NameTypeRequiredDescription
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

參數

名稱類型必填說明
tenantIdstringYes
urlIdstringYes
userIdWSstringNo
startTimeint64No
endTimeint64No

回應

回傳: 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

req 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

參數

名稱類型必填描述
tenantIdstringYes
createFeedPostParamsCreateFeedPostParamsNo
optionsCreateFeedPostPublicOptionsNo

回應

返回: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


req tenantId afterId

參數

名稱類型必填說明
tenantIdstring
optionsGetFeedPostsOptions

回應

返回: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

請求 tenantId afterId

參數

名稱類型必填說明
tenantIdstring
optionsGetFeedPostsPublicOptions

回應

Returns: 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

參數

名稱類型必填說明
tenantIdstring
postIdsseq[string]
ssostring = ""

回應

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

對公開動態貼文做反應 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

參數

名稱類型必填說明
tenantIdstringYes
idstringNo
feedPostFeedPostNo

回應

返回: 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

參數

名稱類型必填說明
tenantIdstring
commentIdstring
isFlaggedbool
ssostring = ""

回應

返回: 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

參數

NameTypeRequiredDescription
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

參數

名稱類型必填說明
tenantIdstringYes
searchstringNo
optionsGetGifsSearchOptionsNo

回應

返回: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 # 使用 resp 如需
7

取得熱門動圖 Internal Link

參數

名稱類型必需說明
tenantIdstringYes
optionsGetGifsTrendingOptionsNo

回應

返回: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

回應

Returns: 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

參數

名稱類型必填描述
tenantIdstringYes
tagstringNo
deleteHashTagRequestBodyDeleteHashTagRequestBodyNo

回應

Returns: 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

參數

名稱類型必填說明
tenantIdstringYes
pagefloat64No

回應

返回: 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

回應

Returns: 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

參數

名稱類型必填說明
tenantIdstringYes
commentIdstringYes
ssostring = ""No

回應

回傳: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

參數

名稱類型必填說明
tenantIdstring
commentIdstring
ssostring = ""

回應

返回: 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

參數

名稱類型必填描述
tenantIdstringYes
commentIdstringYes
ssostring = ""No

回應

返回: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

參數

NameTypeRequiredDescription
tenantIdstringYes
ssostring = ""No

回應

返回: 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

參數

名稱類型必要說明
tenantIdstringYes
optionsGetManualBadgesForUserOptionsNo

回應

回傳: 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

參數

名稱類型必填說明
tenantIdstringYes
commentIdstringYes
ssostring = ""No

回應

返回: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

參數

名稱類型必填說明
tenantIdstring
commentIdstring
optionsGetPreBanSummaryOptions

回應

返回: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

參數

名稱類型必填描述
tenantIdstringYes
optionsGetSearchCommentsSummaryOptionsNo

回應

返回: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

參數

名稱類型必填描述
tenantIdstringYes
optionsGetSearchPagesOptionsNo

回應

返回: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

參數

名稱型別必填說明
tenantIdstring
optionsGetSearchUsersOptions

回應

返回: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

參數

名稱類型必填描述
tenantIdstringYes
optionsGetUserInternalProfileOptionsNo

回應

返回: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

參數

名稱類型必填說明
tenantIdstring
commentIdstring
adjustCommentVotesParamsAdjustCommentVotesParams
optionsPostAdjustCommentVotesOptions

回應

返回: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

參數

名稱類型必填描述
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

參數

名稱類型必填說明
tenantIdstring
banUserUndoParamsBanUserUndoParams
ssostring = ""

回應

返回: 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

參數

名稱類型必填說明
tenantIdstringYes
bulkPreBanParamsBulkPreBanParamsNo
optionsPostBulkPreBanSummaryOptionsNo

回應

返回: 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

參數

NameTypeRequiredDescription
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 # use resp as needed
8

送出檢舉評論 Internal Link

參數

名稱類型必填描述
tenantIdstring
commentIdstring
optionsPostFlagCommentOptions

回應

返回: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

參數

名稱類型必填描述
tenantIdstring
commentIdstring
optionsPostRemoveCommentOptions

回應

返回: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

參數

名稱類型必填說明
tenantIdstringYes
commentIdstringYes
optionsPostSetCommentApprovalStatusOptionsNo

回應

回傳: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

參數

名稱類型必填說明
tenantIdstringYes
commentIdstringYes
optionsPostSetCommentReviewStatusOptionsNo

回應

返回: 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

參數

名稱類型必要說明
tenantIdstringYes
commentIdstringYes
setCommentTextParamsSetCommentTextParamsNo
optionsPostSetCommentTextOptionsNo

回應

返回: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

參數

名稱類型必填說明
tenantIdstringYes
commentIdstringYes
optionsPostUnFlagCommentOptionsNo

回應

返回: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

參數

名稱類型必須描述
tenantIdstring
commentIdstring
optionsPostVoteOptions

回應

返回: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

參數

名稱類型必填說明
tenantIdstringYes
badgeIdstringNo
optionsPutAwardBadgeOptionsNo

回應

返回: 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

參數

名稱類型必填描述
tenantIdstring
urlIdstring
ssostring = ""

回應

返回: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

參數

名稱類型必填說明
tenantIdstring
badgeIdstring
optionsPutRemoveBadgeOptions

回應

返回: 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

參數

NameTypeRequiredDescription
tenantIdstringYes
urlIdstringYes
ssostring = ""No

回應

返回: 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

參數

名稱型別必填說明
tenantIdstring
createModeratorBodyCreateModeratorBody

回應

返回: 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

參數

名稱類型必填描述
tenantIdstringYes
idstringNo
sendEmailstring = ""No

回應

返回: 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

參數

名稱類型必填說明
tenantIdstring
idstring

回應

返回: 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

參數

NameTypeRequiredDescription
tenantIdstringYes
skipfloat64No

回應

返回: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

參數

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
updateModeratorBodyUpdateModeratorBodyNo

回應

返回: 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

參數

名稱類型必填說明
tenantIdstring
idstring

回應

返回: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

參數

名稱類型必需描述
tenantIdstring
optionsGetNotificationCountOptions

回應

返回: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

參數

名稱類型必填描述
tenantIdstring
optionsGetNotificationsOptions

回應

返回: Option[GetNotificationsResponse]

範例

取得通知範例
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

參數

名稱類型必填說明
tenantIdstringYes
idstringNo
updateNotificationBodyUpdateNotificationBodyNo
userIdstring = ""No

回應

回傳: 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

參數

NameTypeRequiredDescription
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


參數

名稱類型必填說明
tenantIdstring
urlIdstring
idstring

回應

返回: 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

過去在此頁面留言的使用者,且目前未在線上。依 displayName 排序。
在耗盡 /users/online 後使用,以呈現「Members」區段。
在 commenterName 上的游標分頁:伺服器從 afterName 向前遍歷部分 {tenantId, urlId, commenterName} 索引,使用 $gt 前進,無 $skip 成本。

Parameters

名稱類型必填說明
tenantIdstringYes
urlIdstringYes
optionsGetOfflineUsersOptionsNo

Response

Returns: Option[PageUsersOfflineResponse]

Example

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

目前在線的頁面觀眾:指其 WebSocket 會話目前已訂閱該頁面的使用者。
返回 anonCount + totalCount(全站訂閱者數,包括我們未列舉的匿名觀眾)。

參數

NameTypeRequiredDescription
tenantIdstring
urlIdstring
optionsGetOnlineUsersOptions

回應

返回: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

依 URL ID 取得頁面 Internal Link

參數

名稱類型必填說明
tenantIdstring
urlIdstring

回應

返回: 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

參數

名稱類型必填說明
tenantIdstringYes

回應

Returns: 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 的頁面會根據請求使用者的群組存取權限進行篩選。

Parameters

名稱類型必填描述
tenantIdstring
optionsGetPagesPublicOptions

Response

Returns: Option[GetPublicPagesResponse]

Example

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).

Parameters

NameTypeRequiredDescription
tenantIdstringYes
idsstringNo

Response

Returns: Option[PageUsersInfoResponse]

Example

getUsersInfo 範例
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

參數

NameTypeRequiredDescription
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 # 使用回應如需要
10

刪除問卷設定 Internal Link

參數

名稱類型必填說明
tenantIdstringYes
idstringNo

回應

返回: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

參數

名稱類型必填描述
tenantIdstringYes
idstringNo

回應

回傳: 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

參數

名稱類型必要說明
tenantIdstring
skipfloat64

回應

回傳:Option[GetQuestionConfigsResponse]

範例

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

參數

名稱類型必填說明
tenantIdstring
idstring

回應

返回: 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

參數

名稱型別必填描述
tenantIdstring
bulkAggregateQuestionResultsRequestBulkAggregateQuestionResultsRequest
forceRecalculatebool

回應

回傳: 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

參數

名稱類型必填說明
tenantIdstring
createAPISSOUserDataCreateAPISSOUserData

回應

返回: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

參數

名稱類型必填說明
tenantIdstring
emailstring

回應

返回: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

參數

名稱類型必填說明
tenantIdstringYes
skipintNo

回應

回傳: 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

參數

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
updateAPISSOUserDataUpdateAPISSOUserDataNo
updateCommentsboolNo

回應

Returns: 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

參數

名稱類型必填描述
tenantIdstring
createAPIUserSubscriptionDataCreateAPIUserSubscriptionData

回應

回傳: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

參數

名稱類型必填說明
tenantIdstringYes
idstringNo
userIdstring = ""No

回應

返回: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 = ""

回應

Returns: 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

參數

名稱類型必填說明
tenantIdstringYes
idstringNo

回應

返回: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

參數

NameTypeRequiredDescription
tenantIdstringYes
idstringNo

回應

返回: 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

參數

名稱類型必填說明
tenantIdstringYes
skipfloat64No

回應

返回: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

參數

名稱型別必填說明
tenantIdstring
idstring
replaceTenantPackageBodyReplaceTenantPackageBody

回應

返回: 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

參數

名稱類型必要描述
tenantIdstring
idstring
updateTenantPackageBodyUpdateTenantPackageBody

回應

返回: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

參數

名稱類型必填說明
tenantIdstringYes
createTenantUserBodyCreateTenantUserBodyNo

回傳

Returns: 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

參數

名稱類型必填說明
tenantIdstring
idstring
optionsDeleteTenantUserOptions

回應

返回: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

參數

名稱類型必填說明
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

參數

名稱類型必填描述
tenantIdstringYes
skipfloat64No

回應

返回: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


參數

名稱類型必填描述
tenantIdstringYes
idstringNo
replaceTenantUserBodyReplaceTenantUserBodyNo
updateCommentsstring = ""No

回應

回傳: 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

參數

NameTypeRequiredDescription
tenantIdstringYes
idstringNo
redirectURLstring = ""No

回應

Returns: 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

參數

NameTypeRequiredDescription
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

參數

NameTypeRequiredDescription
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

參數

名稱類型必填說明
tenantIdstringYes
idstringNo
surestring = ""No

回應

回傳: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

參數

NameTypeRequiredDescription
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

回應

Returns: 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

參數

名稱類型必填說明
tenantIdstringYes
userIdstringNo
idstringNo
changeTicketStateBodyChangeTicketStateBodyNo

回應

回傳: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

參數

NameTypeRequiredDescription
tenantIdstring
userIdstring
createTicketBodyCreateTicketBody

回應

返回: 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

參數

名稱類型必填說明
tenantIdstring
idstring
userIdstring = ""

回應

回傳: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

參數

名稱類型必填說明
tenantIdstringYes
optionsGetTicketsOptionsNo

回應

回傳: 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

參數

NameTypeRequiredDescription
namespacestring
componentstring
optionsGetTranslationsOptions

回傳

Returns: 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

Upload and resize an image

參數

名稱類型必填說明
tenantIdstring
filestring
optionsUploadImageOptions

回應

Returns: 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

參數

NameTypeRequiredDescription
tenantIdstringYes
idstringNo

回應

Returns: 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

參數

NameTypeRequiredDescription
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

參數

名稱類型必填說明
tenantIdstring
createUserBadgeParamsCreateUserBadgeParams

回應

返回: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

參數

NameTypeRequiredDescription
tenantIdstringYes
idstringNo

回應

返回: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


參數

NameTypeRequiredDescription
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

參數

名稱類型必填說明
tenantIdstring
optionsGetUserBadgesOptions

回應

返回: 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

參數

NameTypeRequiredDescription
tenantIdstringYes
optionsGetUserNotificationsOptionsNo

回應

Returns: 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

參數

NameTypeRequiredDescription
tenantIdstring
optionsResetUserNotificationsOptions

回應

返回: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

為特定評論啟用或停用通知。

Parameters

名稱類型必填描述
tenantIdstring
notificationIdstring
optedInOrOutstring
commentIdstring
ssostring = ""

Response

返回:Option[UpdateUserNotificationCommentSubscriptionStatusResponse]

Example

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

回應

返回: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 # 進一步處理 resp
14

更新使用者通知狀態 Internal Link


參數

名稱類型必填說明
tenantIdstring
notificationIdstring
newStatusstring
ssostring = ""

回應

返回: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

參數

名稱類型必填說明
tenantIdstringYes
urlIdWSstringNo
userIdsstringNo

回應

返回: 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

參數

名稱類型必填說明
tenantIdstring
urlIdstring

回應

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

參數

名稱類型必要描述
tenantIdstring
urlIdstring
optionsGetVotesForUserOptions

回應

返回: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 儲存庫 以取得貢獻指南。