服务与方法
本页列出 Go SDK 全部服务的方法,以及每个方法对应的 REST 接口和文档。参数和返回字段的含义见各接口的文档;参数和结果怎样对应到 Go 的类型,见调用接口。
表中各列的含义:
- 方法:省略了服务名,如
Users一节的Get(ctx, username)即client.Users.Get(ctx, username)。参数中首字母大写的是类型(如UpdateUserParams),其余是参数名。 - 结果:成功时返回的值,
—表示只返回error。每个方法的最后一个返回值都是error(遍历方法除外,它们返回iter.Seq2,错误在遍历中产出)。 - 接口:HTTP 方法和路径(省略前缀
/{org_name}/{app_name}),以及接口名。接口名出现在错误的Op、日志、钩子的RequestInfo.Op和Client.Stats()中,drimtest的假服务也按它设置返回值。 - 类别:决定网络错误、超时、
5xx时是否自动重试,见重试与幂等:
| 类别 | 自动重试 |
|---|---|
| 查询 | 是 |
| 去重 ID | 是,用同一个 client_msg_id 重试 |
| 唯一标识 | 是;重试后得到 already_exists 时错误的 Retried 为 true |
| 幂等 | 是;重试后得到 not_found、version_conflict 时错误的 Retried 为 true |
| 不幂等 | 否(请求可能已经发出时) |
被限流的请求没有执行,所有类别都会在等待后重发,见限流。换取 App Token 由 SDK 自动完成(接口名 app.token),没有对应的方法,见App Token 的获取与缓存。
用户:client.Users
用户、登录凭证、登录设备与全局禁言。
| 方法 | 结果 | 接口 | 类别 | 文档 |
|---|---|---|---|---|
ListMuted(ctx, ListMutedParams) | *Page[UserMute] | GET /mutesusers.list_muted | 查询 | 查询被禁言的用户列表 |
AllMuted(ctx, ListMutedParams) | iter.Seq2[UserMute, error] | 同 ListMuted,自动翻页 | 查询 | 查询被禁言的用户列表 |
Create(ctx, CreateUserParams) | *User | POST /usersusers.create | 唯一标识 | 创建用户 |
List(ctx, ListUsersParams) | *Page[User] | GET /usersusers.list | 查询 | 查询用户列表 |
All(ctx, ListUsersParams) | iter.Seq2[User, error] | 同 List,自动翻页 | 查询 | 查询用户列表 |
BatchCreate(ctx, []CreateUserParams) | *BatchCreateUsersResult | POST /users/batchusers.batch_create | 唯一标识 | 批量创建用户 |
BatchCreateAll(ctx, []CreateUserParams) | *BatchCreateUsersResult | 同 BatchCreate,按 100 项拆分、依次提交、合并结果 | 唯一标识 | 批量创建用户 |
Lookup(ctx, usernames) | []User | POST /users/lookupusers.lookup | 查询 | 按用户名批量查询 |
Get(ctx, username) | *User | GET /users/{username}users.get | 查询 | 查询用户 |
Update(ctx, username, UpdateUserParams) | *User | PATCH /users/{username}users.update | 幂等 | 修改用户资料 |
Delete(ctx, username) | — | DELETE /users/{username}users.delete | 幂等 | 删除用户 |
Disable(ctx, username, DisableUserParams) | *User | POST /users/{username}/disableusers.disable | 幂等 | 封禁用户 |
Enable(ctx, username) | *User | POST /users/{username}/enableusers.enable | 幂等 | 解封用户 |
IssueLoginTicket(ctx, username, IssueLoginTicketParams) | *LoginTicket | POST /users/{username}/login-ticketsusers.issue_login_ticket | 幂等 | 签发登录凭证 |
Mutes(ctx, username) | []UserMute | GET /users/{username}/mutesusers.mutes | 查询 | 查询用户的禁言 |
Mute(ctx, username, scope, MuteParams) | *UserMute | PUT /users/{username}/mutes/{scope}users.mute | 幂等 | 设置禁言 |
Unmute(ctx, username, scope) | — | DELETE /users/{username}/mutes/{scope}users.unmute | 幂等 | 解除禁言 |
SetPassword(ctx, username, password) | — | PUT /users/{username}/passwordusers.set_password | 不幂等 | 设置密码 |
Sessions(ctx, username) | []Session | GET /users/{username}/sessionsusers.sessions | 查询 | 查询登录设备 |
KickAll(ctx, username) | — | DELETE /users/{username}/sessionsusers.kick_all | 不幂等 | 踢掉全部设备 |
Kick(ctx, username, sessionID) | — | DELETE /users/{username}/sessions/{session_id}users.kick | 幂等 | 踢掉单台设备 |
好友:client.Friends
好友、好友申请与加好友方式。
| 方法 | 结果 | 接口 | 类别 | 文档 |
|---|---|---|---|---|
Requests(ctx, username, ListFriendRequestsParams) | *Page[FriendRequest] | GET /users/{username}/friend-requestsfriends.requests | 查询 | 查询好友申请 |
AllRequests(ctx, username, ListFriendRequestsParams) | iter.Seq2[FriendRequest, error] | 同 Requests,自动翻页 | 查询 | 查询好友申请 |
Settings(ctx, username) | *FriendSettings | GET /users/{username}/friend-settingsfriends.settings | 查询 | 查询加好友方式 |
SetSettings(ctx, username, Field[string]) | *FriendSettings | PUT /users/{username}/friend-settingsfriends.set_settings | 幂等 | 设置加好友方式 |
List(ctx, username, ListFriendsParams) | *VersionedPage[Friend] | GET /users/{username}/friendsfriends.list | 查询 | 查询好友列表 |
All(ctx, username, ListFriendsParams) | iter.Seq2[Friend, error] | 同 List,自动翻页 | 查询 | 查询好友列表 |
DeleteAll(ctx, username) | int | DELETE /users/{username}/friendsfriends.delete_all | 幂等 | 删除全部好友 |
BatchAdd(ctx, username, []AddFriendItem) | *BatchAddFriendsResult | POST /users/{username}/friends/batchfriends.batch_add | 幂等 | 批量添加好友 |
BatchAddAll(ctx, username, []AddFriendItem) | *BatchAddFriendsResult | 同 BatchAdd,按 100 项拆分、依次提交、合并结果 | 幂等 | 批量添加好友 |
BatchDelete(ctx, username, usernames) | *BatchDeleteFriendsResult | POST /users/{username}/friends/batch-deletefriends.batch_delete | 幂等 | 批量删除好友 |
Check(ctx, username, usernames) | []FriendCheck | POST /users/{username}/friends/checkfriends.check | 查询 | 检查好友关系 |
Get(ctx, username, friend) | *Friend | GET /users/{username}/friends/{friend}friends.get | 查询 | 查询单个好友 |
Add(ctx, username, friend, AddFriendParams) | *FriendChange | PUT /users/{username}/friends/{friend}friends.add | 幂等 | 添加好友 |
Update(ctx, username, friend, UpdateFriendParams) | *FriendChange | PATCH /users/{username}/friends/{friend}friends.update | 幂等 | 修改好友备注和自定义属性 |
Delete(ctx, username, friend) | *FriendChange | DELETE /users/{username}/friends/{friend}friends.delete | 幂等 | 删除好友 |
黑名单:client.Blacklist
用户的黑名单。
| 方法 | 结果 | 接口 | 类别 | 文档 |
|---|---|---|---|---|
List(ctx, username, ListBlacklistParams) | *VersionedPage[BlacklistEntry] | GET /users/{username}/blacklistblacklist.list | 查询 | 查询黑名单 |
All(ctx, username, ListBlacklistParams) | iter.Seq2[BlacklistEntry, error] | 同 List,自动翻页 | 查询 | 查询黑名单 |
BatchAdd(ctx, username, usernames) | *BatchBlacklistResult | POST /users/{username}/blacklist/batchblacklist.batch_add | 幂等 | 批量拉黑 |
BatchRemove(ctx, username, usernames) | *BatchBlacklistResult | POST /users/{username}/blacklist/batch-deleteblacklist.batch_remove | 幂等 | 批量移出黑名单 |
Add(ctx, username, target) | *BlacklistChange | PUT /users/{username}/blacklist/{target}blacklist.add | 幂等 | 拉黑用户 |
Remove(ctx, username, target) | *BlacklistChange | DELETE /users/{username}/blacklist/{target}blacklist.remove | 幂等 | 移出黑名单 |
群组:client.Groups
群、群成员、群黑名单、入群申请与用户的入群设置。
| 方法 | 结果 | 接口 | 类别 | 文档 |
|---|---|---|---|---|
Create(ctx, CreateGroupParams) | *CreateGroupResult | POST /groupsgroups.create | 不幂等 | 创建群 |
List(ctx, ListGroupsParams) | *Page[Group] | GET /groupsgroups.list | 查询 | 查询群列表 |
All(ctx, ListGroupsParams) | iter.Seq2[Group, error] | 同 List,自动翻页 | 查询 | 查询群列表 |
Get(ctx, groupID) | *Group | GET /groups/{group_id}groups.get | 查询 | 查询群信息 |
Update(ctx, groupID, UpdateGroupParams) | *GroupChange | PATCH /groups/{group_id}groups.update | 幂等 | 修改群资料和设置 |
Delete(ctx, groupID, reason) | — | DELETE /groups/{group_id}groups.delete | 幂等 | 解散群 |
Blacklist(ctx, groupID, ListOptions) | *Page[GroupBlacklistEntry] | GET /groups/{group_id}/blacklistgroups.blacklist | 查询 | 查询群黑名单 |
AllBlacklist(ctx, groupID, ListOptions) | iter.Seq2[GroupBlacklistEntry, error] | 同 Blacklist,自动翻页 | 查询 | 查询群黑名单 |
AddToBlacklist(ctx, groupID, username, reason) | *GroupBlacklistChange | PUT /groups/{group_id}/blacklist/{username}groups.add_to_blacklist | 幂等 | 将用户加入群黑名单 |
RemoveFromBlacklist(ctx, groupID, username) | *GroupBlacklistChange | DELETE /groups/{group_id}/blacklist/{username}groups.remove_from_blacklist | 幂等 | 将用户移出群黑名单 |
Disable(ctx, groupID, reason) | *GroupChange | POST /groups/{group_id}/disablegroups.disable | 幂等 | 封禁群 |
Enable(ctx, groupID) | *GroupChange | POST /groups/{group_id}/enablegroups.enable | 幂等 | 解封群 |
Members(ctx, groupID, ListMembersParams) | *VersionedPage[GroupMember] | GET /groups/{group_id}/membersgroups.members | 查询 | 查询群成员列表 |
AllMembers(ctx, groupID, ListMembersParams) | iter.Seq2[GroupMember, error] | 同 Members,自动翻页 | 查询 | 查询群成员列表 |
AddMembers(ctx, groupID, usernames) | *GroupMembersResult | POST /groups/{group_id}/members/batchgroups.add_members | 幂等 | 批量添加群成员 |
RemoveMembers(ctx, groupID, usernames) | *GroupMembersResult | POST /groups/{group_id}/members/batch-deletegroups.remove_members | 幂等 | 批量移出群成员 |
Member(ctx, groupID, username) | *GroupMember | GET /groups/{group_id}/members/{username}groups.member | 查询 | 查询群成员 |
UpdateMember(ctx, groupID, username, UpdateMemberParams) | *GroupMemberChange | PATCH /groups/{group_id}/members/{username}groups.update_member | 幂等 | 修改群成员资料 |
MuteMember(ctx, groupID, username, durationSeconds) | *GroupMemberChange | PUT /groups/{group_id}/members/{username}/mutegroups.mute_member | 幂等 | 禁言群成员 |
UnmuteMember(ctx, groupID, username) | *GroupMemberChange | DELETE /groups/{group_id}/members/{username}/mutegroups.unmute_member | 幂等 | 解除群成员禁言 |
SetRole(ctx, groupID, username, role) | *GroupMemberChange | PUT /groups/{group_id}/members/{username}/rolegroups.set_role | 幂等 | 设置群成员角色 |
SetMuteAll(ctx, groupID, on) | *GroupChange | PUT /groups/{group_id}/mute-allDELETE /groups/{group_id}/mute-allgroups.mute_all、groups.unmute_all | 幂等 | 开启全员禁言、关闭全员禁言 |
TransferOwner(ctx, groupID, username) | *GroupChange | PUT /groups/{group_id}/ownergroups.transfer_owner | 幂等 | 转让群主 |
Requests(ctx, groupID, ListGroupRequestsParams) | *Page[GroupRequest] | GET /groups/{group_id}/requestsgroups.requests | 查询 | 查询入群申请和邀请 |
AllRequests(ctx, groupID, ListGroupRequestsParams) | iter.Seq2[GroupRequest, error] | 同 Requests,自动翻页 | 查询 | 查询入群申请和邀请 |
InviteSettings(ctx, username) | *GroupInviteSettings | GET /users/{username}/group-settingsgroups.invite_settings | 查询 | 查询用户的入群设置 |
SetInviteSettings(ctx, username, Field[string]) | *GroupInviteSettings | PUT /users/{username}/group-settingsgroups.set_invite_settings | 幂等 | 修改用户的入群设置 |
OfUser(ctx, username, ListOptions) | *Page[UserGroup] | GET /users/{username}/groupsgroups.of_user | 查询 | 查询用户加入的群 |
AllOfUser(ctx, username, ListOptions) | iter.Seq2[UserGroup, error] | 同 OfUser,自动翻页 | 查询 | 查询用户加入的群 |
消息:client.Messages
发送、查询、导出、撤回、编辑和置顶消息。
| 方法 | 结果 | 接口 | 类别 | 文档 |
|---|---|---|---|---|
Send(ctx, SendMessageParams) | *SendResult | POST /messagesmessages.send | 去重 ID(只推在线时不幂等) | 发送单条消息 |
Export(ctx, ExportParams) | *ExportPage | GET /messagesmessages.export | 查询 | 导出应用的消息 |
ExportAll(ctx, ExportParams) | iter.Seq2[Message, error] | 同 Export,自动翻页 | 查询 | 导出应用的消息 |
BatchSend(ctx, BatchSendParams) | *BatchSendResult | POST /messages/batchmessages.batch_send | 去重 ID | 批量发送消息 |
BatchSendAll(ctx, BatchSendParams) | *BatchSendResult | 同 BatchSend,按 1000 项拆分、依次提交、合并结果 | 去重 ID | 批量发送消息 |
BatchRecall(ctx, messageIDs, reason) | *BatchRecallResult | POST /messages/batch-recallmessages.batch_recall | 幂等 | 批量撤回消息 |
Get(ctx, messageID) | *Message | GET /messages/{message_id}messages.get | 查询 | 查询单条消息 |
Edit(ctx, messageID, EditMessageParams) | *MessageChange | PATCH /messages/{message_id}messages.edit | 幂等 | 编辑消息 |
Pin(ctx, messageID, reason) | *MessageChange | PUT /messages/{message_id}/pinmessages.pin | 幂等 | 置顶消息 |
Unpin(ctx, messageID, reason) | *MessageChange | DELETE /messages/{message_id}/pinmessages.unpin | 幂等 | 取消置顶消息 |
Recall(ctx, messageID, reason) | *MessageChange | POST /messages/{message_id}/recallmessages.recall | 幂等 | 撤回消息 |
SentBy(ctx, username, SentByParams) | *Page[Message] | GET /users/{username}/sent-messagesmessages.sent_by | 查询 | 查询用户发出的消息 |
AllSentBy(ctx, username, SentByParams) | iter.Seq2[Message, error] | 同 SentBy,自动翻页 | 查询 | 查询用户发出的消息 |
会话:client.Conversations
会话信息、会话消息,以及代用户管理会话状态和未读数。
| 方法 | 结果 | 接口 | 类别 | 文档 |
|---|---|---|---|---|
Get(ctx, conversationID) | *ConversationInfo | GET /conversations/{conversation_id}conversations.get | 查询 | 查询会话信息 |
Messages(ctx, conversationID, SeqParams) | *SeqPage | GET /conversations/{conversation_id}/messagesconversations.messages | 查询 | 拉取会话的历史消息 |
AllMessages(ctx, conversationID, SeqParams) | iter.Seq2[Message, error] | 同 Messages,自动翻页(不支持 AroundSeq) | 查询 | 拉取会话的历史消息 |
Pins(ctx, conversationID, cursor) | *Page[Message] | GET /conversations/{conversation_id}/pinsconversations.pins | 查询 | 查询会话中的置顶消息 |
AllPins(ctx, conversationID) | iter.Seq2[Message, error] | 同 Pins,自动翻页 | 查询 | 查询会话中的置顶消息 |
Single(ctx, username, peer) | *ConversationInfo | GET /single-conversations/{username}/{peer}conversations.single | 查询 | 查询两个用户之间的单聊会话 |
OfUser(ctx, username, ListOptions) | *Page[ConversationState] | GET /users/{username}/conversationsconversations.of_user | 查询 | 查询用户的会话列表 |
AllOfUser(ctx, username, ListOptions) | iter.Seq2[ConversationState, error] | 同 OfUser,自动翻页 | 查询 | 查询用户的会话列表 |
MarkAllRead(ctx, username) | *MarkAllReadResult | POST /users/{username}/conversations/read-allconversations.mark_all_read | 幂等 | 全部标记已读 |
StateOfUser(ctx, username, conversationID) | *ConversationState | GET /users/{username}/conversations/{conversation_id}conversations.state_of_user | 查询 | 查询用户的单个会话 |
Delete(ctx, username, conversationID, clearMessages) | *ConversationStateChange | DELETE /users/{username}/conversations/{conversation_id}conversations.delete | 幂等 | 删除会话 |
Clear(ctx, username, conversationID) | *ConversationStateChange | POST /users/{username}/conversations/{conversation_id}/clearconversations.clear | 幂等 | 清空聊天记录 |
DeleteMessages(ctx, username, conversationID, seqs) | *DeleteMessagesResult | POST /users/{username}/conversations/{conversation_id}/messages/deleteconversations.delete_messages | 幂等 | 删除消息 |
MarkRead(ctx, username, conversationID, seq) | *ConversationStateChange | POST /users/{username}/conversations/{conversation_id}/readconversations.mark_read | 幂等 | 标记会话已读 |
UnreadCount(ctx, username) | *UnreadCount | GET /users/{username}/unread-countconversations.unread_count | 查询 | 查询用户的未读总数 |
文件:client.Media
上传、下载、查询和删除文件。Upload、ResumeUpload 的 r 为 io.ReaderAt、size 为字节数,Download 的 w 为 io.Writer。
| 方法 | 结果 | 接口 | 类别 | 文档 |
|---|---|---|---|---|
Upload(ctx, r, size, UploadParams) | *File | 创建上传、上传内容、完成上传,见文件上传与下载media.upload、media.upload_part | 不幂等 | 上传文件 |
ResumeUpload(ctx, fileID, r, size, UploadParams) | *File | 查询已上传的分片、补传、完成上传,见续传 | 幂等 | 上传文件 |
Download(ctx, url, w) | int64 | 换取下载地址后下载,见下载media.download | 查询 | 换取下载地址 |
DownloadURLs(ctx, urls) | []DownloadURLItem | POST /media/download-urlsmedia.download_urls | 查询 | 换取下载地址 |
File(ctx, fileID) | *File | GET /media/files/{file_id}media.file | 查询 | 查询文件 |
DeleteFile(ctx, fileID) | — | DELETE /media/files/{file_id}media.delete_file | 幂等 | 删除文件 |
GroupFiles(ctx, groupID, ListOptions) | *GroupFilesPage | GET /media/groups/{group_id}/filesmedia.group_files | 查询 | 查询群文件列表 |
AllGroupFiles(ctx, groupID, ListOptions) | iter.Seq2[File, error] | 同 GroupFiles,自动翻页 | 查询 | 查询群文件列表 |
CreateUpload(ctx, CreateUploadParams) | *UploadSession | POST /media/uploadsmedia.create_upload | 不幂等 | 创建上传 |
CancelUpload(ctx, fileID) | — | DELETE /media/uploads/{file_id}media.cancel_upload | 幂等 | 取消上传 |
CompleteUpload(ctx, fileID) | *File | POST /media/uploads/{file_id}/completemedia.complete_upload | 幂等 | 完成上传 |
PartURLs(ctx, fileID, partNumbers) | []PartURL | POST /media/uploads/{file_id}/partsmedia.part_urls | 查询 | 索取分片上传地址 |
UploadedParts(ctx, fileID) | []UploadedPart | GET /media/uploads/{file_id}/partsmedia.uploaded_parts | 查询 | 查询已上传的分片 |
Usage(ctx) | *MediaUsage | GET /media/usagemedia.usage | 查询 | 查询存储用量 |
推送:client.Push
推送设置、会话免打扰与推送设备。
| 方法 | 结果 | 接口 | 类别 | 文档 |
|---|---|---|---|---|
Devices(ctx, username) | []PushDevice | GET /users/{username}/push-devicespush.devices | 查询 | 查询推送设备 |
UnbindDevice(ctx, username, sessionID) | — | DELETE /users/{username}/push-devices/{session_id}push.unbind_device | 幂等 | 解绑推送设备 |
Settings(ctx, username) | *PushSettings | GET /users/{username}/push-settingspush.settings | 查询 | 查询推送设置 |
UpdateSettings(ctx, username, UpdatePushSettingsParams) | *PushSettingsChange | PATCH /users/{username}/push-settingspush.update_settings | 幂等 | 修改推送设置 |
Mutes(ctx, username, ListPushMutesParams) | *VersionedPage[ConversationMute] | GET /users/{username}/push-settings/conversationspush.mutes | 查询 | 查询会话免打扰 |
AllMutes(ctx, username, ListPushMutesParams) | iter.Seq2[ConversationMute, error] | 同 Mutes,自动翻页 | 查询 | 查询会话免打扰 |
MuteGroup(ctx, username, groupID, MuteConversationParams) | *ConversationMuteChange | PUT /users/{username}/push-settings/conversations/group/{group_id}push.mute_group | 幂等 | 设置会话免打扰 |
UnmuteGroup(ctx, username, groupID) | *ConversationUnmuteChange | DELETE /users/{username}/push-settings/conversations/group/{group_id}push.unmute_group | 幂等 | 取消会话免打扰 |
MuteSingle(ctx, username, peer, MuteConversationParams) | *ConversationMuteChange | PUT /users/{username}/push-settings/conversations/single/{peer}push.mute_single | 幂等 | 设置会话免打扰 |
UnmuteSingle(ctx, username, peer) | *ConversationUnmuteChange | DELETE /users/{username}/push-settings/conversations/single/{peer}push.unmute_single | 幂等 | 取消会话免打扰 |
聊天室:client.Chatrooms
聊天室、成员、禁言、封禁、白名单、属性与消息。
| 方法 | 结果 | 接口 | 类别 | 文档 |
|---|---|---|---|---|
Create(ctx, CreateChatroomParams) | *Chatroom | POST /chatroomschatrooms.create | 不幂等 | 创建聊天室 |
List(ctx, ListChatroomsParams) | *Page[Chatroom] | GET /chatroomschatrooms.list | 查询 | 查询聊天室列表 |
All(ctx, ListChatroomsParams) | iter.Seq2[Chatroom, error] | 同 List,自动翻页 | 查询 | 查询聊天室列表 |
OnlineCounts(ctx, roomIDs) | []RoomOnlineCount | POST /chatrooms/online-countschatrooms.online_counts | 查询 | 批量查询在线人数 |
Get(ctx, roomID) | *Chatroom | GET /chatrooms/{room_id}chatrooms.get | 查询 | 查询聊天室信息 |
Update(ctx, roomID, UpdateChatroomParams) | *ChatroomChange | PATCH /chatrooms/{room_id}chatrooms.update | 幂等 | 修改聊天室资料 |
Delete(ctx, roomID) | — | DELETE /chatrooms/{room_id}chatrooms.delete | 幂等 | 解散聊天室 |
SetAdmin(ctx, roomID, username) | *RoomAdminChange | PUT /chatrooms/{room_id}/admins/{username}chatrooms.set_admin | 幂等 | 设置管理员 |
RemoveAdmin(ctx, roomID, username) | *RoomAdminChange | DELETE /chatrooms/{room_id}/admins/{username}chatrooms.remove_admin | 幂等 | 取消管理员 |
Allowlist(ctx, roomID, ListOptions) | *Page[RoomAllowlistEntry] | GET /chatrooms/{room_id}/allowlistchatrooms.allowlist | 查询 | 查询白名单 |
AllAllowlist(ctx, roomID, ListOptions) | iter.Seq2[RoomAllowlistEntry, error] | 同 Allowlist,自动翻页 | 查询 | 查询白名单 |
AddToAllowlist(ctx, roomID, usernames) | *RoomBatchResult | POST /chatrooms/{room_id}/allowlistchatrooms.add_to_allowlist | 幂等 | 加入白名单 |
RemoveFromAllowlist(ctx, roomID, usernames) | *RoomBatchResult | POST /chatrooms/{room_id}/allowlist/batch-deletechatrooms.remove_from_allowlist | 幂等 | 移出白名单 |
Attributes(ctx, roomID, keys...) | *RoomAttributes | GET /chatrooms/{room_id}/attributeschatrooms.attributes | 查询 | 查询聊天室属性 |
SetAttributes(ctx, roomID, attributes) | *RoomAttributesChange | PUT /chatrooms/{room_id}/attributeschatrooms.set_attributes | 幂等 | 设置聊天室属性 |
RemoveAttributes(ctx, roomID, keys) | *RoomAttributesChange | POST /chatrooms/{room_id}/attributes/batch-deletechatrooms.remove_attributes | 幂等 | 删除聊天室属性 |
Bans(ctx, roomID, ListOptions) | *Page[RoomBan] | GET /chatrooms/{room_id}/banschatrooms.bans | 查询 | 查询封禁名单 |
AllBans(ctx, roomID, ListOptions) | iter.Seq2[RoomBan, error] | 同 Bans,自动翻页 | 查询 | 查询封禁名单 |
Ban(ctx, roomID, usernames, RoomPenaltyParams) | *RoomBatchResult | POST /chatrooms/{room_id}/banschatrooms.ban | 幂等 | 封禁用户 |
Unban(ctx, roomID, usernames) | *RoomBatchResult | POST /chatrooms/{room_id}/bans/batch-deletechatrooms.unban | 幂等 | 解除封禁 |
Disable(ctx, roomID, reason) | *ChatroomChange | POST /chatrooms/{room_id}/disablechatrooms.disable | 幂等 | 封禁聊天室 |
Enable(ctx, roomID) | *ChatroomChange | POST /chatrooms/{room_id}/enablechatrooms.enable | 幂等 | 解封聊天室 |
Members(ctx, roomID, ListOptions) | *Page[RoomMember] | GET /chatrooms/{room_id}/memberschatrooms.members | 查询 | 查询聊天室成员列表 |
AllMembers(ctx, roomID, ListOptions) | iter.Seq2[RoomMember, error] | 同 Members,自动翻页 | 查询 | 查询聊天室成员列表 |
Kick(ctx, roomID, usernames) | *RoomBatchResult | POST /chatrooms/{room_id}/members/batch-deletechatrooms.kick | 幂等 | 移出聊天室成员 |
Member(ctx, roomID, username) | *RoomMemberState | GET /chatrooms/{room_id}/members/{username}chatrooms.member | 查询 | 查询用户是否在聊天室里 |
Send(ctx, roomID, SendRoomMessageParams) | *RoomSendResult | POST /chatrooms/{room_id}/messageschatrooms.send | 去重 ID(低优先级时不幂等) | 发送聊天室消息 |
RecentMessages(ctx, roomID, limit) | []RoomMessage | GET /chatrooms/{room_id}/messageschatrooms.recent_messages | 查询 | 查询最近的消息 |
Recall(ctx, roomID, messageID, reason) | *RoomRecallResult | POST /chatrooms/{room_id}/messages/{message_id}/recallchatrooms.recall | 幂等 | 撤回聊天室消息 |
SetMuteAll(ctx, roomID, on) | *ChatroomChange | PUT /chatrooms/{room_id}/mute-allDELETE /chatrooms/{room_id}/mute-allchatrooms.mute_all、chatrooms.unmute_all | 幂等 | 开启全员禁言、关闭全员禁言 |
Mutes(ctx, roomID, ListOptions) | *Page[RoomMute] | GET /chatrooms/{room_id}/muteschatrooms.mutes | 查询 | 查询禁言名单 |
AllMutes(ctx, roomID, ListOptions) | iter.Seq2[RoomMute, error] | 同 Mutes,自动翻页 | 查询 | 查询禁言名单 |
Mute(ctx, roomID, usernames, RoomPenaltyParams) | *RoomBatchResult | POST /chatrooms/{room_id}/muteschatrooms.mute | 幂等 | 禁言用户 |
Unmute(ctx, roomID, usernames) | *RoomBatchResult | POST /chatrooms/{room_id}/mutes/batch-deletechatrooms.unmute | 幂等 | 解除禁言 |
TransferOwner(ctx, roomID, Field[string]) | *ChatroomChange | PUT /chatrooms/{room_id}/ownerchatrooms.transfer_owner | 幂等 | 转让所有者 |
内容安全:client.Moderation
配置、词库、审核记录、违规与举报。ProcessPending 的 handle 为 func(ctx, ModerationItem, ItemContent) (*Decision, error)。
| 方法 | 结果 | 接口 | 类别 | 文档 |
|---|---|---|---|---|
ProcessPending(ctx, ProcessOptions, handle) | int | 遍历待处理的审核记录,读取内容后按 handle 的结论处理,见处理待审核的内容 | 幂等 | 审核记录 |
Config(ctx) | *ModerationConfig | GET /moderation/configmoderation.config | 查询 | 查询审核配置 |
UpdateConfig(ctx, UpdateModerationConfigParams) | *ModerationConfig | PATCH /moderation/configmoderation.update_config | 幂等 | 修改审核配置 |
Items(ctx, ListItemsParams) | *Page[ModerationItem] | GET /moderation/itemsmoderation.items | 查询 | 查询审核记录列表 |
AllItems(ctx, ListItemsParams) | iter.Seq2[ModerationItem, error] | 同 Items,自动翻页 | 查询 | 查询审核记录列表 |
BatchDecide(ctx, BatchDecideParams) | *BatchDecideResult | POST /moderation/items/batch-decidemoderation.batch_decide | 幂等 | 批量作出结论 |
Item(ctx, itemID) | *ModerationItem | GET /moderation/items/{item_id}moderation.item | 查询 | 查询审核记录 |
ItemContent(ctx, itemID) | *ItemContent | GET /moderation/items/{item_id}/contentmoderation.item_content | 查询 | 读取审核记录的内容 |
Decide(ctx, itemID, DecideParams) | *ModerationItem | POST /moderation/items/{item_id}/decidemoderation.decide | 幂等(带处置而没有 Version 时不幂等) | 作出结论 |
Escalate(ctx, itemID, note) | *ModerationItem | POST /moderation/items/{item_id}/escalatemoderation.escalate | 不幂等 | 转交平台 |
PlatformActions(ctx, ListOptions) | *Page[PlatformAction] | GET /moderation/platform-actionsmoderation.platform_actions | 查询 | 查询平台的处置 |
AllPlatformActions(ctx, ListOptions) | iter.Seq2[PlatformAction, error] | 同 PlatformActions,自动翻页 | 查询 | 查询平台的处置 |
Report(ctx, ReportParams) | *ReportResult | POST /moderation/reportsmoderation.report | 幂等 | 代用户举报 |
Stats(ctx, ModerationStatsParams) | *ModerationStats | GET /moderation/statsmoderation.stats | 查询 | 查询统计 |
CheckText(ctx, CheckTextParams) | *TextCheckResult | POST /moderation/text-checkmoderation.check_text | 查询 | 检查文本 |
Violations(ctx, username, ListOptions) | *ViolationsPage | GET /moderation/users/{username}/violationsmoderation.violations | 查询 | 查询用户的违规 |
AllViolations(ctx, username, ListOptions) | iter.Seq2[Violation, error] | 同 Violations,自动翻页 | 查询 | 查询用户的违规 |
ClearViolations(ctx, username, reason) | int | DELETE /moderation/users/{username}/violationsmoderation.clear_violations | 幂等 | 清除用户的违规 |
WordLists(ctx) | []WordList | GET /moderation/word-listsmoderation.word_lists | 查询 | 查询词库列表 |
CreateWordList(ctx, CreateWordListParams) | *WordList | POST /moderation/word-listsmoderation.create_word_list | 不幂等 | 创建词库 |
WordList(ctx, listID) | *WordList | GET /moderation/word-lists/{list_id}moderation.word_list | 查询 | 查询词库 |
UpdateWordList(ctx, listID, UpdateWordListParams) | *WordList | PATCH /moderation/word-lists/{list_id}moderation.update_word_list | 幂等 | 修改词库 |
DeleteWordList(ctx, listID) | — | DELETE /moderation/word-lists/{list_id}moderation.delete_word_list | 幂等 | 删除词库 |
Words(ctx, listID, ListWordsParams) | *Page[Word] | GET /moderation/word-lists/{list_id}/wordsmoderation.words | 查询 | 查询词条 |
AllWords(ctx, listID, ListWordsParams) | iter.Seq2[Word, error] | 同 Words,自动翻页 | 查询 | 查询词条 |
AddWords(ctx, listID, words) | *AddWordsResult | POST /moderation/word-lists/{list_id}/words/batchmoderation.add_words | 幂等 | 添加词条 |
RemoveWords(ctx, listID, words) | int | POST /moderation/word-lists/{list_id}/words/batch-deletemoderation.remove_words | 幂等 | 删除词条 |
音视频通话:client.Calls
查询、结束通话与通话统计。
| 方法 | 结果 | 接口 | 类别 | 文档 |
|---|---|---|---|---|
List(ctx, ListCallsParams) | *Page[Call] | GET /callscalls.list | 查询 | 查询通话列表 |
All(ctx, ListCallsParams) | iter.Seq2[Call, error] | 同 List,自动翻页 | 查询 | 查询通话列表 |
Get(ctx, callID) | *Call | GET /calls/{call_id}calls.get | 查询 | 查询通话详情 |
End(ctx, callID, reason) | *CallChange | POST /calls/{call_id}/endcalls.end | 幂等 | 结束通话 |
RemoveMember(ctx, callID, username, reason) | *CallChange | POST /calls/{call_id}/members/{username}/removecalls.remove_member | 幂等 | 把成员移出通话 |
Stats(ctx, from, to) | []CallDayStats | GET /rtc/statscalls.stats | 查询 | 查询通话统计 |
ActiveOf(ctx, username) | *ActiveCalls | GET /users/{username}/calls/activecalls.active_of | 查询 | 查询用户正在进行的通话 |
在线状态:client.Presence
查询用户的在线状态。
| 方法 | 结果 | 接口 | 类别 | 文档 |
|---|---|---|---|---|
Query(ctx, usernames) | []Presence | POST /presence/querypresence.query | 查询 | 批量查询在线状态 |
Get(ctx, username) | *Presence | GET /users/{username}/presencepresence.get | 查询 | 查询用户的在线状态 |
独立 RTC 频道:client.Channels
服务只管理频道,不替用户加入媒体。参数及响应见频道 REST API。接口地址省略通用应用前缀。
| 方法 | REST 接口 | 参数说明 |
|---|---|---|
Create | PUT /rtc/channels/{channel_id} | RTCChannelCreateParams |
List | GET /rtc/channels | RTCChannelListParams |
Get | GET /rtc/channels/{channel_id} | 路径 ID |
Update | PATCH /rtc/channels/{channel_id} | RTCChannelUpdateParams |
Close | POST /rtc/channels/{channel_id}/close | RTCChannelCloseParams |
IssueTickets | POST /rtc/channels/{channel_id}/tickets | RTCChannelIssueTicketsParams |
RevokeTickets | POST /rtc/channels/{channel_id}/tickets/revoke | RTCChannelRevokeTicketsParams |
Sessions | GET /rtc/channels/{channel_id}/sessions | RTCChannelSessionsParams |
RemoveMember | POST /rtc/channels/{channel_id}/members/{username}/remove | RTCChannelRemoveMemberParams |
Bans | GET /rtc/channels/{channel_id}/bans | RTCChannelBansParams |
GetBan | GET /rtc/channels/{channel_id}/bans/{username} | 路径 ID |
Ban | PUT /rtc/channels/{channel_id}/bans/{username} | RTCChannelBanParams |
Unban | DELETE /rtc/channels/{channel_id}/bans/{username} | RTCChannelUnbanParams |
Stats | GET /rtc/channel-stats | RTCChannelStatsParams |
UsageAdjustments | GET /rtc/channel-usage-adjustments | RTCChannelUsageAdjustmentsParams |
结果保留频道、会话、票据、封禁、统计和更正的具体模型及原始数据。创建包装的 created 来自 201,关闭 / 移出包装的 pending 来自 202;不是 HTTP 响应新增的同名字段。末页 next_cursor、无封禁 ban 及可清除期限保留 null。
这些频道分页返回具体页对象;使用 next_cursor 手动继续,不照搬原 Calls 的 All / iter。expires_at 保留“不传 / null 清除 / 值设置”三态。签票据不自动重试,移出和撤票使用固定 operation_id。
