FastComments.com

FastComments Rust SDK

这是 FastComments 的官方 Rust SDK。

FastComments API 的官方 Rust SDK

仓库

在 GitHub 上查看


安装 Internal Link

cargo add fastcomments-sdk

该 SDK 需要 Rust 2021 版或更高版本。

库内容 Internal Link


The FastComments Rust SDK 由若干模块组成:

  • Client Module - 为 FastComments REST API 自动生成的 API 客户端

    • 提供所有 API 模型的完整类型定义
    • 包含已认证的(DefaultApi)和公共的(PublicApi)端点
    • 使用 tokio 完全支持 async/await
    • 详见 client/README.md 获取详细的 API 文档
  • 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 未授权错误

如果在使用需要身份验证的 API 时遇到 401 错误:

  1. 检查你的 API key:确保你正在使用来自 FastComments dashboard 的正确 API key
  2. 验证 tenant ID:确保 tenant ID 与您的帐户匹配
  3. API key 格式:API key 应在 Configuration 中传递:
let mut config = Configuration::new();
config.api_key = Some(ApiKey {
    prefix: None,
    key: "YOUR_API_KEY".to_string(),
});

SSO 令牌问题

如果 SSO 令牌 无法正常工作:

  1. 在生产环境中使用安全模式:始终在生产环境使用 FastCommentsSSO::new_secure() 并搭配您的 API key
  2. 仅限服务器端:在服务器上生成 SSO 令牌,切勿将您的 API key 暴露给客户端
  3. 检查用户数据:确保所有必需字段 (id, email, username) 已提供

异步运行时错误

该 SDK 使用 tokio 进行异步操作。请确保:

  1. 将 tokio 添加到您的依赖项:

    [dependencies]
    tokio = { version = "1", features = ["full"] }
  2. 使用 tokio 运行时:

    #[tokio::main]
    async fn main() {
     // 在此处放置您的异步代码
    }

注意事项 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

参数

Name Type 必需 描述
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


参数

名称 类型 必需 描述
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

参数

Name Type Required Description
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

参数

名称 类型 必需 描述
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

参数

Name Type Required Description
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
id String
body models::PickApiCommentPeriodUpdatableCommentFields
context_user_id String
do_spam_check bool
is_live bool

响应

返回: FlagCommentPublic200Response


对评论投票 Internal Link

参数

名称 类型 必需 描述
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

参数

名称 类型 必填 描述
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

参数

名称 类型 必需 描述
tenant_id String
id String
error_id String

响应

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

参数

Name Type Required Description
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

参数

名称 类型 必需 描述
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

参数

名称 类型 必需 描述
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

参数

Name Type Required Description
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

参数

Name Type Required Description
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

参数

名称 类型 必需 描述
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

参数

Name Type Required Description
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

参数

Name Type Required Description
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

参数

Name Type Required Description
tenant_id String Yes
id String Yes

响应

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

参数

Name Type Required Description
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

参数

Name Type Required Description
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
id String

响应

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

参数

Name Type Required Description
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

参数

名称 类型 必需 描述
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

参数

名称 类型 必填 描述
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

参数

名称 类型 必需 描述
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


参数

名称 类型 必需 描述
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

参数

名称 类型 必需 描述
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


参数

名称 类型 必填 说明
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

参数

Name Type Required Description
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


参数

Name Type Required Description
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

参数

名称 类型 必填 描述
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

参数

Name Type Required Description
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


参数

名称 类型 必填 描述
tenant_id String
bulk_aggregate_question_results_request models::BulkAggregateQuestionResultsRequest
force_recalculate bool

响应

返回: BulkAggregateQuestionResults200Response


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

参数

名称 类型 必填 描述
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


添加单点登录用户 Internal Link

参数

名称 类型 必需 描述
tenant_id String
create_apisso_user_data models::CreateApissoUserData

响应

返回: AddSsoUserApiResponse

删除单点登录用户 Internal Link

参数

名称 类型 必需 描述
tenant_id String
id String
delete_comments bool
comment_delete_mode String

响应

返回: DeleteSsoUserApiResponse


通过邮箱获取单点登录用户 Internal Link


参数

名称 类型 必需 描述
tenant_id String
email String

响应

返回: GetSsoUserByEmailApiResponse


通过 ID 获取单点登录用户 Internal Link


参数

名称 类型 必需 说明
tenant_id String Yes
id String Yes

响应

返回: GetSsoUserByIdApiResponse


获取单点登录用户列表 Internal Link

参数

名称 类型 必填 描述
tenant_id String
skip i32

响应

返回:GetSsoUsers200Response


部分更新单点登录用户 Internal Link


参数

名称 类型 必需 描述
tenant_id String
id String
update_apisso_user_data models::UpdateApissoUserData
update_comments bool

响应

返回: PatchSsoUserApiResponse


替换单点登录用户 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

参数

名称 类型 必需 描述
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

参数

名称 类型 必需 描述
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
id String
replace_tenant_package_body models::ReplaceTenantPackageBody

响应

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

参数

名称 类型 必需 描述
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

参数

Name Type Required Description
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

参数

名称 类型 必需 描述
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 Yes
id String Yes

响应

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

参数

Name Type Required Description
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
id String
update_tenant_body models::UpdateTenantBody

响应

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


上传并调整图片大小

参数

Name Type Required Description
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

参数

名称 类型 必填 描述
tenant_id String
user_id String
badge_id String
displayed_on_comments bool
limit f64
skip f64

响应

返回:GetUserBadges200Response


更新用户徽章 Internal Link


参数

名称 类型 必填 描述
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

参数

名称 类型 必需 描述
tenant_id String
id String

响应

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

参数

名称 类型 必需 描述
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 时遇到任何问题或有疑问,请:

贡献

欢迎贡献!请访问 GitHub 仓库 以查看贡献指南。