
语言 🇨🇳 简体中文
入门
文档
聚合
审计日志
评论屏蔽
检查被屏蔽的评论
评论
域配置
邮件模板
事件日志
动态帖子
标记评论
标签
版主
通知计数
通知
页面
待处理 Webhook 事件
问题配置
问题结果
问题结果聚合
SSO 用户
订阅
租户日使用量
租户套餐
租户用户
租户
上传图片
用户徽章进度
用户徽章
用户通知
用户在线状态
用户搜索
用户
投票
FastComments Python SDK
这是 FastComments 的官方 Python SDK。
FastComments API 的官方 Python SDK
仓库
安装 
PyPI
pip install fastcomments
库内容
该库包含两个模块:生成的 API 客户端和核心 Python 库,后者包含手写的实用工具以简化与 API 的交互,包括 SSO 支持。
公开与受保护的 API
对于 API 客户端,有两个类,DefaultApi 和 PublicApi。DefaultApi 包含需要您的 API 密钥的方法,PublicApi 包含可以直接从浏览器/移动设备等在无身份验证情况下调用的 API。
快速开始 
使用已认证的 API (DefaultApi)
重要: 在进行已认证的请求之前,您必须在 Configuration 上设置您的 API 密钥。如果不设置,请求将以 401 错误失败。
from client import ApiClient, Configuration, DefaultApi
from client.models import CreateAPISSOUserData
# 创建并配置 API 客户端
config = Configuration()
config.host = "https://fastcomments.com/api"
# 必填:设置你的 API 密钥(从 FastComments 仪表板获取)
config.api_key = {"ApiKeyAuth": "YOUR_API_KEY_HERE"}
# 使用配置好的客户端创建 API 实例
api_client = ApiClient(configuration=config)
api = DefaultApi(api_client)
# 现在你可以进行已认证的 API 调用
try:
# 示例:添加 SSO 用户
user_data = CreateAPISSOUserData(
id="user-123",
email="user@example.com",
display_name="John Doe"
)
response = api.add_sso_user(
tenant_id="YOUR_TENANT_ID",
create_apisso_user_data=user_data
)
print(f"User created: {response}")
except Exception as e:
print(f"Error: {e}")
# 常见错误:
# - 401:API 密钥丢失或无效
# - 400:请求验证失败
使用公共 API (PublicApi)
公共端点不需要认证:
from client import ApiClient, Configuration, PublicApi
config = Configuration()
config.host = "https://fastcomments.com/api"
api_client = ApiClient(configuration=config)
public_api = PublicApi(api_client)
try:
response = public_api.get_comments_public(
tenant_id="YOUR_TENANT_ID",
url_id="page-url-id"
)
print(response)
except Exception as e:
print(f"Error: {e}")
使用 SSO(单点登录)
该 SDK 包含用于生成安全 SSO 令牌的实用工具:
from sso import FastCommentsSSO, SecureSSOUserData
# 创建用户数据
user_data = SecureSSOUserData(
user_id="user-123",
email="user@example.com",
username="johndoe",
avatar="https://example.com/avatar.jpg"
)
# 使用你的 API 密钥(secret)创建 SSO 实例
sso = FastCommentsSSO.new_secure(
api_secret="YOUR_API_SECRET",
user_data=user_data
)
# 生成 SSO 令牌
sso_token = sso.create_token()
# 在前端使用此令牌或传递给 API 调用
print(f"SSO Token: {sso_token}")
对于简单 SSO(不太安全,仅用于测试):
from sso import FastCommentsSSO, SimpleSSOUserData
user_data = SimpleSSOUserData(
user_id="user-123",
email="user@example.com"
)
sso = FastCommentsSSO.new_simple(user_data)
sso_token = sso.create_token()
常见问题
- 401 "missing-api-key" 错误:确保在创建 DefaultApi 实例之前设置
config.api_key = {"ApiKeyAuth": "YOUR_KEY"}。 - 错误的 API 类:对服务器端的已认证请求使用
DefaultApi,对客户端/公共请求使用PublicApi。 - 导入错误:确保你从正确的模块导入:
- API 客户端:
from client import ... - SSO 实用工具:
from sso import ...
- API 客户端:
注意事项 
广播 ID
你会看到在某些 API 调用中需要传递 broadcast_id。当你接收到事件时,会把这个 ID 返回给你,这样如果你打算在客户端乐观地应用更改,就可以据此忽略该事件(你可能会想这么做,因为它能提供最佳体验)。在此处传递一个 UUID。该 ID 应足够唯一,确保在同一浏览器会话中不会出现两次。
要求 
- Python >= 3.8
- urllib3 >= 1.25.3
- python-dateutil >= 2.8.2
- pydantic >= 2.0.0
- typing-extensions >= 4.0.0
聚合 
通过对文档进行分组(如果提供 groupBy)并应用多个操作来聚合文档。支持不同的操作(例如 sum、countDistinct、avg 等)。
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| parentTenantId | string | query | No | |
| includeStats | boolean | query | No |
响应
示例

获取审计日志 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| limit | number | query | 否 | |
| skip | number | query | 否 | |
| order | string | query | 否 | |
| after | number | query | 否 | |
| before | number | query | 否 |
响应
示例

在公开评论中屏蔽 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| commentId | string | path | 是 | |
| sso | string | query | 否 |
响应
返回: BlockFromCommentPublic200Response
示例

在公开评论中取消屏蔽 
参数
| 名称 | 类型 | 位置 | 必需 | 说明 |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| commentId | string | path | 是 | |
| sso | string | query | 否 |
响应
返回: UnBlockCommentPublic200Response
示例

检查被屏蔽的评论 
参数
| 名称 | 类型 | 位置 | 必填 | 描述 |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| commentIds | string | query | Yes | 以逗号分隔的评论 ID 列表。 |
| sso | string | query | No |
响应
返回: CheckedCommentsForBlocked200Response
示例

从评论中屏蔽用户 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| id | string | path | Yes | |
| userId | string | query | No | |
| anonUserId | string | query | No |
响应
返回: BlockFromCommentPublic200Response
示例

创建公开评论 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | path | 是 | |
| urlId | string | query | 是 | |
| broadcastId | string | query | 是 | |
| sessionId | string | query | 否 | |
| sso | string | query | 否 |
响应
返回: CreateCommentPublic200Response
示例

删除评论 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| id | string | path | 是 | |
| contextUserId | string | query | 否 | |
| isLive | boolean | query | 否 |
响应
示例

删除公开评论 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | path | Yes | |
| commentId | string | path | Yes | |
| broadcastId | string | query | Yes | |
| editKey | string | query | No | |
| sso | string | query | No |
响应
返回: DeleteCommentPublic200Response
示例

删除评论投票 
参数
| 名称 | 类型 | 位置 | 是否必填 | 描述 |
|---|---|---|---|---|
| tenantId | string | path | 是 | |
| commentId | string | path | 是 | |
| voteId | string | path | 是 | |
| urlId | string | query | 是 | |
| broadcastId | string | query | 是 | |
| editKey | string | query | 否 | |
| sso | string | query | 否 |
响应
返回: DeleteCommentVote200Response
示例

标记评论 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| id | string | path | 是 | |
| userId | string | query | 否 | |
| anonUserId | string | query | 否 |
响应
示例

获取评论 
参数
| 名称 | 类型 | 位置 | 必需 | 描述 |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| id | string | path | 是 |
响应
示例

获取评论文本 
参数
| 名称 | 类型 | 位置 | 是否必需 | 描述 |
|---|---|---|---|---|
| tenantId | string | path | 是 | |
| commentId | string | path | 是 | |
| editKey | string | query | 否 | |
| sso | string | query | 否 |
响应
示例

获取评论投票用户名称 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | path | Yes | |
| commentId | string | path | Yes | |
| dir | integer | query | Yes | |
| sso | string | query | No |
响应
返回: GetCommentVoteUserNames200Response
示例

获取评论列表 
参数
| 名称 | 类型 | 位置 | 必需 | 描述 |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| page | integer | query | 否 | |
| limit | integer | query | 否 | |
| skip | integer | query | 否 | |
| asTree | boolean | query | 否 | |
| skipChildren | integer | query | 否 | |
| limitChildren | integer | query | 否 | |
| maxTreeDepth | integer | query | 否 | |
| urlId | string | query | 否 | |
| userId | string | query | 否 | |
| anonUserId | string | query | 否 | |
| contextUserId | string | query | 否 | |
| hashTag | string | query | 否 | |
| parentId | string | query | 否 | |
| direction | string | query | 否 |
响应
示例

获取公开评论 
req tenantId urlId
参数
| 名称 | 类型 | 位置 | 是否必需 | 描述 |
|---|---|---|---|---|
| tenantId | string | path | 是 | |
| urlId | string | query | 是 | |
| page | integer | query | 否 | |
| direction | string | query | 否 | |
| sso | string | query | 否 | |
| skip | integer | query | 否 | |
| skipChildren | integer | query | 否 | |
| limit | integer | query | 否 | |
| limitChildren | integer | query | 否 | |
| countChildren | boolean | query | 否 | |
| fetchPageForCommentId | string | query | 否 | |
| includeConfig | boolean | query | 否 | |
| countAll | boolean | query | 否 | |
| includei10n | boolean | query | 否 | |
| locale | string | query | 否 | |
| modules | string | query | 否 | |
| isCrawler | boolean | query | 否 | |
| includeNotificationCount | boolean | query | 否 | |
| asTree | boolean | query | 否 | |
| maxTreeDepth | integer | query | 否 | |
| useFullTranslationIds | boolean | query | 否 | |
| parentId | string | query | 否 | |
| searchText | string | query | 否 | |
| hashTags | array | query | 否 | |
| userId | string | query | 否 | |
| customConfigStr | string | query | 否 | |
| afterCommentId | string | query | 否 | |
| beforeCommentId | string | query | 否 |
响应
返回: GetCommentsPublic200Response
示例

锁定评论 
参数
| 名称 | 类型 | 位置 | 必需 | 描述 |
|---|---|---|---|---|
| tenantId | string | path | 是 | |
| commentId | string | path | 是 | |
| broadcastId | string | query | 是 | |
| sso | string | query | 否 |
响应
示例

置顶评论 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | path | 是 | |
| commentId | string | path | 是 | |
| broadcastId | string | query | 是 | |
| sso | string | query | 否 |
响应
示例

保存评论 
参数
| 名称 | 类型 | 位置 | 必填 | 描述 |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| isLive | boolean | query | 否 | |
| doSpamCheck | boolean | query | 否 | |
| sendEmails | boolean | query | 否 | |
| populateNotifications | boolean | query | 否 |
响应
示例

批量保存评论 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| isLive | boolean | query | 否 | |
| doSpamCheck | boolean | query | 否 | |
| sendEmails | boolean | query | 否 | |
| populateNotifications | boolean | query | 否 |
响应
示例

设置评论文本 
参数
| 名称 | 类型 | 位置 | 必填 | 描述 |
|---|---|---|---|---|
| tenantId | string | 路径 | 是 | |
| commentId | string | 路径 | 是 | |
| broadcastId | string | 查询 | 是 | |
| editKey | string | 查询 | 否 | |
| sso | string | 查询 | 否 |
响应
示例

取消从评论中屏蔽用户 
参数
| 名称 | 类型 | 位置 | 必需 | 描述 |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| id | string | path | 是 | |
| userId | string | query | 否 | |
| anonUserId | string | query | 否 |
响应
返回: UnBlockCommentPublic200Response
示例

取消标记评论 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| id | string | path | Yes | |
| userId | string | query | No | |
| anonUserId | string | query | No |
响应
示例

解锁评论 
参数
| 名称 | 类型 | 位置 | 必需 | 描述 |
|---|---|---|---|---|
| tenantId | string | 路径 | 是 | |
| commentId | string | 路径 | 是 | |
| broadcastId | string | 查询 | 是 | |
| sso | string | 查询 | 否 |
响应
示例

取消置顶评论 
参数
| 名称 | 类型 | 位置 | 必需 | 描述 |
|---|---|---|---|---|
| tenantId | string | path | Yes | |
| commentId | string | path | Yes | |
| broadcastId | string | query | Yes | |
| sso | string | query | No |
响应
示例

更新评论 
参数
| 名称 | 类型 | 位置 | 必需 | 描述 |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| id | string | path | 是 | |
| contextUserId | string | query | 否 | |
| doSpamCheck | boolean | query | 否 | |
| isLive | boolean | query | 否 |
响应
返回: FlagCommentPublic200Response
示例

评论投票 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | path | 是 | |
| commentId | string | path | 是 | |
| urlId | string | query | 是 | |
| broadcastId | string | query | 是 | |
| sessionId | string | query | 否 | |
| sso | string | query | 否 |
响应
示例

添加域配置 
参数
| 名称 | 类型 | 位置 | 必填 | 描述 |
|---|---|---|---|---|
| tenantId | string | query | 是 |
响应
示例

删除域配置 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | 查询 | 是 | |
| domain | string | 路径 | 是 |
响应
返回: DeleteDomainConfig200Response
示例

获取域配置 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| domain | string | path | 是 |
响应
示例

获取域配置列表 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | 是 |
响应
返回:GetDomainConfigs200Response
示例

部分更新域配置 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| domainToUpdate | string | path | 是 |
响应
返回: GetDomainConfig200Response
示例

替换域配置 
参数
| 名称 | 类型 | 位置 | 必需 | 描述 |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| domainToUpdate | string | path | 是 |
响应
返回: GetDomainConfig200Response
示例

创建邮件模板 
参数
| 名称 | 类型 | 位置 | 必需 | 描述 |
|---|---|---|---|---|
| tenantId | string | query | 是 |
响应
返回: CreateEmailTemplate200Response
示例

删除邮件模板 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| id | string | path | 是 |
响应
返回: FlagCommentPublic200Response
示例

删除邮件模板渲染错误 
参数
| 名称 | 类型 | 位置 | 必填 | 描述 |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| id | string | path | 是 | |
| errorId | string | path | 是 |
响应
返回: FlagCommentPublic200Response
示例

获取邮件模板 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| id | string | path | 是 |
响应
返回:GetEmailTemplate200Response
示例

获取邮件模板定义 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes |
响应
返回: GetEmailTemplateDefinitions200Response
示例

获取邮件模板渲染错误 
参数
| 名称 | 类型 | 位置 | 是否必需 | 描述 |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| id | string | path | Yes | |
| skip | number | query | No |
响应
返回: GetEmailTemplateRenderErrors200Response
示例

获取邮件模板列表 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| skip | number | query | 否 |
Response
返回: GetEmailTemplates200Response
示例

渲染邮件模板 
参数
| 名称 | 类型 | 位置 | 必需 | 描述 |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| locale | string | query | 否 |
响应
返回: RenderEmailTemplate200Response
示例

更新邮件模板 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| id | string | path | 是 |
响应
返回: FlagCommentPublic200Response
示例

获取事件日志 
req tenantId urlId userIdWS
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | path | 是 | |
| urlId | string | query | 是 | |
| userIdWS | string | query | 是 | |
| startTime | integer | query | 是 | |
| endTime | integer | query | 是 |
响应
示例

获取全局事件日志 
req tenantId urlId userIdWS
参数
| 名称 | 类型 | 位置 | 必填 | 描述 |
|---|---|---|---|---|
| tenantId | string | path | 是 | |
| urlId | string | query | 是 | |
| userIdWS | string | query | 是 | |
| startTime | integer | query | 是 | |
| endTime | integer | query | 是 |
响应
示例

创建动态帖子 
参数
| 名称 | 类型 | 位置 | 必需 | 描述 |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| broadcastId | string | query | 否 | |
| isLive | boolean | query | 否 | |
| doSpamCheck | boolean | query | 否 | |
| skipDupCheck | boolean | query | 否 |
响应
示例

创建公开动态帖子 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | 路径 | 是 | |
| broadcastId | string | 查询 | 否 | |
| sso | string | 查询 | 否 |
响应
返回: CreateFeedPostPublic200Response
示例

删除公开动态帖子 
参数
| 名称 | 类型 | 位置 | 必填 | 描述 |
|---|---|---|---|---|
| tenantId | string | path | 是 | |
| postId | string | path | 是 | |
| broadcastId | string | query | 否 | |
| sso | string | query | 否 |
响应
返回: DeleteFeedPostPublic200Response
示例

获取动态帖子 
req tenantId afterId
参数
| 名称 | 类型 | 位置 | 必需 | 描述 |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| afterId | string | query | 否 | |
| limit | integer | query | 否 | |
| tags | array | query | 否 |
响应
示例

获取公开动态帖子 
req tenantId afterId
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | path | 是 | |
| afterId | string | query | 否 | |
| limit | integer | query | 否 | |
| tags | array | query | 否 | |
| sso | string | query | 否 | |
| isCrawler | boolean | query | 否 | |
| includeUserInfo | boolean | query | 否 |
响应
返回: GetFeedPostsPublic200Response
示例

获取动态帖子统计 
参数
| 名称 | 类型 | 位置 | 必需 | 描述 |
|---|---|---|---|---|
| tenantId | string | path | 是 | |
| postIds | array | query | 是 | |
| sso | string | query | 否 |
响应
返回: GetFeedPostsStats200Response
示例

获取用户公开反应 
参数
| 名称 | 类型 | 位置 | 必填 | 描述 |
|---|---|---|---|---|
| tenantId | string | path | 是 | |
| postIds | array | query | 否 | |
| sso | string | query | 否 |
响应
返回: GetUserReactsPublic200Response
示例

对公开动态帖子进行反应 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | path | Yes | |
| postId | string | path | Yes | |
| isUndo | boolean | query | No | |
| broadcastId | string | query | No | |
| sso | string | query | No |
响应
返回: ReactFeedPostPublic200Response
示例

更新动态帖子 
参数
| 名称 | 类型 | 位置 | 必需 | 描述 |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| id | string | path | 是 |
响应
返回: FlagCommentPublic200Response
示例

更新公开动态帖子 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | path | 是 | |
| postId | string | path | 是 | |
| broadcastId | string | query | 否 | |
| sso | string | query | 否 |
响应
返回: CreateFeedPostPublic200Response
示例

标记公开评论 
参数
| 名称 | 类型 | 位置 | 必需 | 描述 |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| commentId | string | path | 是 | |
| isFlagged | boolean | query | 是 | |
| sso | string | query | 否 |
响应
返回:FlagCommentPublic200Response
示例

添加标签 
参数
| 名称 | 类型 | 位置 | 必需 | 描述 |
|---|---|---|---|---|
| tenantId | string | query | 否 |
响应
示例

批量添加标签 
参数
| 名称 | 类型 | 位置 | 必需 | 描述 |
|---|---|---|---|---|
| tenantId | string | query | 否 |
响应
返回: AddHashTagsBulk200Response
示例

删除标签 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tag | string | path | 是 | |
| tenantId | string | query | 否 |
响应
返回: FlagCommentPublic200Response
示例

获取标签 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| page | number | query | 否 |
响应
示例

部分更新标签 
参数
| 名称 | 类型 | 位置 | 必需 | 描述 |
|---|---|---|---|---|
| tag | string | path | 是 | |
| tenantId | string | query | 否 |
响应
示例

创建版主 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | 是 |
响应
返回: CreateModerator200Response
示例

删除版主 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| id | string | path | Yes | |
| sendEmail | string | query | No |
响应
返回: FlagCommentPublic200Response
示例

获取版主 
参数
| 名称 | 类型 | 位置 | 是否必需 | 描述 |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| id | string | path | 是 |
响应
示例

获取版主列表 
参数
| 名称 | 类型 | 位置 | 必需 | 描述 |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| skip | number | query | 否 |
响应
示例

发送邀请 
参数
| 名称 | 类型 | 位置 | 必需 | 描述 |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| id | string | path | 是 | |
| fromName | string | query | 是 |
响应
返回: FlagCommentPublic200Response
示例

更新版主 
参数
| 名称 | 类型 | 位置 | 必需 | 描述 |
|---|---|---|---|---|
| tenantId | string | 查询 | 是 | |
| id | string | 路径 | 是 |
响应
返回: FlagCommentPublic200Response
示例

删除通知计数 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| id | string | path | 是 |
响应
返回: FlagCommentPublic200Response
示例

获取缓存的通知计数 
参数
| 名称 | 类型 | 位置 | 必需 | 描述 |
|---|---|---|---|---|
| tenantId | string | 查询 | 是 | |
| id | string | 路径 | 是 |
响应
返回: GetCachedNotificationCount200Response
示例

获取通知计数 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| userId | string | query | 否 | |
| urlId | string | query | 否 | |
| fromCommentId | string | query | 否 | |
| viewed | boolean | query | 否 | |
| type | string | query | 否 |
响应
返回: GetNotificationCount200Response
示例

获取通知 
参数
| 名称 | 类型 | 位置 | 必需 | 描述 |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| userId | string | query | 否 | |
| urlId | string | query | 否 | |
| fromCommentId | string | query | 否 | |
| viewed | boolean | query | 否 | |
| type | string | query | 否 | |
| skip | number | query | 否 |
响应
返回:GetNotifications200Response
示例

更新通知 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| id | string | path | Yes | |
| userId | string | query | No |
响应
返回: FlagCommentPublic200Response
示例

添加页面 
参数
| 名称 | 类型 | 位置 | 必填 | 描述 |
|---|---|---|---|---|
| tenantId | string | query | 是 |
响应
示例

删除页面 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| id | string | path | 是 |
响应
示例

通过 URL ID 获取页面 
参数
| 名称 | 类型 | 位置 | 必填 | 描述 |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| urlId | string | query | 是 |
响应
示例

获取页面列表 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | 是 |
响应
示例

部分更新页面 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| id | string | path | 是 |
响应
示例

删除待处理的 Webhook 事件 
参数
| 名称 | 类型 | 位置 | 必填 | 描述 |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| id | string | path | 是 |
响应
返回: FlagCommentPublic200Response
示例

获取待处理 Webhook 事件计数 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| commentId | string | query | 否 | |
| externalId | string | query | 否 | |
| eventType | string | query | 否 | |
| type | string | query | 否 | |
| domain | string | query | 否 | |
| attemptCountGT | number | query | 否 |
响应
返回: GetPendingWebhookEventCount200Response
示例

获取待处理的 Webhook 事件 
参数
| 名称 | 类型 | 位置 | 必需 | 描述 |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| commentId | string | query | 否 | |
| externalId | string | query | 否 | |
| eventType | string | query | 否 | |
| type | string | query | 否 | |
| domain | string | query | 否 | |
| attemptCountGT | number | query | 否 | |
| skip | number | query | 否 |
响应
返回:GetPendingWebhookEvents200Response
示例

创建问题配置 
参数
| 名称 | 类型 | 位置 | 必需 | 描述 |
|---|---|---|---|---|
| tenantId | string | query | 是 |
响应
返回: CreateQuestionConfig200Response
示例

删除问题配置 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| id | string | path | Yes |
响应
返回: FlagCommentPublic200Response
示例

获取问题配置 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| id | string | path | 是 |
响应
返回: GetQuestionConfig200Response
示例

获取问题配置列表 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| skip | number | query | 否 |
响应
返回: GetQuestionConfigs200Response
示例

更新问题配置 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| id | string | path | 是 |
响应
返回: FlagCommentPublic200Response
示例

创建问题结果 
参数
| 名称 | 类型 | 位置 | 必填 | 描述 |
|---|---|---|---|---|
| tenantId | string | query | 是 |
响应
返回: CreateQuestionResult200Response
示例

删除问题结果 
参数
| 名称 | 类型 | 位置 | 必需 | 描述 |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| id | string | path | 是 |
响应
返回: FlagCommentPublic200Response
示例

获取问题结果 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| id | string | path | Yes |
响应
返回: GetQuestionResult200Response
示例

获取问题结果列表 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| urlId | string | query | 否 | |
| userId | string | query | 否 | |
| startDate | string | query | 否 | |
| questionId | string | query | 否 | |
| questionIds | string | query | 否 | |
| skip | number | query | 否 |
响应
返回: GetQuestionResults200Response
示例

更新问题结果 
参数
| 名称 | 类型 | 位置 | 必填 | 描述 |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| id | string | path | 是 |
响应
返回:FlagCommentPublic200Response
示例

聚合问题结果 
参数
| 名称 | 类型 | 位置 | 必需 | 描述 |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| questionId | string | query | No | |
| questionIds | array | query | No | |
| urlId | string | query | No | |
| timeBucket | string | query | No | |
| startDate | string | query | No | |
| forceRecalculate | boolean | query | No |
响应
返回: AggregateQuestionResults200Response
示例

批量聚合问题结果 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| forceRecalculate | boolean | query | 否 |
响应
返回: BulkAggregateQuestionResults200Response
示例

将评论与问题结果合并 
参数
| 名称 | 类型 | 位置 | 必填 | 描述 |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| questionId | string | query | 否 | |
| questionIds | array | query | 否 | |
| urlId | string | query | 否 | |
| startDate | string | query | 否 | |
| forceRecalculate | boolean | query | 否 | |
| minValue | number | query | 否 | |
| maxValue | number | query | 否 | |
| limit | number | query | 否 |
响应
返回: CombineCommentsWithQuestionResults200Response
示例

添加 SSO 用户 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | 是 |
响应
示例

删除 SSO 用户 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| id | string | path | Yes | |
| deleteComments | boolean | query | No | |
| commentDeleteMode | string | query | No |
响应
示例

通过邮箱获取 SSO 用户 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| string | path | 是 |
响应
返回: GetSSOUserByEmailAPIResponse
示例

通过 ID 获取 SSO 用户 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| id | string | path | 是 |
响应
示例

获取 SSO 用户 
参数
| 名称 | 类型 | 位置 | 必需 | 描述 |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| skip | integer | query | 否 |
响应
示例

部分更新 SSO 用户 
参数
| 名称 | 类型 | 位置 | 必填 | 描述 |
|---|---|---|---|---|
| tenantId | string | 查询 | 是 | |
| id | string | 路径 | 是 | |
| updateComments | boolean | 查询 | 否 |
响应
示例

替换 SSO 用户 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| id | string | path | 是 | |
| updateComments | boolean | query | 否 |
响应
示例

创建订阅 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | 查询 | 是 |
响应
返回: CreateSubscriptionAPIResponse
示例

删除订阅 
参数
| 名称 | 类型 | 位置 | 必需 | 描述 |
|---|---|---|---|---|
| tenantId | string | 查询 | 是 | |
| id | string | 路径 | 是 | |
| userId | string | 查询 | 否 |
响应
返回: DeleteSubscriptionAPIResponse
示例

获取订阅 
参数
| 名称 | 类型 | 位置 | 必需 | 描述 |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| userId | string | query | 否 |
响应
返回: GetSubscriptionsAPIResponse
示例

获取租户日使用量 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| yearNumber | number | query | 否 | |
| monthNumber | number | query | 否 | |
| dayNumber | number | query | 否 | |
| skip | number | query | 否 |
响应
返回:GetTenantDailyUsages200Response
示例

创建租户套餐 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | 是 |
响应
返回: CreateTenantPackage200Response
示例

删除租户套餐 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| id | string | path | 是 |
响应
返回: FlagCommentPublic200Response
示例

获取租户套餐 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| id | string | path | 是 |
响应
返回: GetTenantPackage200Response
示例

获取租户套餐列表 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| skip | number | query | 否 |
响应
返回: GetTenantPackages200Response
示例

替换租户套餐 
参数
| 名称 | 类型 | 位置 | 必需 | 描述 |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| id | string | path | 是 |
响应
返回: FlagCommentPublic200Response
示例

更新租户套餐 
参数
| 名称 | 类型 | 位置 | 必需 | 描述 |
|---|---|---|---|---|
| tenantId | string | 查询 | 是 | |
| id | string | 路径 | 是 |
响应
返回: FlagCommentPublic200Response
示例

创建租户用户 
参数
| 名称 | 类型 | 位置 | 必需 | 描述 |
|---|---|---|---|---|
| tenantId | string | query | 是 |
响应
返回:CreateTenantUser200Response
示例

删除租户用户 
参数
| 名称 | 类型 | 位置 | 必需 | 描述 |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| id | string | path | 是 | |
| deleteComments | string | query | 否 | |
| commentDeleteMode | string | query | 否 |
响应
返回: FlagCommentPublic200Response
示例

获取租户用户 
参数
| 名称 | 类型 | 位置 | 必需 | 描述 |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| id | string | path | 是 |
响应
示例

获取租户用户列表 
参数
| 名称 | 类型 | 位置 | 必填 | 描述 |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| skip | number | query | 否 |
响应
示例

替换租户用户 
参数
| 名称 | 类型 | 位置 | 必需 | 描述 |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| id | string | path | 是 | |
| updateComments | string | query | 否 |
响应
返回: FlagCommentPublic200Response
示例

发送登录链接 
参数
| 名称 | 类型 | 位置 | 必填 | 描述 |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| id | string | path | 是 | |
| redirectURL | string | query | 否 |
响应
返回: FlagCommentPublic200Response
示例

更新租户用户 
参数
| 名称 | 类型 | 位置 | 必需 | 描述 |
|---|---|---|---|---|
| tenantId | string | 查询 | 是 | |
| id | string | 路径 | 是 | |
| updateComments | string | 查询 | 否 |
响应
返回: FlagCommentPublic200Response
示例

创建租户 
参数
| 名称 | 类型 | 位置 | 必需 | 描述 |
|---|---|---|---|---|
| tenantId | string | query | 是 |
响应
示例

删除租户 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | 查询 | 是 | |
| id | string | 路径 | 是 | |
| sure | string | 查询 | 否 |
响应
返回:FlagCommentPublic200Response
示例

获取租户 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| id | string | path | 是 |
响应
示例

获取租户列表 
参数
| 名称 | 类型 | 位置 | 必需 | 描述 |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| meta | string | query | 否 | |
| skip | number | query | 否 |
响应
示例

更新租户 
参数
| 名称 | 类型 | 位置 | 必需 | 描述 |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| id | string | path | 是 |
响应
返回: FlagCommentPublic200Response
示例

上传图片 
Upload and resize an image
Parameters
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | path | Yes | |
| sizePreset | string | query | No | 尺寸预设: "Default" (1000x1000px) 或 "CrossPlatform" (为常用设备创建尺寸) |
| urlId | string | query | No | 上传发生的页面 id,用于配置 |
Response
Example

通过 ID 获取用户徽章进度 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| id | string | path | 是 |
响应
返回:GetUserBadgeProgressById200Response
示例

通过用户 ID 获取用户徽章进度 
参数
| 名称 | 类型 | 位置 | 必需 | 描述 |
|---|---|---|---|---|
| tenantId | string | 查询 | 是 | |
| userId | string | 路径 | 是 |
响应
返回: GetUserBadgeProgressById200Response
示例

获取用户徽章进度列表 
参数
| 名称 | 类型 | 位置 | 必需 | 描述 |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| userId | string | query | 否 | |
| limit | number | query | 否 | |
| skip | number | query | 否 |
响应
返回: GetUserBadgeProgressList200Response
示例

创建用户徽章 
参数
| 名称 | 类型 | 位置 | 必需 | 描述 |
|---|---|---|---|---|
| tenantId | string | query | 是 |
响应
返回: CreateUserBadge200Response
示例

删除用户徽章 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| id | string | path | 是 |
响应
返回: UpdateUserBadge200Response
示例

获取用户徽章 
参数
| 名称 | 类型 | 位置 | 必填 | 描述 |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| id | string | path | 是 |
响应
示例

获取用户徽章列表 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| userId | string | query | No | |
| badgeId | string | query | No | |
| type | number | query | No | |
| displayedOnComments | boolean | query | No | |
| limit | number | query | No | |
| skip | number | query | No |
响应
示例

更新用户徽章 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| id | string | path | 是 |
响应
返回: UpdateUserBadge200Response
示例

获取用户通知计数 
参数
| 名称 | 类型 | 位置 | 必需 | 描述 |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| sso | string | query | 否 |
响应
返回: GetUserNotificationCount200Response
示例

获取用户通知 
参数
| 名称 | 类型 | 位置 | 必需 | 描述 |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| pageSize | integer | query | 否 | |
| afterId | string | query | 否 | |
| includeContext | boolean | query | 否 | |
| afterCreatedAt | integer | query | 否 | |
| unreadOnly | boolean | query | 否 | |
| dmOnly | boolean | query | 否 | |
| noDm | boolean | query | 否 | |
| includeTranslations | boolean | query | 否 | |
| sso | string | query | 否 |
响应
返回:GetUserNotifications200Response
示例

重置用户通知计数 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| sso | string | query | 否 |
响应
返回: ResetUserNotifications200Response
示例

重置用户通知 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | 查询 | 是 | |
| afterId | string | 查询 | 否 | |
| afterCreatedAt | integer | 查询 | 否 | |
| unreadOnly | boolean | 查询 | 否 | |
| dmOnly | boolean | 查询 | 否 | |
| noDm | boolean | 查询 | 否 | |
| sso | string | 查询 | 否 |
响应
返回: ResetUserNotifications200Response
示例

更新用户评论订阅状态 
启用或禁用特定评论的通知。
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| notificationId | string | path | 是 | |
| optedInOrOut | string | path | 是 | |
| commentId | string | query | 是 | |
| sso | string | query | 否 |
响应
返回:UpdateUserNotificationStatus200Response
示例

更新用户页面订阅状态 
启用或禁用页面的通知。当用户订阅页面时,会创建通知 用于新的根评论,并且还会
参数
| 名称 | 类型 | 位置 | 必需 | 描述 |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| urlId | string | query | 是 | |
| url | string | query | 是 | |
| pageTitle | string | query | 是 | |
| subscribedOrUnsubscribed | string | path | 是 | |
| sso | string | query | 否 |
响应
返回: UpdateUserNotificationStatus200Response
示例

更新用户通知状态 
参数
| 名称 | 类型 | 位置 | 必需 | 描述 |
|---|---|---|---|---|
| tenantId | string | 查询 | 是 | |
| notificationId | string | 路径 | 是 | |
| newStatus | string | 路径 | 是 | |
| sso | string | 查询 | 否 |
响应
返回:UpdateUserNotificationStatus200Response
示例

获取用户在线状态 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | Yes | |
| urlIdWS | string | query | Yes | |
| userIds | string | query | Yes |
响应
返回: GetUserPresenceStatuses200Response
示例

搜索用户 
参数
| 名称 | 类型 | 位置 | 必需 | 描述 |
|---|---|---|---|---|
| tenantId | string | path | 是 | |
| urlId | string | query | 是 | |
| usernameStartsWith | string | query | 是 | |
| mentionGroupIds | array | query | 否 | |
| sso | string | query | 否 |
响应
示例

获取用户 
参数
| 名称 | 类型 | 位置 | 必填 | 描述 |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| id | string | path | 是 |
响应
示例

创建投票 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| commentId | string | query | 是 | |
| direction | string | query | 是 | |
| userId | string | query | 否 | |
| anonUserId | string | query | 否 |
响应
示例

删除投票 
参数
| 名称 | 类型 | 位置 | 必需 | 描述 |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| id | string | path | 是 | |
| editKey | string | query | 否 |
响应
返回:DeleteCommentVote200Response
示例

获取投票 
参数
| Name | Type | Location | Required | Description |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| urlId | string | query | 是 |
返回
示例

获取用户的投票 
参数
| 名称 | 类型 | 位置 | 必填 | 描述 |
|---|---|---|---|---|
| tenantId | string | query | 是 | |
| urlId | string | query | 是 | |
| userId | string | query | 否 | |
| anonUserId | string | query | 否 |
响应
返回: GetVotesForUser200Response
示例

需要帮助?
如果您在使用 Python SDK 时遇到任何问题或有任何疑问,请:
贡献
欢迎贡献!请访问 GitHub 仓库 获取贡献指南。