服務與方法
本頁列出 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(處理中);它們不是響應體中的欄位。最後一頁的 next_cursor、沒有封禁時的 ban、可以清除的到期時間都保留 null。
頻道的列表方法返回一頁資料,用 next_cursor 自己翻頁,沒有通話(Calls)那樣的 All 遍歷方法。expires_at 區分不傳、null(清除)和設值三種狀態。簽發票據不自動重試;移出成員和撤銷票據使用固定的 operation_id。
AI 對話:client.AI
機器人管理和流式回覆的底層介面。回覆一般用 StartStream 開始,它返回的流物件處理合批、持續寫入和重試,見呼叫介面;StreamStopped 在收到 ai.stream_stopped 時停止本程序中的流(回撥處理器會自動呼叫)。
| 方法 | REST 介面 | 介面名 | 文件 |
|---|---|---|---|
CreateBot | POST /ai/bots | ai.create_bot | 建立機器人 |
ListBots / AllBots | GET /ai/bots | ai.list_bots | 查詢機器人列表 |
GetBot | GET /ai/bots/{username} | ai.get_bot | 查詢機器人 |
UpdateBot | PATCH /ai/bots/{username} | ai.update_bot | 修改機器人 |
DisableBot | POST /ai/bots/{username}/disable | ai.disable_bot | 停用與啟用 |
EnableBot | POST /ai/bots/{username}/enable | ai.enable_bot | 停用與啟用 |
DeleteBot | DELETE /ai/bots/{username} | ai.delete_bot | 刪除機器人 |
CreateStream | POST /ai/streams | ai.create_stream | 開始回覆 |
GetStream | GET /ai/streams/{stream_id} | ai.get_stream | 查詢流 |
WriteDeltas | POST /ai/streams/{stream_id}/deltas:batch | ai.write_deltas | 按批寫入 |
FinishStream | POST /ai/streams/{stream_id}/finish | ai.finish_stream | 結束回覆 |
FailStream | POST /ai/streams/{stream_id}/fail | ai.fail_stream | 報告失敗 |
遊戲房間:client.Game
建房、簽發加入票據、開局、結束房間、移出玩家和查詢,用法見呼叫介面。
| 方法 | 結果 | 介面 | 類別 | 文件 |
|---|---|---|---|---|
ListRegions(ctx) | []GameRegion | GET /game/regionsgame.list_regions | 查詢 | 查大區 |
CreateRoom(ctx, roomID, CreateGameRoomParams) | *GameCreateRoomResult | PUT /game/rooms/{room_id}game.create_room | 冪等 | 建立房間 |
IssueTickets(ctx, roomID, IssueGameTicketsParams) | []GameTicket | POST /game/rooms/{room_id}/ticketsgame.issue_tickets | 不冪等 | 簽發加入票據 |
StartRoom(ctx, roomID) | *GameRoom | POST /game/rooms/{room_id}/startgame.start_room | 冪等 | 開局 |
CloseRoom(ctx, roomID, CloseGameRoomParams) | *GameCloseRoomResult | POST /game/rooms/{room_id}/closegame.close_room | 冪等 | 結束房間 |
RemoveMember(ctx, roomID, username, RemoveGameMemberParams) | *GameRemoveMemberResult | POST /game/rooms/{room_id}/members/{username}/removegame.remove_member | 去重 ID(OperationID) | 移出玩家 |
GetRoom(ctx, roomID) | *GameRoom | GET /game/rooms/{room_id}game.get_room | 查詢 | 查詢房間 |
ListRooms(ctx, ListGameRoomsParams) | *Page[GameRoom] | GET /game/roomsgame.list_rooms | 查詢 | 列出房間 |
AllRooms(ctx, ListGameRoomsParams) | iter.Seq2[GameRoom, error] | 同 ListRooms,自動翻頁 | 查詢 | 列出房間 |
ListMembers(ctx, roomID) | []GameMember | GET /game/rooms/{room_id}/membersgame.list_members | 查詢 | 列出成員 |
GameCreateRoomResult.Created、GameCloseRoomResult.Accepted、GameRemoveMemberResult.Removed 由狀態碼得出(201、202 為真),不是響應體中的欄位。RemoveMember 沒有給 OperationID 時 SDK 自動生成,重試時不變。
