FastComments.com

FastComments Rust SDK


這是 FastComments 的官方 Rust SDK。

FastComments API 的官方 Rust SDK

儲存庫

在 GitHub 上檢視


安裝 Internal Link

cargo add fastcomments-sdk

此 SDK 需要使用 Rust 2021 版或更新版本。

函式庫內容 Internal Link


FastComments Rust SDK 由數個模組組成:

  • Client Module - 自動生成的 FastComments REST API 用戶端

    • 針對所有 API 模型的完整型別定義
    • 同時包含已驗證的 (DefaultApi) 與公開的 (PublicApi) 端點
    • 使用 tokio 提供完整的 async/await 支援
    • 詳細 API 文件請見 client/README.md
  • SSO Module - 伺服器端單一登入工具

    • 為使用者驗證產生安全的權杖
    • 支援簡單與安全兩種 SSO 模式
    • 基於 HMAC-SHA256 的權杖簽名
  • Core Types - 共用型別定義與工具

    • 評論模型與中繼資料結構
    • 使用者與租戶設定
    • 常用操作的輔助函式

快速開始 Internal Link


使用公開 API

use fastcomments_sdk::client::apis::configuration::Configuration;
use fastcomments_sdk::client::apis::public_api;

#[tokio::main]
async fn main() {
    // 建立 API 設定
    let config = Configuration::new();

    // 取得頁面的留言
    let result = public_api::get_comments_public(
        &config,
        public_api::GetCommentsPublicParams {
            tenant_id: "your-tenant-id".to_string(),
            urlid: Some("page-url-id".to_string()),
            url: None,
            count_only: None,
            skip: None,
            limit: None,
            sort_dir: None,
            page: None,
            sso_hash: None,
            simple_sso_hash: None,
            has_no_comment: None,
            has_comment: None,
            comment_id_filter: None,
            child_ids: None,
            start_date_time: None,
            starts_with: None,
        },
    )
    .await;

    match result {
        Ok(response) => {
            println!("Found {} comments", response.comments.len());
            for comment in response.comments {
                println!("Comment: {:?}", comment);
            }
        }
        Err(e) => eprintln!("Error fetching comments: {:?}", e),
    }
}

使用已驗證的 API

use fastcomments_sdk::client::apis::configuration::{ApiKey, Configuration};
use fastcomments_sdk::client::apis::default_api;

#[tokio::main]
async fn main() {
    // 使用 API 金鑰建立設定
    let mut config = Configuration::new();
    config.api_key = Some(ApiKey {
        prefix: None,
        key: "your-api-key".to_string(),
    });

    // 使用已驗證的 API 取得留言
    let result = default_api::get_comments(
        &config,
        default_api::GetCommentsParams {
            tenant_id: "your-tenant-id".to_string(),
            skip: None,
            limit: None,
            sort_dir: None,
            urlid: Some("page-url-id".to_string()),
            url: None,
            is_spam: None,
            user_id: None,
            all_comments: None,
            for_moderation: None,
            parent_id: None,
            is_flagged: None,
            is_flagged_tag: None,
            is_by_verified: None,
            is_pinned: None,
            asc: None,
            include_imported: None,
            origin: None,
            tags: None,
        },
    )
    .await;

    match result {
        Ok(response) => {
            println!("Total comments: {}", response.count);
            for comment in response.comments {
                println!("Comment ID: {}, Text: {}", comment.id, comment.comment);
            }
        }
        Err(e) => eprintln!("Error: {:?}", e),
    }
}

使用 SSO 進行驗證

use fastcomments_sdk::sso::{
    fastcomments_sso::FastCommentsSSO,
    secure_sso_user_data::SecureSSOUserData,
};

fn main() {
    let api_key = "your-api-key".to_string();

    // 建立安全的 SSO 使用者資料(僅限伺服器端!)
    let user_data = SecureSSOUserData::new(
        "user-123".to_string(),           // 使用者 ID
        "user@example.com".to_string(),   // 電子郵件
        "John Doe".to_string(),            // 使用者名稱
        "https://example.com/avatar.jpg".to_string(), // 頭像 URL
    );

    // 產生 SSO 令牌
    let sso = FastCommentsSSO::new_secure(api_key, &user_data).unwrap();
    let token = sso.create_token().unwrap();

    println!("SSO Token: {}", token);
    // 將此令牌傳遞給你的前端以進行驗證
}

常見問題 Internal Link

401 Unauthorized Errors

如果在使用需要認證的 API 時收到 401 錯誤:

  1. 檢查您的 API 金鑰:確保您正在使用來自 FastComments 儀表板的正確 API 金鑰
  2. 驗證租戶 ID:確保租戶 ID 與您的帳戶相符
  3. API 金鑰格式:API 金鑰應該在 Configuration 中傳遞:
let mut config = Configuration::new();
config.api_key = Some(ApiKey {
    prefix: None,
    key: "YOUR_API_KEY".to_string(),
});

SSO Token Issues

如果 SSO 令牌無法運作:

  1. 於生產環境使用安全模式:在生產環境中始終使用 FastCommentsSSO::new_secure() 並搭配您的 API 金鑰
  2. 僅限伺服端:在您的伺服器上產生 SSO 令牌,切勿將 API 金鑰洩露給客戶端
  3. 檢查使用者資料:確保所有必要欄位(id, email, username)都已提供

Async Runtime Errors

SDK 使用 tokio 執行非同步操作。請確保:

  1. Add tokio to your dependencies:

    [dependencies]
    tokio = { version = "1", features = ["full"] }
  2. Use the tokio runtime:

    #[tokio::main]
    async fn main() {
     // Your async code here
    }

注意事項 Internal Link

廣播 ID

你會看到在某些 API 呼叫中應該傳遞 broadcastId。當你接收到事件時,會回傳這個 ID,因此如果你打算在用戶端以樂觀方式套用變更,就知道要忽略該事件 (你大概會想這麼做,因為這能提供最佳體驗)。請在此傳入一個 UUID。該 ID 應足夠唯一,以免在同一瀏覽器會話中出現兩次。

彙總 Internal Link

透過分組(若提供 groupBy)並套用多個運算來彙總文件。支援不同的運算(例如 sum、countDistinct、avg 等)。

參數

名稱 類型 必填 描述
tenant_id String
aggregation_request models::AggregationRequest
parent_tenant_id String
include_stats bool

回應

回傳: AggregationResponse


取得稽核記錄 Internal Link

參數

名稱 類型 必填 說明
tenant_id String
limit f64
skip f64
order models::SortDir
after f64
before f64

回應

回傳: GetAuditLogs200Response


從公開評論封鎖 Internal Link


參數

名稱 類型 必填 說明
tenant_id String
comment_id String
public_block_from_comment_params models::PublicBlockFromCommentParams
sso String

回應

回傳: BlockFromCommentPublic200Response


解除公開評論封鎖 Internal Link


參數

名稱 型別 必填 說明
tenant_id String
comment_id String
public_block_from_comment_params models::PublicBlockFromCommentParams
sso String

回應

回傳: UnBlockCommentPublic200Response


檢查被封鎖的評論 Internal Link

參數

名稱 型別 是否必填 說明
tenant_id String
comment_ids String
sso String

回應

回傳:CheckedCommentsForBlocked200Response


封鎖評論中的使用者 Internal Link

參數

名稱 類型 必填 說明
tenant_id String
id String
block_from_comment_params models::BlockFromCommentParams
user_id String
anon_user_id String

回應

回傳:BlockFromCommentPublic200Response


建立公開評論 Internal Link

參數

名稱 類型 必填 說明
tenant_id String
url_id String
broadcast_id String
comment_data models::CommentData
session_id String
sso String

回應

回傳: CreateCommentPublic200Response


刪除評論 Internal Link

參數

名稱 類型 必填 描述
tenant_id String
id String
context_user_id String
is_live bool

回應

回傳: DeleteComment200Response


刪除公開評論 Internal Link

參數

名稱 類型 必填 說明
tenant_id String
comment_id String
broadcast_id String
edit_key String
sso String

回應

回傳: DeleteCommentPublic200Response


刪除評論投票 Internal Link

參數

名稱 類型 必填 說明
tenant_id String
comment_id String
vote_id String
url_id String
broadcast_id String
edit_key String
sso String

回應

回傳: DeleteCommentVote200Response


檢舉評論 Internal Link

參數

名稱 類型 必填 說明
tenant_id String
id String
user_id String
anon_user_id String

回應

回傳: FlagComment200Response


取得特定評論 Internal Link

參數

Name Type Required Description
tenant_id String
id String

回應

回傳: GetComment200Response


取得評論文字 Internal Link

參數

名稱 類型 必填 描述
tenant_id String
comment_id String
edit_key String
sso String

回應

回傳:GetCommentText200Response


取得評論投票使用者名稱 Internal Link


參數

名稱 類型 必填 描述
tenant_id String
comment_id String
dir i32
sso String

回應

回傳:GetCommentVoteUserNames200Response


取得評論列表 Internal Link

參數

名稱 類型 必填 說明
tenant_id String
page i32
limit i32
skip i32
as_tree bool
skip_children i32
limit_children i32
max_tree_depth i32
url_id String
user_id String
anon_user_id String
context_user_id String
hash_tag String
parent_id String
direction models::SortDirections

回應

回傳: GetComments200Response


取得公開評論 Internal Link

req tenantId urlId

參數

名稱 類型 必填 說明
tenant_id String
url_id String
page i32
direction models::SortDirections
sso String
skip i32
skip_children i32
limit i32
limit_children i32
count_children bool
fetch_page_for_comment_id String
include_config bool
count_all bool
includei10n bool
locale String
modules String
is_crawler bool
include_notification_count bool
as_tree bool
max_tree_depth i32
use_full_translation_ids bool
parent_id String
search_text String
hash_tags Vec
user_id String
custom_config_str String
after_comment_id String
before_comment_id String

回應

回傳:GetCommentsPublic200Response

鎖定評論 Internal Link


參數

名稱 類型 必要 描述
tenant_id String
comment_id String
broadcast_id String
sso String

回應

回傳: LockComment200Response


置頂評論 Internal Link

參數

名稱 類型 必填 說明
tenant_id String
comment_id String
broadcast_id String
sso String

回應

回傳:PinComment200Response


儲存評論 Internal Link

參數

名稱 類型 必填 描述
tenant_id String
create_comment_params models::CreateCommentParams
is_live bool
do_spam_check bool
send_emails bool
populate_notifications bool

回應

回傳: SaveComment200Response


批次儲存評論 Internal Link


參數

名稱 類型 必需 說明
tenant_id String
create_comment_params Vecmodels::CreateCommentParams
is_live bool
do_spam_check bool
send_emails bool
populate_notifications bool

回傳

回傳: Vec<models::SaveComment200Response>


設定評論內容 Internal Link

參數

名稱 類型 必填 說明
tenant_id String
comment_id String
broadcast_id String
comment_text_update_request models::CommentTextUpdateRequest
edit_key String
sso String

回應

回傳: SetCommentText200Response


解除評論中使用者封鎖 Internal Link


參數

Name Type 必要 說明
tenant_id String
id String
un_block_from_comment_params models::UnBlockFromCommentParams
user_id String
anon_user_id String

回應

回傳: UnBlockCommentPublic200Response


取消檢舉評論 Internal Link

參數

名稱 類型 必填 說明
tenant_id String
id String
user_id String
anon_user_id String

回應

回傳: FlagComment200Response


解除評論鎖定 Internal Link

參數

名稱 類型 必填 描述
tenant_id String
comment_id String
broadcast_id String
sso String

回應

回傳: LockComment200Response


解除評論置頂 Internal Link

參數

名稱 類型 必要 描述
tenant_id String
comment_id String
broadcast_id String
sso String

回應

傳回: PinComment200Response

更新評論 Internal Link

參數

Name Type Required Description
tenant_id String
id String
body models::PickApiCommentPeriodUpdatableCommentFields
context_user_id String
do_spam_check bool
is_live bool

回應

回傳:FlagCommentPublic200Response


對評論投票 Internal Link


參數

Name Type Required Description
tenant_id String
comment_id String
url_id String
broadcast_id String
vote_body_params models::VoteBodyParams
session_id String
sso String

回應

回傳: VoteComment200Response


新增網域設定 Internal Link

參數

名稱 類型 必填 描述
tenant_id String
add_domain_config_params models::AddDomainConfigParams

回應

回傳: AddDomainConfig200Response

刪除網域設定 Internal Link

參數

名稱 類型 必填 說明
tenant_id String
domain String

回應

回傳: DeleteDomainConfig200Response

取得網域設定 Internal Link


參數

名稱 類型 必填 說明
tenant_id String
domain String

回應

回傳: GetDomainConfig200Response


取得網域設定列表 Internal Link


參數

名稱 類型 必要 描述
tenant_id String

回應

回傳: GetDomainConfigs200Response


部分更新網域設定 Internal Link

參數

名稱 類型 必填 描述
tenant_id String
domain_to_update String
patch_domain_config_params models::PatchDomainConfigParams

回應

回傳:GetDomainConfig200Response


取代網域設定 Internal Link

參數

Name Type Required Description
tenant_id String
domain_to_update String
update_domain_config_params models::UpdateDomainConfigParams

回應

回傳: GetDomainConfig200Response


建立電子郵件範本 Internal Link

參數

名稱 類型 必填 說明
tenant_id String
create_email_template_body models::CreateEmailTemplateBody

回應

回傳: CreateEmailTemplate200Response

範例

create_email_template 範例
Copy Copy
1
2let params: CreateEmailTemplateParams = CreateEmailTemplateParams {
3 tenant_id: "acme-corp-tenant".to_string(),
4 create_email_template_body: models::CreateEmailTemplateBody {
5 name: "New Comment Notification".to_string(),
6 subject: "New comment on your article".to_string(),
7 html_body: "<p>A new comment was posted on <strong>{article_title}</strong>.</p>".to_string(),
8 text_body: Some("A new comment was posted on {article_title}.".to_string()),
9 from_email: Some("no-reply@acme-news.com".to_string()),
10 enabled: Some(true),
11 },
12};
13let response: CreateEmailTemplate200Response = create_email_template(&configuration, params).await?;
14

刪除電子郵件範本 Internal Link

參數

Name Type Required Description
tenant_id String
id String

回應

回傳: FlagCommentPublic200Response

範例

delete_email_template 範例
Copy Copy
1
2async fn run_delete() -> Result<FlagCommentPublic200Response, Error> {
3 let params: DeleteEmailTemplateParams = DeleteEmailTemplateParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "welcome-email-template".to_string(),
6 };
7 let response: FlagCommentPublic200Response = delete_email_template(&configuration, params).await?;
8 Ok(response)
9}
10

刪除電子郵件範本渲染錯誤 Internal Link

參數

Name Type Required Description
tenant_id String Yes
id String Yes
error_id String Yes

回應

回傳: FlagCommentPublic200Response

範例

delete_email_template_render_error 範例
Copy Copy
1
2async fn delete_email_template_render_error_example() -> Result<FlagCommentPublic200Response, Error> {
3 let params: DeleteEmailTemplateRenderErrorParams = DeleteEmailTemplateRenderErrorParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "marketing/newsletter/welcome-email".to_string(),
6 error_id: "render-err-2026-01-12-01".to_string(),
7 };
8 let response: FlagCommentPublic200Response = delete_email_template_render_error(configuration, params).await?;
9 Ok(response)
10}
11

取得電子郵件範本 Internal Link

參數

名稱 類型 是否必填 說明
tenant_id String
id String

回應

回傳: GetEmailTemplate200Response

範例

get_email_template 範例
Copy Copy
1
2async fn fetch_template() -> Result<GetEmailTemplate200Response, Error> {
3 let params: GetEmailTemplateParams = GetEmailTemplateParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "welcome-email-template".to_string(),
6 };
7 let template: GetEmailTemplate200Response = get_email_template(&configuration, params).await?;
8 Ok(template)
9}
10

取得電子郵件範本定義 Internal Link

參數

名稱 類型 必填 說明
tenant_id String

回應

回傳: GetEmailTemplateDefinitions200Response

範例

get_email_template_definitions 範例
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let config: configuration::Configuration = configuration::Configuration::default();
4 let params: GetEmailTemplateDefinitionsParams = GetEmailTemplateDefinitionsParams {
5 tenant_id: "acme-corp-tenant".to_string(),
6 locale: Some("en-US".to_string()),
7 include_inactive: Some(false),
8 };
9 let resp: GetEmailTemplateDefinitions200Response = get_email_template_definitions(&config, params).await?;
10 let _definitions = resp;
11 Ok(())
12}
13

取得電子郵件範本渲染錯誤 Internal Link


參數

Name Type Required Description
tenant_id String
id String
skip f64

回應

回傳: GetEmailTemplateRenderErrors200Response

範例

get_email_template_render_errors 範例
Copy Copy
1
2async fn example_call() -> Result<(), Error> {
3 let params: GetEmailTemplateRenderErrorsParams = GetEmailTemplateRenderErrorsParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "welcome-email-template".to_string(),
6 skip: Some(10.0),
7 };
8 let _response: GetEmailTemplateRenderErrors200Response =
9 get_email_template_render_errors(&configuration, params).await?;
10 Ok(())
11}
12

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

參數

名稱 類型 必填 說明
tenant_id String
skip f64

回應

回傳: GetEmailTemplates200Response

範例

get_email_templates 範例
Copy Copy
1
2async fn fetch_email_templates() -> Result<GetEmailTemplates200Response, Error> {
3 let params: GetEmailTemplatesParams = GetEmailTemplatesParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 skip: Some(20.0),
6 };
7 let templates: GetEmailTemplates200Response = get_email_templates(&configuration, params).await?;
8 Ok(templates)
9}
10

渲染電子郵件範本 Internal Link

參數

Name Type 必填 說明
tenant_id String
render_email_template_body models::RenderEmailTemplateBody
locale String

回應

回傳:RenderEmailTemplate200Response

範例

render_email_template 範例
Copy Copy
1
2let params: RenderEmailTemplateParams = RenderEmailTemplateParams {
3 tenant_id: "acme-corp-tenant".to_string(),
4 render_email_template_body: models::RenderEmailTemplateBody {
5 template_id: "comment-notification".to_string(),
6 subject: Some("New comment on your article".to_string()),
7 placeholders: std::collections::HashMap::from([
8 ("article_title".to_string(), "Rust Gains Momentum in 2026".to_string()),
9 ("comment_author".to_string(), "Jane Doe".to_string()),
10 ("comment_snippet".to_string(), "Great insights — thanks for sharing!".to_string()),
11 ]),
12 },
13 locale: Some("en-US".to_string()),
14};
15let rendered: RenderEmailTemplate200Response = render_email_template(&configuration, params).await?;
16

更新電子郵件範本 Internal Link

參數

名稱 類型 必填 說明
tenant_id String
id String
update_email_template_body models::UpdateEmailTemplateBody

回應

回傳: FlagCommentPublic200Response

範例

update_email_template 範例
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: UpdateEmailTemplateParams = UpdateEmailTemplateParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "welcome-template-001".to_string(),
6 update_email_template_body: models::UpdateEmailTemplateBody {
7 name: Some("Welcome Template".to_string()),
8 subject: Some("Welcome to Acme News".to_string()),
9 body_html: Some("<p>Hi , welcome to Acme News!</p>".to_string()),
10 from_address: Some("no-reply@acme-news.com".to_string()),
11 reply_to: Some("support@acme-news.com".to_string()),
12 enabled: Some(true),
13 language: Some("en-US".to_string()),
14 custom_config: Some(models::CustomConfigParameters {
15 tracking_pixel_url: Some("https://acme-news.com/pixel".to_string()),
16 }),
17 },
18 };
19
20 let response: FlagCommentPublic200Response = update_email_template(&configuration, params).await?;
21 let _ = response;
22 Ok(())
23}
24

取得事件日誌 Internal Link


req tenantId urlId userIdWS

參數

名稱 類型 必填 描述
tenant_id String
url_id String
user_id_ws String
start_time i64
end_time i64

回應

回傳: GetEventLog200Response


取得全域事件日誌 Internal Link

req tenantId urlId userIdWS

參數

名稱 類型 必填 描述
tenant_id String
url_id String
user_id_ws String
start_time i64
end_time i64

回應

回傳: GetEventLog200Response

建立動態貼文 Internal Link

參數

名稱 類型 必填 說明
tenant_id String
create_feed_post_params models::CreateFeedPostParams
broadcast_id String
is_live bool
do_spam_check bool
skip_dup_check bool

回應

回傳: CreateFeedPost200Response

建立公開動態貼文 Internal Link

參數

名稱 類型 必填 說明
tenant_id String
create_feed_post_params models::CreateFeedPostParams
broadcast_id String
sso String

回應

回傳: CreateFeedPostPublic200Response

刪除公開動態貼文 Internal Link

參數

名稱 型別 必填 說明
tenant_id String
post_id String
broadcast_id String
sso String

回應

回傳: DeleteFeedPostPublic200Response

取得動態貼文 Internal Link

req tenantId afterId

參數

名稱 類型 必填 描述
tenant_id String
after_id String
limit i32
tags Vec

回應

回傳: GetFeedPosts200Response

取得公開動態貼文 Internal Link

req tenantId afterId

參數

名稱 類型 必填 描述
tenant_id String
after_id String
limit i32
tags Vec
sso String
is_crawler bool
include_user_info bool

回應

回傳:GetFeedPostsPublic200Response

取得動態貼文統計 Internal Link


參數

名稱 類型 必填 說明
tenant_id String
post_ids Vec
sso String

回應

回傳: GetFeedPostsStats200Response


取得公開使用者反應 Internal Link


參數

名稱 類型 必填 說明
tenant_id String
post_ids Vec
sso String

回應

回傳: GetUserReactsPublic200Response


對公開動態貼文回應 Internal Link

參數

名稱 類型 必填 說明
tenant_id String
post_id String
react_body_params models::ReactBodyParams
is_undo bool
broadcast_id String
sso String

回應

回傳: ReactFeedPostPublic200Response

更新動態貼文 Internal Link


參數

名稱 類型 必填 說明
tenant_id String
id String
feed_post models::FeedPost

回應

回傳:FlagCommentPublic200Response


更新公開動態貼文 Internal Link

參數

名稱 類型 必填 說明
tenant_id String
post_id String
update_feed_post_params models::UpdateFeedPostParams
broadcast_id String
sso String

回應

回傳: CreateFeedPostPublic200Response


公開檢舉評論 Internal Link

參數

名稱 類型 必填 描述
tenant_id String
comment_id String
is_flagged bool
sso String

回應

回傳: FlagCommentPublic200Response


新增標籤 Internal Link

參數

Name Type Required Description
tenant_id String
create_hash_tag_body models::CreateHashTagBody

回應

回傳: AddHashTag200Response

範例

add_hash_tag 範例
Copy Copy
1
2async fn run_add_hash_tag(configuration: &configuration::Configuration) -> Result<(), Error> {
3 let params: AddHashTagParams = AddHashTagParams {
4 tenant_id: Some("acme-corp-tenant".to_string()),
5 create_hash_tag_body: Some(models::CreateHashTagBody {
6 tag: "breaking-news".to_string(),
7 label: Some("Breaking News".to_string()),
8 visible: Some(true),
9 }),
10 };
11
12 let created: AddHashTag200Response = add_hash_tag(configuration, params).await?;
13 println!("{:#?}", created);
14 Ok(())
15}
16

批次新增標籤 Internal Link

參數

名稱 類型 必填 說明
tenant_id String
bulk_create_hash_tags_body models::BulkCreateHashTagsBody

回應

回傳: AddHashTagsBulk200Response

範例

add_hash_tags_bulk 範例
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: AddHashTagsBulkParams = AddHashTagsBulkParams {
4 tenant_id: Some("acme-corp-tenant".to_string()),
5 bulk_create_hash_tags_body: Some(models::BulkCreateHashTagsBody {
6 tags: vec![
7 models::BulkCreateHashTagsBodyTagsInner {
8 name: "news/article".to_string(),
9 path: "news/article".to_string(),
10 description: Some("Article tag for front page".to_string()),
11 enabled: Some(true),
12 },
13 ],
14 }),
15 };
16
17 let response: AddHashTagsBulk200Response = add_hash_tags_bulk(&configuration, params).await?;
18 Ok(())
19}
20

刪除標籤 Internal Link

參數

名稱 類型 必填 描述
tag String
tenant_id String
delete_hash_tag_request models::DeleteHashTagRequest

回應

回傳:FlagCommentPublic200Response

範例

delete_hash_tag 範例
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: DeleteHashTagParams = DeleteHashTagParams {
4 tag: "news/politics".to_string(),
5 tenant_id: Some("acme-corp-tenant".to_string()),
6 delete_hash_tag_request: Some(models::DeleteHashTagRequest::default()),
7 };
8 let response: FlagCommentPublic200Response = delete_hash_tag(&configuration, params).await?;
9 Ok(())
10}
11

取得標籤 Internal Link

參數

名稱 類型 必填 說明
tenant_id String
page f64

回應

回傳: GetHashTags200Response

範例

get_hash_tags 範例
Copy Copy
1
2async fn example_get_hash_tags() -> Result<GetHashTags200Response, Error> {
3 let params: GetHashTagsParams = GetHashTagsParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 page: Some(1.0_f64),
6 };
7 let response: GetHashTags200Response = get_hash_tags(&configuration, params).await?;
8 Ok(response)
9}
10

部分更新標籤 Internal Link

參數

名稱 類型 必填 說明
tag String
tenant_id String
update_hash_tag_body models::UpdateHashTagBody

回應

回傳: PatchHashTag200Response

範例

patch_hash_tag 範例
Copy Copy
1
2async fn run_patch_hash_tag() -> Result<PatchHashTag200Response, Error> {
3 let params: PatchHashTagParams = PatchHashTagParams {
4 tag: "breaking-news".to_string(),
5 tenant_id: Some("acme-corp-tenant".to_string()),
6 update_hash_tag_body: Some(models::UpdateHashTagBody {
7 name: "Breaking News".to_string(),
8 description: "Posts about breaking news and urgent updates".to_string(),
9 synonyms: vec!["breaking".to_string(), "urgent".to_string()],
10 is_active: true,
11 }),
12 };
13 let response: PatchHashTag200Response = patch_hash_tag(&configuration, params).await?;
14 Ok(response)
15}
16

建立管理員 Internal Link

參數

名稱 類型 必填 說明
tenant_id String
create_moderator_body models::CreateModeratorBody

回應

回傳: CreateModerator200Response

範例

create_moderator 範例
Copy Copy
1
2async fn run_create_moderator() -> Result<(), Error> {
3 let params: CreateModeratorParams = CreateModeratorParams {
4 tenant_id: "acme-corp-tenant".to_owned(),
5 create_moderator_body: models::CreateModeratorBody {
6 email: "jane.doe@acme.com".to_owned(),
7 display_name: "Jane Doe".to_owned(),
8 role: Some("moderator".to_owned()),
9 active: Some(true),
10 notes: Some("Handles product and support forums".to_owned()),
11 permissions: Some(vec!["approve_comment".to_owned(), "delete_comment".to_owned()]),
12 },
13 };
14
15 let _response: CreateModerator200Response = create_moderator(&configuration, params).await?;
16 Ok(())
17}
18

刪除管理員 Internal Link


參數

名稱 類型 必填 說明
tenant_id String
id String
send_email String

回應

回傳: FlagCommentPublic200Response

範例

delete_moderator 範例
Copy Copy
1
2async fn run(configuration: &configuration::Configuration) -> Result<FlagCommentPublic200Response, Error> {
3 let params: DeleteModeratorParams = DeleteModeratorParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "moderator-1234".to_string(),
6 send_email: Some("true".to_string()),
7 };
8 let response: FlagCommentPublic200Response = delete_moderator(configuration, params).await?;
9 Ok(response)
10}
11

取得管理員 Internal Link

參數

名稱 型別 必填 描述
tenant_id String
id String

回應

返回:GetModerator200Response

範例

get_moderator 範例
Copy Copy
1
2async fn example() -> Result<(), Error> {
3 let params: GetModeratorParams = GetModeratorParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "moderator-42".to_string(),
6 include: Some(vec!["roles".to_string(), "recent_comments".to_string()]),
7 };
8 let moderator: GetModerator200Response = get_moderator(&configuration, params).await?;
9 println!("{:#?}", moderator);
10 Ok(())
11}
12

取得管理員列表 Internal Link


參數

名稱 類型 必填 描述
tenant_id String
skip f64

回應

回傳: GetModerators200Response

範例

get_moderators 範例
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: GetModeratorsParams = GetModeratorsParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 skip: Some(10.0),
6 };
7 let moderators: GetModerators200Response = get_moderators(&configuration, params).await?;
8 let _moderators = moderators;
9 Ok(())
10}
11

發送邀請 Internal Link

參數

名稱 類型 必填 說明
tenant_id String
id String
from_name String

回應

回傳:FlagCommentPublic200Response

範例

send_invite 範例
Copy Copy
1
2let params: SendInviteParams = SendInviteParams {
3 tenant_id: "acme-corp-tenant".to_string(),
4 id: "articles/2026/01/ai-news-12345".to_string(),
5 from_name: "Acme Newsroom".to_string(),
6 reply_to: Some("editorial@acme.com".to_string()),
7 message: Some("You have been invited to moderate comments on this article.".to_string()),
8};
9
10let invite_response: FlagCommentPublic200Response = send_invite(&configuration, params).await?;
11

更新管理員 Internal Link

參數

名稱 型別 必填 說明
tenant_id String
id String
update_moderator_body models::UpdateModeratorBody

回應

回傳: FlagCommentPublic200Response

範例

update_moderator 範例
Copy Copy
1
2let params: UpdateModeratorParams = UpdateModeratorParams {
3 tenant_id: "acme-corp-tenant".to_string(),
4 id: "moderator-12345".to_string(),
5 update_moderator_body: models::UpdateModeratorBody {
6 username: "jane.doe".to_string(),
7 display_name: Some("Jane Doe".to_string()),
8 email: Some("jane.doe@acme.com".to_string()),
9 is_active: Some(true),
10 permissions: Some(vec!["moderate_comments".to_string(), "view_reports".to_string()]),
11 },
12};
13let response: FlagCommentPublic200Response = update_moderator(&configuration, params).await?;
14

刪除通知計數 Internal Link


參數

名稱 類型 必需 說明
tenant_id String Yes
id String Yes

回應

回傳: FlagCommentPublic200Response

範例

delete_notification_count 範例
Copy Copy
1
2async fn run_delete_notification_count(configuration: &configuration::Configuration) -> Result<FlagCommentPublic200Response, Error> {
3 let params: DeleteNotificationCountParams = DeleteNotificationCountParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "notification-9f8b7a6".to_string(),
6 };
7 let response: FlagCommentPublic200Response = delete_notification_count(configuration, params).await?;
8 Ok(response)
9}
10

取得快取通知計數 Internal Link

參數

名稱 類型 必填 描述
tenant_id String
id String

回應

回傳: GetCachedNotificationCount200Response

範例

get_cached_notification_count 範例
Copy Copy
1
2async fn run_get_cached_notification_count() -> Result<(), Error> {
3 let params: GetCachedNotificationCountParams = GetCachedNotificationCountParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "news/article-12345".to_string(),
6 };
7 let preferred_channel: Option<String> = Some("email".to_string());
8 let response: GetCachedNotificationCount200Response =
9 get_cached_notification_count(&configuration, params).await?;
10 Ok(())
11}
12

取得通知計數 Internal Link

參數

Name Type Required Description
tenant_id String
user_id String
url_id String
from_comment_id String
viewed bool

回應

回傳:GetNotificationCount200Response

範例

get_notification_count 範例
Copy Copy
1
2async fn example_get_notification_count() -> Result<GetNotificationCount200Response, Error> {
3 let params: GetNotificationCountParams = GetNotificationCountParams {
4 tenant_id: String::from("acme-corp-tenant"),
5 user_id: Some(String::from("user-12345")),
6 url_id: Some(String::from("news/article/2026/product-launch")),
7 from_comment_id: Some(String::from("cmt-000987")),
8 viewed: Some(false),
9 };
10 let response: GetNotificationCount200Response = get_notification_count(&configuration, params).await?;
11 Ok(response)
12}
13

取得通知 Internal Link

參數

Name Type Required Description
tenant_id String
user_id String
url_id String
from_comment_id String
viewed bool
skip f64

回應

回傳: GetNotifications200Response

範例

get_notifications 範例
Copy Copy
1
2async fn fetch_notifications() -> Result<(), Error> {
3 let params: GetNotificationsParams = GetNotificationsParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 user_id: Some("user-1234".to_string()),
6 url_id: Some("news/politics/article-2026-01-12".to_string()),
7 from_comment_id: Some("cmt-98765".to_string()),
8 viewed: Some(false),
9 skip: Some(0.0),
10 };
11 let notifications: GetNotifications200Response = get_notifications(&configuration, params).await?;
12 let _ = notifications;
13 Ok(())
14}
15

更新通知 Internal Link

參數

Name Type Required Description
tenant_id String
id String
update_notification_body models::UpdateNotificationBody
user_id String

回應

回傳: FlagCommentPublic200Response

範例

update_notification 範例
Copy Copy
1
2pub async fn run_update_notification(configuration: &configuration::Configuration) -> Result<FlagCommentPublic200Response, Error> {
3 let params: UpdateNotificationParams = UpdateNotificationParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "notification-67890".to_string(),
6 update_notification_body: models::UpdateNotificationBody {
7 title: Some("Flag Review Complete".to_string()),
8 message: Some("A moderator reviewed the flagged comment and marked it resolved.".to_string()),
9 resolved: Some(true),
10 channels: Some(vec!["email".to_string(), "in_app".to_string()]),
11 },
12 user_id: Some("moderator-007".to_string()),
13 };
14 let response: FlagCommentPublic200Response = update_notification(configuration, params).await?;
15 Ok(response)
16}
17

新增頁面 Internal Link


參數

名稱 類型 必填 說明
tenant_id String
create_api_page_data models::CreateApiPageData

回應

回傳: AddPageApiResponse


刪除頁面 Internal Link


參數

名稱 類型 必填 描述
tenant_id String
id String

回應

回傳: DeletePageApiResponse


以 URL ID 取得頁面 Internal Link

參數

名稱 類型 必填 說明
tenant_id String
url_id String

回應

回傳: GetPageByUrlidApiResponse


取得頁面列表 Internal Link


參數

名稱 類型 必填 描述
tenant_id String

回應

回傳: GetPagesApiResponse


部分更新頁面 Internal Link

參數

名稱 類型 必填 描述
tenant_id String
id String
update_api_page_data models::UpdateApiPageData

回應

回傳: PatchPageApiResponse


刪除待處理的 Webhook 事件 Internal Link

參數

名稱 類型 必需 描述
tenant_id String
id String

回應

回傳: FlagCommentPublic200Response

範例

delete_pending_webhook_event 範例
Copy Copy
1
2async fn run() -> Result<FlagCommentPublic200Response, Error> {
3 let event_id_opt: Option<String> = Some("webhook-event/news-article-2026-01-10-1234".to_string());
4 let event_id: String = event_id_opt.unwrap();
5 let params: DeletePendingWebhookEventParams = DeletePendingWebhookEventParams {
6 tenant_id: "acme-corp-tenant".to_string(),
7 id: event_id,
8 };
9 let response: FlagCommentPublic200Response = delete_pending_webhook_event(&configuration, params).await?;
10 Ok(response)
11}
12

取得待處理 Webhook 事件計數 Internal Link

參數

Name Type Required Description
tenant_id String
comment_id String
external_id String
event_type String
domain String
attempt_count_gt f64

回應

回傳: GetPendingWebhookEventCount200Response

範例

get_pending_webhook_event_count 範例
Copy Copy
1
2async fn example() -> Result<GetPendingWebhookEventCount200Response, Error> {
3 let params: GetPendingWebhookEventCountParams = GetPendingWebhookEventCountParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 comment_id: Some("cmt-12345".to_string()),
6 external_id: Some("news/article-98765".to_string()),
7 event_type: Some("comment.created".to_string()),
8 domain: Some("news.example.com".to_string()),
9 attempt_count_gt: Some(2.0),
10 };
11 let response: GetPendingWebhookEventCount200Response =
12 get_pending_webhook_event_count(&configuration, params).await?;
13 Ok(response)
14}
15

取得待處理 Webhook 事件 Internal Link

參數

名稱 類型 必填 描述
tenant_id String
comment_id String
external_id String
event_type String
domain String
attempt_count_gt f64
skip f64

回應

回傳: GetPendingWebhookEvents200Response

範例

get_pending_webhook_events 範例
Copy Copy
1
2let params: GetPendingWebhookEventsParams = GetPendingWebhookEventsParams {
3 tenant_id: "acme-corp-tenant".to_string(),
4 comment_id: Some("cmt-12345".to_string()),
5 external_id: Some("article-98765".to_string()),
6 event_type: Some("comment.create".to_string()),
7 domain: Some("news.example.com".to_string()),
8 attempt_count_gt: Some(1.0),
9 skip: Some(0.0),
10};
11
12let pending: GetPendingWebhookEvents200Response = get_pending_webhook_events(&configuration, params).await?;
13

建立問題設定 Internal Link

參數

Name Type Required Description
tenant_id String
create_question_config_body models::CreateQuestionConfigBody

回應

回傳: CreateQuestionConfig200Response

範例

create_question_config 範例
Copy Copy
1
2let params: CreateQuestionConfigParams = CreateQuestionConfigParams {
3 tenant_id: String::from("acme-corp-tenant"),
4 create_question_config_body: models::CreateQuestionConfigBody {
5 key: String::from("article-usefulness"),
6 label: Some(String::from("Was this article useful?")),
7 description: Some(String::from("Help us improve by rating this article.")),
8 required: Some(true),
9 rendering_type: Some(models::QuestionRenderingType::MultipleChoice),
10 custom_options: Some(vec![
11 models::QuestionConfigCustomOptionsInner { value: String::from("1"), label: Some(String::from("Not useful")) },
12 models::QuestionConfigCustomOptionsInner { value: String::from("3"), label: Some(String::from("Somewhat useful")) },
13 models::QuestionConfigCustomOptionsInner { value: String::from("5"), label: Some(String::from("Very useful")) },
14 ]),
15 enabled: Some(true),
16 },
17};
18let response: CreateQuestionConfig200Response = create_question_config(configuration, params).await?;
19

刪除問題設定 Internal Link

參數

名稱 Type 必填 說明
tenant_id String
id String

回應

回傳: FlagCommentPublic200Response

範例

delete_question_config 範例
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: DeleteQuestionConfigParams = DeleteQuestionConfigParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "news/article-comments-config-2025".to_string(),
6 force: Some(true),
7 };
8 let response: FlagCommentPublic200Response = delete_question_config(&configuration, params).await?;
9 Ok(())
10}
11

取得問題設定 Internal Link

參數

名稱 類型 必填 描述
tenant_id String
id String

回應

回傳:GetQuestionConfig200Response

範例

get_question_config 範例
Copy Copy
1
2async fn fetch_question_config() -> Result<(), Error> {
3 let tenant_env: Option<&str> = Some("prod");
4 let tenant_id: String = match tenant_env {
5 Some(env) => format!("acme-corp-tenant-{}", env),
6 None => "acme-corp-tenant".to_string(),
7 };
8 let params: GetQuestionConfigParams = GetQuestionConfigParams {
9 tenant_id,
10 id: "news/article/2026/01/12-politics".to_string(),
11 };
12 let response: GetQuestionConfig200Response = get_question_config(&configuration, params).await?;
13 let _status: ApiStatus = response.0;
14 Ok(())
15}
16

取得問題設定列表 Internal Link

參數

名稱 類型 必填 說明
tenant_id String
skip f64

回應

回傳: GetQuestionConfigs200Response

範例

get_question_configs 範例
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: GetQuestionConfigsParams = GetQuestionConfigsParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 skip: Some(10.0),
6 };
7 let response: GetQuestionConfigs200Response = get_question_configs(&configuration, params).await?;
8 let _cfgs: GetQuestionConfigs200Response = response;
9 Ok(())
10}
11

更新問題設定 Internal Link

參數

名稱 類型 必填 說明
tenant_id String
id String
update_question_config_body models::UpdateQuestionConfigBody

回應

回傳: FlagCommentPublic200Response

範例

update_question_config 範例
Copy Copy
1
2async fn run_update() -> Result<(), Error> {
3 let params: UpdateQuestionConfigParams = UpdateQuestionConfigParams {
4 tenant_id: String::from("acme-corp-tenant"),
5 id: String::from("news/article-2026-01-12"),
6 update_question_config_body: models::UpdateQuestionConfigBody {
7 question_text: String::from("Did you find this reporting accurate?"),
8 required: Some(true),
9 rendering_type: Some(models::QuestionRenderingType::Inline),
10 options: Some(vec![
11 models::QuestionConfigCustomOptionsInner { id: String::from("opt-yes"), label: String::from("Yes"), value: String::from("yes") },
12 models::QuestionConfigCustomOptionsInner { id: String::from("opt-no"), label: String::from("No"), value: String::from("no") },
13 ]),
14 when_save: Some(models::QuestionWhenSave::OnSubmit),
15 },
16 };
17 let response: FlagCommentPublic200Response = update_question_config(&configuration, params).await?;
18 Ok(())
19}
20

建立問題結果 Internal Link

參數

名稱 類型 必填 說明
tenant_id String
create_question_result_body models::CreateQuestionResultBody

回應

回傳: CreateQuestionResult200Response

範例

create_question_result 範例
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: CreateQuestionResultParams = CreateQuestionResultParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 create_question_result_body: models::CreateQuestionResultBody {
6 question_id: "feedback-article-2026".to_string(),
7 comment_id: Some("cmt-2026-001".to_string()),
8 user_id: Some("reader-007".to_string()),
9 answer: "yes".to_string(),
10 score: Some(4),
11 metadata: Some(std::collections::HashMap::from([(
12 "path".to_string(),
13 "news/politics/2026-election".to_string(),
14 )])),
15 anonymous: Some(false),
16 submitted_at: Some("2026-01-12T09:15:00Z".to_string()),
17 },
18 };
19
20 let created: CreateQuestionResult200Response = create_question_result(&configuration, params).await?;
21 Ok(())
22}
23

刪除問題結果 Internal Link

參數

Name Type Required Description
tenant_id String
id String

回傳

回傳: FlagCommentPublic200Response

範例

delete_question_result 範例
Copy Copy
1
2async fn run_delete() -> Result<(), Error> {
3 let params: DeleteQuestionResultParams = DeleteQuestionResultParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "news/article/12345/question/67890".to_string(),
6 dry_run: Some(false),
7 request_id: Some("req-20260112-7a3b".to_string()),
8 };
9 let response: FlagCommentPublic200Response = delete_question_result(&configuration, params).await?;
10 Ok(())
11}
12

取得問題結果 Internal Link

參數

名稱 類型 必填 說明
tenant_id String
id String

回應

回傳: GetQuestionResult200Response

範例

get_question_result 範例
Copy Copy
1
2async fn run() -> Result<GetQuestionResult200Response, Error> {
3 let include_metadata: Option<bool> = Some(true);
4 let params: GetQuestionResultParams = GetQuestionResultParams {
5 tenant_id: "acme-corp-tenant".to_string(),
6 id: "news/article/2026/12345".to_string(),
7 };
8 let response: GetQuestionResult200Response = get_question_result(&configuration, params).await?;
9 Ok(response)
10}
11

取得問題結果列表 Internal Link

參數

Name Type Required Description
tenant_id String
url_id String
user_id String
start_date String
question_id String
question_ids String
skip f64

回應

回傳: GetQuestionResults200Response

範例

get_question_results 範例
Copy Copy
1
2async fn example_get_question_results() -> Result<(), Error> {
3 let params = GetQuestionResultsParams {
4 tenant_id: String::from("acme-corp-tenant"),
5 url_id: Some(String::from("news/article/2026/01/12/breaking")),
6 user_id: Some(String::from("user-98765")),
7 start_date: Some(String::from("2025-12-01")),
8 question_id: Some(String::from("q-42")),
9 question_ids: Some(String::from("q-42,q-43")),
10 skip: Some(10.0),
11 };
12 let results: GetQuestionResults200Response = get_question_results(&configuration, params).await?;
13 Ok(())
14}
15

更新問題結果 Internal Link

參數

名稱 類型 必填 說明
tenant_id String
id String
update_question_result_body models::UpdateQuestionResultBody

回應

回傳: FlagCommentPublic200Response

範例

update_question_result 範例
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let body: models::UpdateQuestionResultBody = models::UpdateQuestionResultBody {
4 question_id: "q-12345".to_string(),
5 result: true,
6 comment: Some("Marked by moderator after review".to_string()),
7 };
8
9 let params: UpdateQuestionResultParams = UpdateQuestionResultParams {
10 tenant_id: "acme-corp-tenant".to_string(),
11 id: "news/article/98765".to_string(),
12 update_question_result_body: body,
13 };
14
15 let response: FlagCommentPublic200Response = update_question_result(&configuration, params).await?;
16 println!("{:#?}", response);
17 Ok(())
18}
19

彙總問題結果 Internal Link


參數

名稱 類型 必填 說明
tenant_id String
question_id String
question_ids Vec
url_id String
time_bucket models::AggregateTimeBucket
start_date String
force_recalculate bool

回應

回傳: AggregateQuestionResults200Response


批次彙總問題結果 Internal Link


參數

Name Type 必填 說明
tenant_id String
bulk_aggregate_question_results_request models::BulkAggregateQuestionResultsRequest
force_recalculate bool

回應

回傳: BulkAggregateQuestionResults200Response


將評論與問題結果合併 Internal Link

參數

Name Type 必填 描述
tenant_id String
question_id String
question_ids Vec
url_id String
start_date String
force_recalculate bool
min_value f64
max_value f64
limit f64

回應

回傳: CombineCommentsWithQuestionResults200Response


新增 SSO 使用者 Internal Link

參數

名稱 類型 必要 描述
tenant_id String
create_apisso_user_data models::CreateApissoUserData

回應

回傳: AddSsoUserApiResponse


刪除 SSO 使用者 Internal Link


參數

名稱 類型 必填 說明
tenant_id String
id String
delete_comments bool
comment_delete_mode String

回應

回傳: DeleteSsoUserApiResponse


以電子郵件取得 SSO 使用者 Internal Link

參數

名稱 類型 必填 說明
tenant_id String
email String

回應

回傳: GetSsoUserByEmailApiResponse


以 ID 取得 SSO 使用者 Internal Link

參數

名稱 類型 是否必填 描述
tenant_id String
id String

回應

回傳: GetSsoUserByIdApiResponse

取得 SSO 使用者列表 Internal Link

參數

名稱 類型 必填 描述
tenant_id String
skip i32

回應

回傳: GetSsoUsers200Response


部分更新 SSO 使用者 Internal Link

參數

名稱 類型 必填 描述
tenant_id String
id String
update_apisso_user_data models::UpdateApissoUserData
update_comments bool

回應

回傳: PatchSsoUserApiResponse


取代 SSO 使用者 Internal Link


參數

名稱 類型 必填 說明
tenant_id String
id String
update_apisso_user_data models::UpdateApissoUserData
update_comments bool

回應

回傳: PutSsoUserApiResponse


建立訂閱 Internal Link

參數

名稱 類型 必填 描述
tenant_id String
create_api_user_subscription_data models::CreateApiUserSubscriptionData

回應

回傳: CreateSubscriptionApiResponse


刪除訂閱 Internal Link

參數

名稱 類型 必填 說明
tenant_id String
id String
user_id String

回應

回傳: DeleteSubscriptionApiResponse


取得訂閱 Internal Link


參數

名稱 類型 必填 說明
tenant_id String
user_id String

回應

回傳: GetSubscriptionsApiResponse


取得租戶每日使用量 Internal Link

參數

Name Type Required Description
tenant_id String
year_number f64
month_number f64
day_number f64
skip f64

回應

回傳: GetTenantDailyUsages200Response

範例

get_tenant_daily_usages 範例
Copy Copy
1
2async fn example() -> Result<GetTenantDailyUsages200Response, Error> {
3 let params: GetTenantDailyUsagesParams = GetTenantDailyUsagesParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 year_number: Some(2024.0),
6 month_number: Some(9.0),
7 day_number: Some(15.0),
8 skip: Some(0.0),
9 };
10 let response: GetTenantDailyUsages200Response = get_tenant_daily_usages(&configuration, params).await?;
11 Ok(response)
12}
13

建立租戶方案 Internal Link


參數

名稱 類型 必填 說明
tenant_id String
create_tenant_package_body models::CreateTenantPackageBody

回應

回傳:CreateTenantPackage200Response

範例

create_tenant_package 範例
Copy Copy
1
2async fn run_create_package() -> Result<(), Error> {
3 let params: CreateTenantPackageParams = CreateTenantPackageParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 create_tenant_package_body: models::CreateTenantPackageBody {
6 name: "Acme News Package".to_string(),
7 description: Some("Moderated comments for Acme News articles".to_string()),
8 plan: Some("standard".to_string()),
9 allow_gifs: Some(true),
10 gif_rating: Some(GifRating::GeneralAudience),
11 image_content_profanity_level: Some(ImageContentProfanityLevel::Moderate),
12 sso_security_level: Some(SsoSecurityLevel::Strict),
13 custom_config: Some(CustomConfigParameters {
14 max_comment_length: Some(1000),
15 require_moderation: Some(true),
16 }),
17 },
18 };
19 let response: CreateTenantPackage200Response = create_tenant_package(&configuration, params).await?;
20 let _package: TenantPackage = response.0;
21 Ok(())
22}
23

刪除租戶方案 Internal Link

參數

名稱 類型 必填 說明
tenant_id String
id String

回應

回傳:FlagCommentPublic200Response

範例

delete_tenant_package 範例
Copy Copy
1
2let params: DeleteTenantPackageParams = DeleteTenantPackageParams {
3 tenant_id: "acme-corp-tenant".to_string(),
4 id: "pkg-news-comments-2025-01".to_string(),
5 cascade: Some(true),
6};
7let response: FlagCommentPublic200Response = delete_tenant_package(&configuration, params).await?;
8

取得租戶方案 Internal Link

參數

名稱 類型 必填 說明
tenant_id String
id String

回應

回傳: GetTenantPackage200Response

範例

get_tenant_package 範例
Copy Copy
1
2async fn example_get_tenant_package(configuration: &configuration::Configuration) -> Result<GetTenantPackage200Response, Error> {
3 let params: GetTenantPackageParams = GetTenantPackageParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "premium-plan".to_string(),
6 include_details: Some(true),
7 };
8 let package: GetTenantPackage200Response = get_tenant_package(configuration, params).await?;
9 Ok(package)
10}
11

取得租戶方案列表 Internal Link

參數

Name Type Required Description
tenant_id String
skip f64

回應

回傳: GetTenantPackages200Response

範例

get_tenant_packages 範例
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: GetTenantPackagesParams = GetTenantPackagesParams {
4 tenant_id: String::from("acme-corp-tenant"),
5 skip: Some(20.0),
6 };
7 let _packages: GetTenantPackages200Response = get_tenant_packages(&configuration, params).await?;
8 Ok(())
9}
10

取代租戶方案 Internal Link

參數

名稱 類型 必填 說明
tenant_id String Yes
id String Yes
replace_tenant_package_body models::ReplaceTenantPackageBody Yes

回應

回傳: FlagCommentPublic200Response

範例

replace_tenant_package 範例
Copy Copy
1
2async fn run_replace_package() -> Result<FlagCommentPublic200Response, Error> {
3 let params: ReplaceTenantPackageParams = ReplaceTenantPackageParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "package-basic-2026".to_string(),
6 replace_tenant_package_body: models::ReplaceTenantPackageBody {
7 name: "Moderation Basic".to_string(),
8 description: Some("Standard moderation package for news sites".to_string()),
9 enabled: Some(true),
10 plan: Some("standard".to_string()),
11 custom_config_parameters: Some(models::CustomConfigParameters {
12 max_comment_length: Some(1000),
13 allow_images: Some(true),
14 }),
15 vote_style: Some(models::VoteStyle::Thumbs),
16 },
17 };
18 let response = replace_tenant_package(&configuration, params).await?;
19 Ok(response)
20}
21

更新租戶方案 Internal Link

參數

名稱 類型 必填 說明
tenant_id String
id String
update_tenant_package_body models::UpdateTenantPackageBody

回應

回傳: FlagCommentPublic200Response

範例

update_tenant_package 範例
Copy Copy
1
2async fn example_update_tenant_package() -> Result<FlagCommentPublic200Response, Error> {
3 let params: UpdateTenantPackageParams = UpdateTenantPackageParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "pro-plan-2026".to_string(),
6 update_tenant_package_body: models::UpdateTenantPackageBody {
7 name: Some("Pro Plan".to_string()),
8 description: Some("Priority support, custom branding, and advanced moderation tools".to_string()),
9 enabled: Some(true),
10 monthly_price_cents: Some(1999),
11 features: Some(vec![
12 "priority_support".to_string(),
13 "custom_branding".to_string(),
14 "advanced_moderation".to_string(),
15 ]),
16 },
17 };
18
19 let response: FlagCommentPublic200Response = update_tenant_package(&configuration, params).await?;
20 Ok(response)
21}
22

建立租戶使用者 Internal Link

參數

Name Type Required Description
tenant_id String
create_tenant_user_body models::CreateTenantUserBody

回應

回傳: CreateTenantUser200Response

範例

create_tenant_user 範例
Copy Copy
1
2let create_tenant_user_body: models::CreateTenantUserBody = models::CreateTenantUserBody {
3 email: "jane.doe@acme.com".to_string(),
4 display_name: Some("Jane Doe".to_string()),
5 role: Some("moderator".to_string()),
6 external_id: Some("acme-12345".to_string()),
7 subscribed_to_digest: Some(false),
8};
9let params: CreateTenantUserParams = CreateTenantUserParams {
10 tenant_id: "acme-corp-tenant".to_string(),
11 create_tenant_user_body,
12};
13let response: CreateTenantUser200Response = create_tenant_user(&configuration, params).await?;
14

刪除租戶使用者 Internal Link

參數

名稱 類型 必填 說明
tenant_id String
id String
delete_comments String
comment_delete_mode String

回應

回傳: FlagCommentPublic200Response

範例

delete_tenant_user 範例
Copy Copy
1
2async fn run() -> Result<FlagCommentPublic200Response, Error> {
3 let params: DeleteTenantUserParams = DeleteTenantUserParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "user-12345".to_string(),
6 delete_comments: Some("true".to_string()),
7 comment_delete_mode: Some("cascade".to_string()),
8 };
9 let resp: FlagCommentPublic200Response = delete_tenant_user(&configuration, params).await?;
10 Ok(resp)
11}
12

取得租戶使用者 Internal Link

參數

名稱 類型 必填 描述
tenant_id String
id String

回應

回傳: GetTenantUser200Response

範例

get_tenant_user 範例
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: GetTenantUserParams = GetTenantUserParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "user-7a3f2b".to_string(),
6 };
7 let include_related: Option<String> = Some("roles,preferences".to_string());
8 let response: GetTenantUser200Response = get_tenant_user(&configuration, params).await?;
9 Ok(())
10}
11

取得租戶使用者列表 Internal Link

參數

名稱 型別 必填 說明
tenant_id String
skip f64

回應

回傳: GetTenantUsers200Response

範例

get_tenant_users 範例
Copy Copy
1
2async fn fetch_tenant_users() -> Result<GetTenantUsers200Response, Error> {
3 let params: GetTenantUsersParams = GetTenantUsersParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 skip: Some(10.0),
6 };
7 let response: GetTenantUsers200Response = get_tenant_users(&configuration, params).await?;
8 Ok(response)
9}
10

取代租戶使用者 Internal Link

參數

名稱 類型 必填 描述
tenant_id String
id String
replace_tenant_user_body models::ReplaceTenantUserBody
update_comments String

回應

回傳: FlagCommentPublic200Response

範例

replace_tenant_user 範例
Copy Copy
1
2let cfg: &configuration::Configuration = &configuration;
3let replace_tenant_user_body: models::ReplaceTenantUserBody = models::ReplaceTenantUserBody {
4 external_id: Some("acct-834".to_string()),
5 email: Some("jane.doe@acme-news.com".to_string()),
6 display_name: Some("Jane Doe".to_string()),
7 role: Some("moderator".to_string()),
8};
9let params: ReplaceTenantUserParams = ReplaceTenantUserParams {
10 tenant_id: "acme-corp-tenant".to_string(),
11 id: "user-834".to_string(),
12 replace_tenant_user_body,
13 update_comments: Some("true".to_string()),
14};
15let resp: FlagCommentPublic200Response = replace_tenant_user(cfg, params).await?;
16

參數

Name Type Required Description
tenant_id String
id String
redirect_url String

回應

回傳: FlagCommentPublic200Response

範例

send_login_link 範例
Copy Copy
1
2async fn example_send_login_link() -> Result<FlagCommentPublic200Response, Error> {
3 let params: SendLoginLinkParams = SendLoginLinkParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "jane.doe@acme.com".to_string(),
6 redirect_url: Some("https://acme.example.com/dashboard".to_string()),
7 };
8 let response: FlagCommentPublic200Response = send_login_link(&configuration, params).await?;
9 Ok(response)
10}
11

更新租戶使用者 Internal Link

參數

Name Type Required Description
tenant_id String
id String
update_tenant_user_body models::UpdateTenantUserBody
update_comments String

回應

回傳:FlagCommentPublic200Response

範例

update_tenant_user 範例
Copy Copy
1
2async fn update_user_example(configuration: &configuration::Configuration) -> Result<(), Error> {
3 let params: UpdateTenantUserParams = UpdateTenantUserParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "user-78b2".to_string(),
6 update_tenant_user_body: models::UpdateTenantUserBody {
7 username: "jdoe".to_string(),
8 display_name: "John Doe".to_string(),
9 email: "john.doe@acme.com".to_string(),
10 roles: vec!["moderator".to_string()],
11 suspended: false,
12 },
13 update_comments: Some("Promoted to moderator for community moderation".to_string()),
14 };
15 let response: FlagCommentPublic200Response = update_tenant_user(configuration, params).await?;
16 println!("updated user response status: {:?}", response);
17 Ok(())
18}
19

建立租戶 Internal Link

參數

名稱 類型 必填 說明
tenant_id String
create_tenant_body models::CreateTenantBody

回應

回傳:CreateTenant200Response

範例

create_tenant 範例
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: CreateTenantParams = CreateTenantParams {
4 tenant_id: "acme-news-tenant".to_string(),
5 create_tenant_body: models::CreateTenantBody {
6 name: "Acme News".to_string(),
7 domain: Some("news.acme.com".to_string()),
8 api_domain_configuration: Some(models::ApiDomainConfiguration {
9 domain: "api.news.acme.com".to_string(),
10 enforce_https: true,
11 }),
12 billing_info: Some(models::BillingInfo {
13 contact_email: "billing@acme.com".to_string(),
14 plan_id: "pro_monthly".to_string(),
15 }),
16 imported_site_type: Some(models::ImportedSiteType::Articles),
17 ..Default::default()
18 },
19 };
20
21 let created: CreateTenant200Response = create_tenant(&configuration, params).await?;
22 Ok(())
23}
24

刪除租戶 Internal Link

參數

名稱 類型 必填 描述
tenant_id String
id String
sure String

回應

回傳:FlagCommentPublic200Response

範例

delete_tenant 範例
Copy Copy
1
2async fn example_delete_tenant() -> Result<FlagCommentPublic200Response, Error> {
3 let params: DeleteTenantParams = DeleteTenantParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "news/article-12345".to_string(),
6 sure: Some("confirm".to_string()),
7 };
8 let response: FlagCommentPublic200Response = delete_tenant(&configuration, params).await?;
9 Ok(response)
10}
11

取得租戶 Internal Link

參數

Name Type Required Description
tenant_id String
id String

回應

回傳: GetTenant200Response

範例

get_tenant 範例
Copy Copy
1
2async fn run_get_tenant() -> Result<(), Error> {
3 let params: GetTenantParams = GetTenantParams {
4 tenant_id: String::from("acme-corp-tenant"),
5 id: String::from("news/article"),
6 };
7 let include_metadata: Option<bool> = Some(true);
8 let tenant_response: GetTenant200Response = get_tenant(&configuration, params).await?;
9 Ok(())
10}
11

取得租戶列表 Internal Link

參數

名稱 類型 必填 說明
tenant_id String
meta String
skip f64

回應

回傳: GetTenants200Response

範例

get_tenants 範例
Copy Copy
1
2async fn run() -> Result<(), Error> {
3 let params: GetTenantsParams = GetTenantsParams {
4 tenant_id: String::from("acme-corp-tenant"),
5 meta: Some(String::from("include=domains,settings")),
6 skip: Some(10.0),
7 };
8 let response: GetTenants200Response = get_tenants(&configuration, params).await?;
9 Ok(())
10}
11

更新租戶 Internal Link

參數

Name Type Required Description
tenant_id String Yes
id String Yes
update_tenant_body models::UpdateTenantBody Yes

回應

回傳: FlagCommentPublic200Response

範例

update_tenant 範例
Copy Copy
1
2async fn run_update_tenant() -> Result<FlagCommentPublic200Response, Error> {
3 let params: UpdateTenantParams = UpdateTenantParams {
4 tenant_id: "acme-corp-tenant".to_owned(),
5 id: "site-42".to_owned(),
6 update_tenant_body: models::UpdateTenantBody {
7 name: Some("Acme Corporation".to_string()),
8 default_site: Some("news/article".to_string()),
9 allowed_origins: Some(vec![
10 "https://www.acme.com".to_string(),
11 "https://blog.acme.com".to_string(),
12 ]),
13 invite_only: Some(false),
14 api_domain_configuration: Some(ApiDomainConfiguration {
15 domain: "comments.acme.com".to_string(),
16 secure: Some(true),
17 ..Default::default()
18 }),
19 ..Default::default()
20 },
21 };
22 let response: FlagCommentPublic200Response = update_tenant(&configuration, params).await?;
23 Ok(response)
24}
25

上傳圖片 Internal Link

上傳並調整影像大小

參數

名稱 類型 必填 說明
tenant_id String
file std::path::PathBuf
size_preset models::SizePreset
url_id String

回應

回傳:UploadImageResponse


以 ID 取得使用者徽章進度 Internal Link

參數

名稱 類型 必要 描述
tenant_id String
id String

回應

回傳: GetUserBadgeProgressById200Response


以使用者 ID 取得使用者徽章進度 Internal Link

參數

名稱 類型 必填 說明
tenant_id String
user_id String

回應

回傳: GetUserBadgeProgressById200Response


取得使用者徽章進度列表 Internal Link

參數

名稱 類型 是否必填 描述
tenant_id String
user_id String
limit f64
skip f64

回應

回傳: GetUserBadgeProgressList200Response

建立使用者徽章 Internal Link


參數

名稱 類型 必填 說明
tenant_id String
create_user_badge_params models::CreateUserBadgeParams

回應

回傳: CreateUserBadge200Response


刪除使用者徽章 Internal Link

參數

名稱 類型 必填 說明
tenant_id String
id String

回應

回傳: UpdateUserBadge200Response


取得使用者徽章 Internal Link


參數

名稱 類型 必填 說明
tenant_id String
id String

回應

回傳: GetUserBadge200Response


取得使用者徽章列表 Internal Link

參數

Name Type Required Description
tenant_id String
user_id String
badge_id String
displayed_on_comments bool
limit f64
skip f64

回應

回傳: GetUserBadges200Response


更新使用者徽章 Internal Link

參數

Name Type Required Description
tenant_id String
id String
update_user_badge_params models::UpdateUserBadgeParams

回應

回傳: UpdateUserBadge200Response


取得使用者通知計數 Internal Link


參數

名稱 類型 必填 說明
tenant_id String
sso String

回應

回傳: GetUserNotificationCount200Response


取得使用者通知 Internal Link


參數

名稱 型別 必填 說明
tenant_id String
page_size i32
after_id String
include_context bool
after_created_at i64
unread_only bool
dm_only bool
no_dm bool
include_translations bool
sso String

回應

回傳: GetUserNotifications200Response


重設使用者通知計數 Internal Link


參數

名稱 類型 必填 說明
tenant_id String
sso String

回應

回傳: ResetUserNotifications200Response


重設使用者通知 Internal Link

參數

名稱 類型 必填 說明
tenant_id String
after_id String
after_created_at i64
unread_only bool
dm_only bool
no_dm bool
sso String

回應

回傳: ResetUserNotifications200Response


更新使用者對評論通知訂閱狀態 Internal Link

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

參數

名稱 類型 必填 說明
tenant_id String
notification_id String
opted_in_or_out String
comment_id String
sso String

回應

回傳: UpdateUserNotificationStatus200Response

更新使用者對頁面通知訂閱狀態 Internal Link

為頁面啟用或停用通知。當使用者訂閱頁面時,會建立通知 針對新的頂層評論,並且也會

參數

Name Type Required Description
tenant_id String
url_id String
url String
page_title String
subscribed_or_unsubscribed String
sso String

回應

回傳: UpdateUserNotificationStatus200Response

更新使用者通知狀態 Internal Link


參數

名稱 型別 必填 說明
tenant_id String
notification_id String
new_status String
sso String

回應

回傳: UpdateUserNotificationStatus200Response


取得使用者線上狀態 Internal Link


參數

名稱 類型 必填 描述
tenant_id String
url_id_ws String
user_ids String

回應

回傳: GetUserPresenceStatuses200Response


搜尋使用者 Internal Link

參數

名稱 類型 必填 說明
tenant_id String
url_id String
username_starts_with String
mention_group_ids Vec
sso String

回應

回傳: SearchUsers200Response


取得使用者 Internal Link

參數

Name Type Required Description
tenant_id String Yes
id String Yes

回應

回傳: GetUser200Response

範例

get_user 範例
Copy Copy
1
2async fn run_get_user() -> Result<(), Error> {
3 let maybe_id: Option<String> = Some("user-6412".to_owned());
4 let params: GetUserParams = GetUserParams {
5 tenant_id: "acme-corp-tenant".to_owned(),
6 id: maybe_id.unwrap(),
7 };
8 let user_response: GetUser200Response = get_user(&configuration, params).await?;
9 println!("{:#?}", user_response);
10 Ok(())
11}
12

建立投票 Internal Link

參數

Name Type Required Description
tenant_id String
comment_id String
direction String
user_id String
anon_user_id String

回應

回傳: VoteComment200Response

範例

create_vote 範例
Copy Copy
1
2async fn run_vote() -> Result<VoteComment200Response, Error> {
3 let params: CreateVoteParams = CreateVoteParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 comment_id: "news/2026/01/12/local-election-12345".to_string(),
6 direction: "up".to_string(),
7 user_id: Some("user_9876".to_string()),
8 anon_user_id: None,
9 };
10 let response: VoteComment200Response = create_vote(&configuration, params).await?;
11 Ok(response)
12}
13

刪除投票 Internal Link

參數

名稱 類型 必填 描述
tenant_id String
id String
edit_key String

回應

回傳:DeleteCommentVote200Response

範例

delete_vote 範例
Copy Copy
1
2async fn run_delete_vote() -> Result<(), Error> {
3 let params: DeleteVoteParams = DeleteVoteParams {
4 tenant_id: "acme-corp-tenant".to_string(),
5 id: "news/article/67890/comment/12345".to_string(),
6 edit_key: Some("user-editkey-7f3b".to_string()),
7 };
8 let response: DeleteCommentVote200Response = delete_vote(&configuration, params).await?;
9 Ok(())
10}
11

取得投票 Internal Link

參數

名稱 類型 必填 說明
tenant_id String
url_id String

回應

回傳:GetVotes200Response

範例

get_votes 範例
Copy Copy
1
2async fn fetch_votes_example() -> Result<(), Error> {
3 let params: GetVotesParams = GetVotesParams {
4 tenant_id: String::from("acme-corp-tenant"),
5 url_id: String::from("news/article/2026-01-12/housing-market"),
6 };
7 let votes: GetVotes200Response = get_votes(&configuration, params).await?;
8 let _ = votes;
9 Ok(())
10}
11

取得使用者的投票 Internal Link

參數

名稱 類型 必填 描述
tenant_id String
url_id String
user_id String
anon_user_id String

回應

回傳: GetVotesForUser200Response

範例

get_votes_for_user 範例
Copy Copy
1
2async fn fetch_votes() -> Result<GetVotesForUser200Response, Error> {
3 let params = GetVotesForUserParams {
4 tenant_id: String::from("acme-corp-tenant"),
5 url_id: String::from("news/2026/01/12/breaking-tech"),
6 user_id: Some(String::from("user-78a3")),
7 anon_user_id: Some(String::from("anon-4f2b")),
8 };
9 let response: GetVotesForUser200Response = get_votes_for_user(&configuration, params).await?;
10 Ok(response)
11}
12

需要幫助嗎?

如果您在使用 Rust SDK 時遇到任何問題或有任何疑問,請:

Contributing

歡迎貢獻!請造訪 GitHub 儲存庫 以取得貢獻指南。