服務與方法
本頁列出 Node.js SDK 的全部服務方法、TypeScript 引數與返回型別,以及 REST 介面和自動重試類別。路徑省略 /{org_name}/{app_name},引數與響應欄位的含義見各行 REST 文件連結,通用規則見呼叫介面。
簽名中的 T.X 是主包匯出的型別,可用 import type { X } from '@deeprespond/im-server-sdk' 引入。options 為 CallOptions,迭代器使用 IterOptions;可選引數寫作 ?。方法返回 Promise,遍歷方法返回 AsyncIterable,使用 for await。WithRaw 表示結果同時提供 result[RAW] 的原始響應。
“介面名”用於錯誤的 op、stats、鉤子和 FakeOpenAPI,仍使用 snake_case;方法使用 camelCase。遍歷方法逐頁呼叫列表介面,All 字尾的方法按上限拆批。重試類別見重試與冪等,被限流後的等待重發按限流處理。
使用者 client.users
| 方法與簽名 | REST 介面 | 介面名 | 自動重試 | 文件 |
|---|---|---|---|---|
listMuted(params?: T.ListMutedParams, options?: CallOptions): Promise<Page<T.UserMute>> | GET /mutes | users.list_muted | 查詢 | 查詢被禁言的使用者列表 |
iterMuted(params?: Omit<T.ListMutedParams, 'cursor'>, options?: IterOptions): AsyncIterable<T.UserMute> | 逐頁呼叫 GET /mutes | users.list_muted | 查詢 | 查詢被禁言的使用者列表 |
create(username: string, params?: T.CreateUserParams, options?: CallOptions): Promise<WithRaw<T.User>> | POST /users | users.create | 唯一建立 | 建立使用者 |
list(params?: T.ListUsersParams, options?: CallOptions): Promise<Page<T.User>> | GET /users | users.list | 查詢 | 查詢使用者列表 |
iter(params?: Omit<T.ListUsersParams, 'cursor'>, options?: IterOptions): AsyncIterable<T.User> | 逐頁呼叫 GET /users | users.list | 查詢 | 查詢使用者列表 |
batchCreate(users: readonly T.CreateUserInput[], options?: CallOptions): Promise<WithRaw<T.BatchCreateUsersResult>> | POST /users/batch | users.batch_create | 唯一建立 | 批次建立使用者 |
batchCreateAll( users: Iterable<T.CreateUserInput> | AsyncIterable<T.CreateUserInput>, options?: CallOptions): Promise<WithRaw<T.BatchCreateUsersResult>> | 分批呼叫 POST /users/batch | users.batch_create | 唯一建立 | 批次建立使用者 |
lookup(usernames: readonly string[], options?: CallOptions): Promise<WithRaw<T.User[]>> | POST /users/lookup | users.lookup | 查詢 | 按使用者名稱批次查詢 |
get(username: string, options?: CallOptions): Promise<WithRaw<T.User>> | GET /users/{username} | users.get | 查詢 | 查詢使用者 |
update(username: string, params?: T.UpdateUserParams, options?: CallOptions): Promise<WithRaw<T.User>> | PATCH /users/{username} | users.update | 冪等 | 修改使用者資料 |
delete(username: string, options?: CallOptions): Promise<void> | DELETE /users/{username} | users.delete | 冪等 | 刪除使用者 |
disable(username: string, params?: T.DisableUserParams, options?: CallOptions): Promise<WithRaw<T.User>> | POST /users/{username}/disable | users.disable | 冪等 | 封停用戶 |
enable(username: string, options?: CallOptions): Promise<WithRaw<T.User>> | POST /users/{username}/enable | users.enable | 冪等 | 解封使用者 |
issueLoginTicket(username: string, params?: T.IssueLoginTicketParams, options?: CallOptions): Promise<WithRaw<T.LoginTicket>> | POST /users/{username}/login-tickets | users.issue_login_ticket | 冪等 | 簽發登入憑證 |
listMutes(username: string, options?: CallOptions): Promise<WithRaw<T.UserMute[]>> | GET /users/{username}/mutes | users.mutes | 查詢 | 查詢使用者的禁言 |
mute( username: string, scope: 'chat' | 'group' | 'room' | (string & {}), params?: T.MuteParams, options?: CallOptions): Promise<WithRaw<T.UserMute>> | PUT /users/{username}/mutes/{scope} | users.mute | 冪等 | 設定禁言 |
unmute(username: string, scope: 'chat' | 'group' | 'room' | (string & {}), options?: CallOptions): Promise<void> | DELETE /users/{username}/mutes/{scope} | users.unmute | 冪等 | 解除禁言 |
setPassword(username: string, password: string, options?: CallOptions): Promise<void> | PUT /users/{username}/password | users.set_password | 不重試 | 設定密碼 |
listSessions(username: string, options?: CallOptions): Promise<WithRaw<T.Session[]>> | GET /users/{username}/sessions | users.sessions | 查詢 | 查詢登入裝置 |
kickAll(username: string, options?: CallOptions): Promise<void> | DELETE /users/{username}/sessions | users.kick_all | 不重試 | 踢掉全部裝置 |
kick(username: string, sessionId: string, options?: CallOptions): Promise<void> | DELETE /users/{username}/sessions/{session_id} | users.kick | 冪等 | 踢掉單臺裝置 |
好友 client.friends
| 方法與簽名 | REST 介面 | 介面名 | 自動重試 | 文件 |
|---|---|---|---|---|
listRequests(username: string, params: T.ListFriendRequestsParams, options?: CallOptions): Promise<Page<T.FriendRequest>> | GET /users/{username}/friend-requests | friends.requests | 查詢 | 查詢好友申請 |
iterRequests( username: string, params: Omit<T.ListFriendRequestsParams, 'cursor'>, options?: IterOptions): AsyncIterable<T.FriendRequest> | 逐頁呼叫 GET /users/{username}/friend-requests | friends.requests | 查詢 | 查詢好友申請 |
getSettings(username: string, options?: CallOptions): Promise<WithRaw<T.FriendSettings>> | GET /users/{username}/friend-settings | friends.settings | 查詢 | 查詢加好友方式 |
setSettings( username: string, friendAddMode: 'need_confirm' | 'allow_any' | 'deny_any' | (string & {}) | null, options?: CallOptions): Promise<WithRaw<T.FriendSettings>> | PUT /users/{username}/friend-settings | friends.set_settings | 冪等 | 設定加好友方式 |
list(username: string, params?: T.ListFriendsParams, options?: CallOptions): Promise<VersionedPage<T.Friend>> | GET /users/{username}/friends | friends.list | 查詢 | 查詢好友列表 |
iter(username: string, params?: Omit<T.ListFriendsParams, 'cursor' | 'known_version'>, options?: IterOptions): AsyncIterable<T.Friend> | 逐頁呼叫 GET /users/{username}/friends | friends.list | 查詢 | 查詢好友列表 |
deleteAll(username: string, options?: CallOptions): Promise<number> | DELETE /users/{username}/friends | friends.delete_all | 冪等 | 刪除全部好友 |
batchAdd(username: string, friends: readonly T.AddFriendItem[], options?: CallOptions): Promise<WithRaw<T.BatchAddFriendsResult>> | POST /users/{username}/friends/batch | friends.batch_add | 冪等 | 批次新增好友 |
batchAddAll( username: string, friends: Iterable<T.AddFriendItem> | AsyncIterable<T.AddFriendItem>, options?: CallOptions): Promise<WithRaw<T.BatchAddFriendsResult>> | 分批呼叫 POST /users/{username}/friends/batch | friends.batch_add | 冪等 | 批次新增好友 |
batchDelete(username: string, usernames: readonly string[], options?: CallOptions): Promise<WithRaw<T.BatchDeleteFriendsResult>> | POST /users/{username}/friends/batch-delete | friends.batch_delete | 冪等 | 批次刪除好友 |
check(username: string, usernames: readonly string[], options?: CallOptions): Promise<WithRaw<T.FriendCheck[]>> | POST /users/{username}/friends/check | friends.check | 查詢 | 檢查好友關係 |
get(username: string, friend: string, options?: CallOptions): Promise<WithRaw<T.Friend>> | GET /users/{username}/friends/{friend} | friends.get | 查詢 | 查詢單個好友 |
add(username: string, friend: string, params?: T.AddFriendParams, options?: CallOptions): Promise<WithRaw<T.FriendChange>> | PUT /users/{username}/friends/{friend} | friends.add | 冪等 | 新增好友 |
update(username: string, friend: string, params?: T.UpdateFriendParams, options?: CallOptions): Promise<WithRaw<T.FriendChange>> | PATCH /users/{username}/friends/{friend} | friends.update | 冪等 | 修改好友備註和自定義屬性 |
delete(username: string, friend: string, options?: CallOptions): Promise<WithRaw<T.FriendChange>> | DELETE /users/{username}/friends/{friend} | friends.delete | 冪等 | 刪除好友 |
黑名單 client.blacklist
| 方法與簽名 | REST 介面 | 介面名 | 自動重試 | 文件 |
|---|---|---|---|---|
list(username: string, params?: T.ListBlacklistParams, options?: CallOptions): Promise<VersionedPage<T.BlacklistEntry>> | GET /users/{username}/blacklist | blacklist.list | 查詢 | 查詢黑名單 |
iter( username: string, params?: Omit<T.ListBlacklistParams, 'cursor' | 'known_version'>, options?: IterOptions): AsyncIterable<T.BlacklistEntry> | 逐頁呼叫 GET /users/{username}/blacklist | blacklist.list | 查詢 | 查詢黑名單 |
batchAdd(username: string, usernames: readonly string[], options?: CallOptions): Promise<WithRaw<T.BatchBlacklistResult>> | POST /users/{username}/blacklist/batch | blacklist.batch_add | 冪等 | 批次拉黑 |
batchRemove(username: string, usernames: readonly string[], options?: CallOptions): Promise<WithRaw<T.BatchBlacklistResult>> | POST /users/{username}/blacklist/batch-delete | blacklist.batch_remove | 冪等 | 批次移出黑名單 |
add(username: string, target: string, options?: CallOptions): Promise<WithRaw<T.BlacklistChange>> | PUT /users/{username}/blacklist/{target} | blacklist.add | 冪等 | 拉黑使用者 |
remove(username: string, target: string, options?: CallOptions): Promise<WithRaw<T.BlacklistChange>> | DELETE /users/{username}/blacklist/{target} | blacklist.remove | 冪等 | 移出黑名單 |
群組 client.groups
| 方法與簽名 | REST 介面 | 介面名 | 自動重試 | 文件 |
|---|---|---|---|---|
create(owner: string, params?: T.CreateGroupParams, options?: CallOptions): Promise<WithRaw<T.CreateGroupResult>> | POST /groups | groups.create | 不重試 | 建立群 |
list(params?: T.ListGroupsParams, options?: CallOptions): Promise<Page<T.Group>> | GET /groups | groups.list | 查詢 | 查詢群列表 |
iter(params?: Omit<T.ListGroupsParams, 'cursor'>, options?: IterOptions): AsyncIterable<T.Group> | 逐頁呼叫 GET /groups | groups.list | 查詢 | 查詢群列表 |
get(groupId: string, options?: CallOptions): Promise<WithRaw<T.Group>> | GET /groups/{group_id} | groups.get | 查詢 | 查詢群資訊 |
update(groupId: string, params?: T.UpdateGroupParams, options?: CallOptions): Promise<WithRaw<T.GroupChange>> | PATCH /groups/{group_id} | groups.update | 冪等 | 修改群資料和設定 |
delete(groupId: string, params?: T.GroupsDeleteParams, options?: CallOptions): Promise<void> | DELETE /groups/{group_id} | groups.delete | 冪等 | 解散群 |
listBlacklist(groupId: string, params?: T.ListOptions, options?: CallOptions): Promise<Page<T.GroupBlacklistEntry>> | GET /groups/{group_id}/blacklist | groups.blacklist | 查詢 | 查詢群黑名單 |
iterBlacklist(groupId: string, params?: Omit<T.ListOptions, 'cursor'>, options?: IterOptions): AsyncIterable<T.GroupBlacklistEntry> | 逐頁呼叫 GET /groups/{group_id}/blacklist | groups.blacklist | 查詢 | 查詢群黑名單 |
addToBlacklist( groupId: string, username: string, params?: T.GroupsAddToBlacklistParams, options?: CallOptions): Promise<WithRaw<T.GroupBlacklistChange>> | PUT /groups/{group_id}/blacklist/{username} | groups.add_to_blacklist | 冪等 | 將使用者加入群黑名單 |
removeFromBlacklist(groupId: string, username: string, options?: CallOptions): Promise<WithRaw<T.GroupBlacklistChange>> | DELETE /groups/{group_id}/blacklist/{username} | groups.remove_from_blacklist | 冪等 | 將使用者移出群黑名單 |
disable(groupId: string, params?: T.GroupsDisableParams, options?: CallOptions): Promise<WithRaw<T.GroupChange>> | POST /groups/{group_id}/disable | groups.disable | 冪等 | 封禁群 |
enable(groupId: string, options?: CallOptions): Promise<WithRaw<T.GroupChange>> | POST /groups/{group_id}/enable | groups.enable | 冪等 | 解封群 |
listMembers(groupId: string, params?: T.ListMembersParams, options?: CallOptions): Promise<VersionedPage<T.GroupMember>> | GET /groups/{group_id}/members | groups.members | 查詢 | 查詢群成員列表 |
iterMembers( groupId: string, params?: Omit<T.ListMembersParams, 'cursor' | 'known_version'>, options?: IterOptions): AsyncIterable<T.GroupMember> | 逐頁呼叫 GET /groups/{group_id}/members | groups.members | 查詢 | 查詢群成員列表 |
addMembers(groupId: string, usernames: readonly string[], options?: CallOptions): Promise<WithRaw<T.GroupMembersResult>> | POST /groups/{group_id}/members/batch | groups.add_members | 冪等 | 批次新增群成員 |
removeMembers(groupId: string, usernames: readonly string[], options?: CallOptions): Promise<WithRaw<T.GroupMembersResult>> | POST /groups/{group_id}/members/batch-delete | groups.remove_members | 冪等 | 批次移出群成員 |
getMember(groupId: string, username: string, options?: CallOptions): Promise<WithRaw<T.GroupMember>> | GET /groups/{group_id}/members/{username} | groups.member | 查詢 | 查詢群成員 |
updateMember( groupId: string, username: string, params?: T.UpdateMemberParams, options?: CallOptions): Promise<WithRaw<T.GroupMemberChange>> | PATCH /groups/{group_id}/members/{username} | groups.update_member | 冪等 | 修改群成員資料 |
muteMember( groupId: string, username: string, params?: T.GroupsMuteMemberParams, options?: CallOptions): Promise<WithRaw<T.GroupMemberChange>> | PUT /groups/{group_id}/members/{username}/mute | groups.mute_member | 冪等 | 禁言群成員 |
unmuteMember(groupId: string, username: string, options?: CallOptions): Promise<WithRaw<T.GroupMemberChange>> | DELETE /groups/{group_id}/members/{username}/mute | groups.unmute_member | 冪等 | 解除群成員禁言 |
setRole( groupId: string, username: string, role: 'admin' | 'member' | (string & {}), options?: CallOptions): Promise<WithRaw<T.GroupMemberChange>> | PUT /groups/{group_id}/members/{username}/role | groups.set_role | 冪等 | 設定群成員角色 |
setMuteAll(groupId: string, on: boolean, options?: CallOptions): Promise<WithRaw<T.GroupChange>> | PUT /groups/{group_id}/mute-all(on=true)DELETE /groups/{group_id}/mute-all(on=false) | groups.mute_allgroups.unmute_all | 冪等 | 開啟全員禁言 關閉全員禁言 |
transferOwner(groupId: string, username: string, options?: CallOptions): Promise<WithRaw<T.GroupChange>> | PUT /groups/{group_id}/owner | groups.transfer_owner | 冪等 | 轉讓群主 |
listRequests(groupId: string, params?: T.ListGroupRequestsParams, options?: CallOptions): Promise<Page<T.GroupRequest>> | GET /groups/{group_id}/requests | groups.requests | 查詢 | 查詢入群申請和邀請 |
iterRequests(groupId: string, params?: Omit<T.ListGroupRequestsParams, 'cursor'>, options?: IterOptions): AsyncIterable<T.GroupRequest> | 逐頁呼叫 GET /groups/{group_id}/requests | groups.requests | 查詢 | 查詢入群申請和邀請 |
getInviteSettings(username: string, options?: CallOptions): Promise<WithRaw<T.GroupInviteSettings>> | GET /users/{username}/group-settings | groups.invite_settings | 查詢 | 查詢使用者的入群設定 |
setInviteSettings( username: string, inviteMode: 'allow_any' | 'need_confirm' | (string & {}) | null, options?: CallOptions): Promise<WithRaw<T.GroupInviteSettings>> | PUT /users/{username}/group-settings | groups.set_invite_settings | 冪等 | 修改使用者的入群設定 |
listOfUser(username: string, params?: T.ListOptions, options?: CallOptions): Promise<Page<T.UserGroup>> | GET /users/{username}/groups | groups.of_user | 查詢 | 查詢使用者加入的群 |
iterOfUser(username: string, params?: Omit<T.ListOptions, 'cursor'>, options?: IterOptions): AsyncIterable<T.UserGroup> | 逐頁呼叫 GET /users/{username}/groups | groups.of_user | 查詢 | 查詢使用者加入的群 |
訊息 client.messages
| 方法與簽名 | REST 介面 | 介面名 | 自動重試 | 文件 |
|---|---|---|---|---|
send(params: T.SendMessageParams, options?: CallOptions): Promise<WithRaw<T.SendResult>> | POST /messages | messages.send | 冪等鍵;online_only: true 時不重試 | 傳送單條訊息 |
export(params?: T.ExportParams, options?: CallOptions): Promise<ExportPage<T.Message>> | GET /messages | messages.export | 查詢 | 匯出應用的訊息 |
iterExport(params?: T.ExportParams, options?: IterOptions): AsyncIterable<T.Message> | 逐頁呼叫 GET /messages | messages.export | 查詢 | 匯出應用的訊息 |
batchSend(toUsers: readonly string[], params: T.BatchSendParams, options?: CallOptions): Promise<WithRaw<T.BatchSendResult>> | POST /messages/batch | messages.batch_send | 冪等鍵 | 批次傳送訊息 |
batchSendAll( toUsers: Iterable<string> | AsyncIterable<string>, params: T.BatchSendParams, options?: CallOptions): Promise<WithRaw<T.BatchSendResult>> | 分批呼叫 POST /messages/batch | messages.batch_send | 冪等鍵 | 批次傳送訊息 |
batchRecall( messageIds: readonly string[], params?: T.MessagesBatchRecallParams, options?: CallOptions): Promise<WithRaw<T.BatchRecallResult>> | POST /messages/batch-recall | messages.batch_recall | 冪等 | 批次撤回訊息 |
get(messageId: string, options?: CallOptions): Promise<WithRaw<T.Message>> | GET /messages/{message_id} | messages.get | 查詢 | 查詢單條訊息 |
edit(messageId: string, params?: T.EditMessageParams, options?: CallOptions): Promise<WithRaw<T.MessageChange>> | PATCH /messages/{message_id} | messages.edit | 冪等 | 編輯訊息 |
pin(messageId: string, params?: T.MessagesPinParams, options?: CallOptions): Promise<WithRaw<T.MessageChange>> | PUT /messages/{message_id}/pin | messages.pin | 冪等 | 置頂訊息 |
unpin(messageId: string, params?: T.MessagesUnpinParams, options?: CallOptions): Promise<WithRaw<T.MessageChange>> | DELETE /messages/{message_id}/pin | messages.unpin | 冪等 | 取消置頂訊息 |
recall(messageId: string, params?: T.MessagesRecallParams, options?: CallOptions): Promise<WithRaw<T.MessageChange>> | POST /messages/{message_id}/recall | messages.recall | 冪等 | 撤回訊息 |
listSentBy(username: string, params?: T.SentByParams, options?: CallOptions): Promise<Page<T.Message>> | GET /users/{username}/sent-messages | messages.sent_by | 查詢 | 查詢使用者發出的訊息 |
iterSentBy(username: string, params?: Omit<T.SentByParams, 'cursor'>, options?: IterOptions): AsyncIterable<T.Message> | 逐頁呼叫 GET /users/{username}/sent-messages | messages.sent_by | 查詢 | 查詢使用者發出的訊息 |
會話 client.conversations
| 方法與簽名 | REST 介面 | 介面名 | 自動重試 | 文件 |
|---|---|---|---|---|
get(conversationId: string, options?: CallOptions): Promise<WithRaw<T.ConversationInfo>> | GET /conversations/{conversation_id} | conversations.get | 查詢 | 查詢會話資訊 |
listMessages(conversationId: string, params?: T.SeqParams, options?: CallOptions): Promise<SeqPage<T.Message>> | GET /conversations/{conversation_id}/messages | conversations.messages | 查詢 | 拉取會話的歷史訊息 |
iterMessages(conversationId: string, params?: T.SeqParams, options?: IterOptions): AsyncIterable<T.Message> | 逐頁呼叫 GET /conversations/{conversation_id}/messages | conversations.messages | 查詢 | 拉取會話的歷史訊息 |
listPins(conversationId: string, params?: T.ConversationsListPinsParams, options?: CallOptions): Promise<Page<T.Message>> | GET /conversations/{conversation_id}/pins | conversations.pins | 查詢 | 查詢會話中的置頂訊息 |
iterPins(conversationId: string, options?: IterOptions): AsyncIterable<T.Message> | 逐頁呼叫 GET /conversations/{conversation_id}/pins | conversations.pins | 查詢 | 查詢會話中的置頂訊息 |
getSingle(username: string, peer: string, options?: CallOptions): Promise<WithRaw<T.ConversationInfo>> | GET /single-conversations/{username}/{peer} | conversations.single | 查詢 | 查詢兩個使用者之間的單聊會話 |
listOfUser(username: string, params?: T.ListOptions, options?: CallOptions): Promise<Page<T.ConversationState>> | GET /users/{username}/conversations | conversations.of_user | 查詢 | 查詢使用者的會話列表 |
iterOfUser(username: string, params?: Omit<T.ListOptions, 'cursor'>, options?: IterOptions): AsyncIterable<T.ConversationState> | 逐頁呼叫 GET /users/{username}/conversations | conversations.of_user | 查詢 | 查詢使用者的會話列表 |
markAllRead(username: string, options?: CallOptions): Promise<WithRaw<T.MarkAllReadResult>> | POST /users/{username}/conversations/read-all | conversations.mark_all_read | 冪等 | 全部標記已讀 |
getStateOfUser(username: string, conversationId: string, options?: CallOptions): Promise<WithRaw<T.ConversationState>> | GET /users/{username}/conversations/{conversation_id} | conversations.state_of_user | 查詢 | 查詢使用者的單個會話 |
delete( username: string, conversationId: string, params?: T.ConversationsDeleteParams, options?: CallOptions): Promise<WithRaw<T.ConversationStateChange>> | DELETE /users/{username}/conversations/{conversation_id} | conversations.delete | 冪等 | 刪除會話 |
clear(username: string, conversationId: string, options?: CallOptions): Promise<WithRaw<T.ConversationStateChange>> | POST /users/{username}/conversations/{conversation_id}/clear | conversations.clear | 冪等 | 清空聊天記錄 |
deleteMessages( username: string, conversationId: string, seqs: readonly number[], options?: CallOptions): Promise<WithRaw<T.DeleteMessagesResult>> | POST /users/{username}/conversations/{conversation_id}/messages/delete | conversations.delete_messages | 冪等 | 刪除訊息 |
markRead( username: string, conversationId: string, params?: T.ConversationsMarkReadParams, options?: CallOptions): Promise<WithRaw<T.ConversationStateChange>> | POST /users/{username}/conversations/{conversation_id}/read | conversations.mark_read | 冪等 | 標記會話已讀 |
unreadCount(username: string, options?: CallOptions): Promise<WithRaw<T.UnreadCount>> | GET /users/{username}/unread-count | conversations.unread_count | 查詢 | 查詢使用者的未讀總數 |
檔案 client.media
| 方法與簽名 | REST 介面 | 介面名 | 自動重試 | 文件 |
|---|---|---|---|---|
upload(source: UploadSource, params: UploadParams, options?: CallOptions): Promise<MediaFile> | POST /media/uploads、上傳內容、POST /media/uploads/{file_id}/complete | media.create_upload 等 | 見上傳檔案 | 檔案上傳 |
resumeUpload(fileId: string, source: UploadSource, params?: ResumeParams, options?: CallOptions): Promise<MediaFile> | GET /media/uploads/{file_id}/parts、補傳分片、POST /media/uploads/{file_id}/complete | media.uploaded_parts 等 | 冪等 | 檔案上傳 |
download(url: string, dest: DownloadTarget, options?: CallOptions): Promise<number> | POST /media/download-urls,再從下載地址讀取 | media.download_urls | 查詢 | 換取下載地址 |
getDownloadUrls(urls: readonly string[], options?: CallOptions): Promise<WithRaw<T.DownloadURLItem[]>> | POST /media/download-urls | media.download_urls | 查詢 | 換取下載地址 |
getFile(fileId: string, options?: CallOptions): Promise<WithRaw<T.MediaFile>> | GET /media/files/{file_id} | media.file | 查詢 | 查詢檔案 |
deleteFile(fileId: string, options?: CallOptions): Promise<void> | DELETE /media/files/{file_id} | media.delete_file | 冪等 | 刪除檔案 |
listGroupFiles(groupId: string, params?: T.ListOptions, options?: CallOptions): Promise<T.GroupFilesPage> | GET /media/groups/{group_id}/files | media.group_files | 查詢 | 查詢群檔案列表 |
iterGroupFiles(groupId: string, params?: Omit<T.ListOptions, 'cursor'>, options?: IterOptions): AsyncIterable<T.MediaFile> | 逐頁呼叫 GET /media/groups/{group_id}/files | media.group_files | 查詢 | 查詢群檔案列表 |
createUpload(params: T.CreateUploadParams, options?: CallOptions): Promise<WithRaw<T.UploadSession>> | POST /media/uploads | media.create_upload | 不重試 | 建立上傳 |
cancelUpload(fileId: string, options?: CallOptions): Promise<void> | DELETE /media/uploads/{file_id} | media.cancel_upload | 冪等 | 取消上傳 |
completeUpload(fileId: string, options?: CallOptions): Promise<WithRaw<T.MediaFile>> | POST /media/uploads/{file_id}/complete | media.complete_upload | 冪等 | 完成上傳 |
getPartUrls(fileId: string, partNumbers: readonly number[], options?: CallOptions): Promise<WithRaw<T.PartURL[]>> | POST /media/uploads/{file_id}/parts | media.part_urls | 查詢 | 索取分片上傳地址 |
listUploadedParts(fileId: string, options?: CallOptions): Promise<WithRaw<T.UploadedPart[]>> | GET /media/uploads/{file_id}/parts | media.uploaded_parts | 查詢 | 查詢已上傳的分片 |
usage(options?: CallOptions): Promise<WithRaw<T.MediaUsage>> | GET /media/usage | media.usage | 查詢 | 查詢儲存用量 |
推送設定 client.push
| 方法與簽名 | REST 介面 | 介面名 | 自動重試 | 文件 |
|---|---|---|---|---|
listDevices(username: string, options?: CallOptions): Promise<WithRaw<T.PushDevice[]>> | GET /users/{username}/push-devices | push.devices | 查詢 | 查詢推送裝置 |
unbindDevice(username: string, sessionId: string, options?: CallOptions): Promise<void> | DELETE /users/{username}/push-devices/{session_id} | push.unbind_device | 冪等 | 解綁推送裝置 |
getSettings(username: string, options?: CallOptions): Promise<WithRaw<T.PushSettings>> | GET /users/{username}/push-settings | push.settings | 查詢 | 查詢推送設定 |
updateSettings(username: string, params?: T.UpdatePushSettingsParams, options?: CallOptions): Promise<WithRaw<T.PushSettingsChange>> | PATCH /users/{username}/push-settings | push.update_settings | 冪等 | 修改推送設定 |
listMutes(username: string, params?: T.ListPushMutesParams, options?: CallOptions): Promise<VersionedPage<T.ConversationMute>> | GET /users/{username}/push-settings/conversations | push.mutes | 查詢 | 查詢會話免打擾 |
iterMutes( username: string, params?: Omit<T.ListPushMutesParams, 'cursor' | 'known_version'>, options?: IterOptions): AsyncIterable<T.ConversationMute> | 逐頁呼叫 GET /users/{username}/push-settings/conversations | push.mutes | 查詢 | 查詢會話免打擾 |
muteGroup( username: string, groupId: string, mode: 'none' | 'mention_only' | (string & {}), params?: T.MuteConversationParams, options?: CallOptions): Promise<WithRaw<T.ConversationMuteChange>> | PUT /users/{username}/push-settings/conversations/group/{group_id} | push.mute_group | 冪等 | 設定會話免打擾 |
unmuteGroup(username: string, groupId: string, options?: CallOptions): Promise<WithRaw<T.ConversationUnmuteChange>> | DELETE /users/{username}/push-settings/conversations/group/{group_id} | push.unmute_group | 冪等 | 取消會話免打擾 |
muteSingle( username: string, peer: string, mode: 'none' | (string & {}), params?: T.MuteConversationParams, options?: CallOptions): Promise<WithRaw<T.ConversationMuteChange>> | PUT /users/{username}/push-settings/conversations/single/{peer} | push.mute_single | 冪等 | 設定會話免打擾 |
unmuteSingle(username: string, peer: string, options?: CallOptions): Promise<WithRaw<T.ConversationUnmuteChange>> | DELETE /users/{username}/push-settings/conversations/single/{peer} | push.unmute_single | 冪等 | 取消會話免打擾 |
聊天室 client.chatrooms
| 方法與簽名 | REST 介面 | 介面名 | 自動重試 | 文件 |
|---|---|---|---|---|
create(name: string, params?: T.CreateChatroomParams, options?: CallOptions): Promise<WithRaw<T.Chatroom>> | POST /chatrooms | chatrooms.create | 不重試 | 建立聊天室 |
list(params?: T.ListChatroomsParams, options?: CallOptions): Promise<Page<T.Chatroom>> | GET /chatrooms | chatrooms.list | 查詢 | 查詢聊天室列表 |
iter(params?: Omit<T.ListChatroomsParams, 'cursor'>, options?: IterOptions): AsyncIterable<T.Chatroom> | 逐頁呼叫 GET /chatrooms | chatrooms.list | 查詢 | 查詢聊天室列表 |
onlineCounts(roomIds: readonly string[], options?: CallOptions): Promise<WithRaw<T.RoomOnlineCount[]>> | POST /chatrooms/online-counts | chatrooms.online_counts | 查詢 | 批次查詢線上人數 |
get(roomId: string, options?: CallOptions): Promise<WithRaw<T.Chatroom>> | GET /chatrooms/{room_id} | chatrooms.get | 查詢 | 查詢聊天室資訊 |
update(roomId: string, params?: T.UpdateChatroomParams, options?: CallOptions): Promise<WithRaw<T.ChatroomChange>> | PATCH /chatrooms/{room_id} | chatrooms.update | 冪等 | 修改聊天室資料 |
delete(roomId: string, options?: CallOptions): Promise<void> | DELETE /chatrooms/{room_id} | chatrooms.delete | 冪等 | 解散聊天室 |
setAdmin(roomId: string, username: string, options?: CallOptions): Promise<WithRaw<T.RoomAdminChange>> | PUT /chatrooms/{room_id}/admins/{username} | chatrooms.set_admin | 冪等 | 設定管理員 |
removeAdmin(roomId: string, username: string, options?: CallOptions): Promise<WithRaw<T.RoomAdminChange>> | DELETE /chatrooms/{room_id}/admins/{username} | chatrooms.remove_admin | 冪等 | 取消管理員 |
listAllowlist(roomId: string, params?: T.ListOptions, options?: CallOptions): Promise<Page<T.RoomAllowlistEntry>> | GET /chatrooms/{room_id}/allowlist | chatrooms.allowlist | 查詢 | 查詢白名單 |
iterAllowlist(roomId: string, params?: Omit<T.ListOptions, 'cursor'>, options?: IterOptions): AsyncIterable<T.RoomAllowlistEntry> | 逐頁呼叫 GET /chatrooms/{room_id}/allowlist | chatrooms.allowlist | 查詢 | 查詢白名單 |
addToAllowlist(roomId: string, usernames: readonly string[], options?: CallOptions): Promise<WithRaw<T.RoomBatchResult>> | POST /chatrooms/{room_id}/allowlist | chatrooms.add_to_allowlist | 冪等 | 加入白名單 |
removeFromAllowlist(roomId: string, usernames: readonly string[], options?: CallOptions): Promise<WithRaw<T.RoomBatchResult>> | POST /chatrooms/{room_id}/allowlist/batch-delete | chatrooms.remove_from_allowlist | 冪等 | 移出白名單 |
getAttributes(roomId: string, params?: T.ChatroomsGetAttributesParams, options?: CallOptions): Promise<WithRaw<T.RoomAttributes>> | GET /chatrooms/{room_id}/attributes | chatrooms.attributes | 查詢 | 查詢聊天室屬性 |
setAttributes( roomId: string, attributes: Readonly<Record<string, string>>, options?: CallOptions): Promise<WithRaw<T.RoomAttributesChange>> | PUT /chatrooms/{room_id}/attributes | chatrooms.set_attributes | 冪等 | 設定聊天室屬性 |
removeAttributes(roomId: string, keys: readonly string[], options?: CallOptions): Promise<WithRaw<T.RoomAttributesChange>> | POST /chatrooms/{room_id}/attributes/batch-delete | chatrooms.remove_attributes | 冪等 | 刪除聊天室屬性 |
listBans(roomId: string, params?: T.ListOptions, options?: CallOptions): Promise<Page<T.RoomBan>> | GET /chatrooms/{room_id}/bans | chatrooms.bans | 查詢 | 查詢封禁名單 |
iterBans(roomId: string, params?: Omit<T.ListOptions, 'cursor'>, options?: IterOptions): AsyncIterable<T.RoomBan> | 逐頁呼叫 GET /chatrooms/{room_id}/bans | chatrooms.bans | 查詢 | 查詢封禁名單 |
ban( roomId: string, usernames: readonly string[], params?: T.RoomPenaltyParams, options?: CallOptions): Promise<WithRaw<T.RoomBatchResult>> | POST /chatrooms/{room_id}/bans | chatrooms.ban | 冪等 | 封停用戶 |
unban(roomId: string, usernames: readonly string[], options?: CallOptions): Promise<WithRaw<T.RoomBatchResult>> | POST /chatrooms/{room_id}/bans/batch-delete | chatrooms.unban | 冪等 | 解除封禁 |
disable(roomId: string, params?: T.ChatroomsDisableParams, options?: CallOptions): Promise<WithRaw<T.ChatroomChange>> | POST /chatrooms/{room_id}/disable | chatrooms.disable | 冪等 | 封禁聊天室 |
enable(roomId: string, options?: CallOptions): Promise<WithRaw<T.ChatroomChange>> | POST /chatrooms/{room_id}/enable | chatrooms.enable | 冪等 | 解封聊天室 |
listMembers(roomId: string, params?: T.ListOptions, options?: CallOptions): Promise<Page<T.RoomMember>> | GET /chatrooms/{room_id}/members | chatrooms.members | 查詢 | 查詢聊天室成員列表 |
iterMembers(roomId: string, params?: Omit<T.ListOptions, 'cursor'>, options?: IterOptions): AsyncIterable<T.RoomMember> | 逐頁呼叫 GET /chatrooms/{room_id}/members | chatrooms.members | 查詢 | 查詢聊天室成員列表 |
kick(roomId: string, usernames: readonly string[], options?: CallOptions): Promise<WithRaw<T.RoomBatchResult>> | POST /chatrooms/{room_id}/members/batch-delete | chatrooms.kick | 冪等 | 移出聊天室成員 |
getMember(roomId: string, username: string, options?: CallOptions): Promise<WithRaw<T.RoomMemberState>> | GET /chatrooms/{room_id}/members/{username} | chatrooms.member | 查詢 | 查詢使用者是否在聊天室裡 |
send(roomId: string, params: T.SendRoomMessageParams, options?: CallOptions): Promise<WithRaw<T.RoomSendResult>> | POST /chatrooms/{room_id}/messages | chatrooms.send | 冪等鍵;priority: 'low' 時不重試 | 傳送聊天室訊息 |
listRecentMessages( roomId: string, params?: T.ChatroomsListRecentMessagesParams, options?: CallOptions): Promise<WithRaw<T.RoomMessage[]>> | GET /chatrooms/{room_id}/messages | chatrooms.recent_messages | 查詢 | 查詢最近的訊息 |
recall(roomId: string, messageId: string, params?: T.ChatroomsRecallParams, options?: CallOptions): Promise<WithRaw<T.RoomRecallResult>> | POST /chatrooms/{room_id}/messages/{message_id}/recall | chatrooms.recall | 冪等 | 撤回聊天室訊息 |
setMuteAll(roomId: string, on: boolean, options?: CallOptions): Promise<WithRaw<T.ChatroomChange>> | PUT /chatrooms/{room_id}/mute-all(on=true)DELETE /chatrooms/{room_id}/mute-all(on=false) | chatrooms.mute_allchatrooms.unmute_all | 冪等 | 開啟全員禁言 關閉全員禁言 |
listMutes(roomId: string, params?: T.ListOptions, options?: CallOptions): Promise<Page<T.RoomMute>> | GET /chatrooms/{room_id}/mutes | chatrooms.mutes | 查詢 | 查詢禁言名單 |
iterMutes(roomId: string, params?: Omit<T.ListOptions, 'cursor'>, options?: IterOptions): AsyncIterable<T.RoomMute> | 逐頁呼叫 GET /chatrooms/{room_id}/mutes | chatrooms.mutes | 查詢 | 查詢禁言名單 |
mute( roomId: string, usernames: readonly string[], params?: T.RoomPenaltyParams, options?: CallOptions): Promise<WithRaw<T.RoomBatchResult>> | POST /chatrooms/{room_id}/mutes | chatrooms.mute | 冪等 | 禁言使用者 |
unmute(roomId: string, usernames: readonly string[], options?: CallOptions): Promise<WithRaw<T.RoomBatchResult>> | POST /chatrooms/{room_id}/mutes/batch-delete | chatrooms.unmute | 冪等 | 解除禁言 |
transferOwner(roomId: string, username: string | null, options?: CallOptions): Promise<WithRaw<T.ChatroomChange>> | PUT /chatrooms/{room_id}/owner | chatrooms.transfer_owner | 冪等 | 轉讓所有者 |
內容安全 client.moderation
| 方法與簽名 | REST 介面 | 介面名 | 自動重試 | 文件 |
|---|---|---|---|---|
processPending(handle: PendingHandler, params?: ProcessPendingParams, options?: CallOptions): Promise<number> | GET /moderation/items、GET /moderation/items/{item_id}/content、POST /moderation/items/{item_id}/decide | moderation.items 等 | 帶 version 作出結論,可以重試 | 稽核記錄 |
getConfig(options?: CallOptions): Promise<WithRaw<T.ModerationConfig>> | GET /moderation/config | moderation.config | 查詢 | 查詢稽核配置 |
updateConfig(params?: T.UpdateModerationConfigParams, options?: CallOptions): Promise<WithRaw<T.ModerationConfig>> | PATCH /moderation/config | moderation.update_config | 冪等 | 修改稽核配置 |
listItems(params?: T.ListItemsParams, options?: CallOptions): Promise<Page<T.ModerationItem>> | GET /moderation/items | moderation.items | 查詢 | 查詢稽核記錄列表 |
iterItems(params?: Omit<T.ListItemsParams, 'cursor'>, options?: IterOptions): AsyncIterable<T.ModerationItem> | 逐頁呼叫 GET /moderation/items | moderation.items | 查詢 | 查詢稽核記錄列表 |
batchDecide(itemIds: readonly string[], params: T.BatchDecideParams, options?: CallOptions): Promise<WithRaw<T.BatchDecideResult>> | POST /moderation/items/batch-decide | moderation.batch_decide | 冪等 | 批次作出結論 |
getItem(itemId: string, options?: CallOptions): Promise<WithRaw<T.ModerationItem>> | GET /moderation/items/{item_id} | moderation.item | 查詢 | 查詢稽核記錄 |
getItemContent(itemId: string, options?: CallOptions): Promise<WithRaw<T.ItemContent>> | GET /moderation/items/{item_id}/content | moderation.item_content | 查詢 | 讀取稽核記錄的內容 |
decide(itemId: string, params: T.DecideParams, options?: CallOptions): Promise<WithRaw<T.ModerationItem>> | POST /moderation/items/{item_id}/decide | moderation.decide | 冪等;帶 actions 不帶 version 時不重試 | 作出結論 |
escalate(itemId: string, params?: T.ModerationEscalateParams, options?: CallOptions): Promise<WithRaw<T.ModerationItem>> | POST /moderation/items/{item_id}/escalate | moderation.escalate | 不重試 | 轉交平臺 |
listPlatformActions(params?: T.ListOptions, options?: CallOptions): Promise<Page<T.PlatformAction>> | GET /moderation/platform-actions | moderation.platform_actions | 查詢 | 查詢平臺的處置 |
iterPlatformActions(params?: Omit<T.ListOptions, 'cursor'>, options?: IterOptions): AsyncIterable<T.PlatformAction> | 逐頁呼叫 GET /moderation/platform-actions | moderation.platform_actions | 查詢 | 查詢平臺的處置 |
report(params: T.ReportParams, options?: CallOptions): Promise<WithRaw<T.ReportResult>> | POST /moderation/reports | moderation.report | 冪等 | 代使用者舉報 |
stats(params: T.ModerationStatsParams, options?: CallOptions): Promise<WithRaw<T.ModerationStats>> | GET /moderation/stats | moderation.stats | 查詢 | 查詢統計 |
checkText( scene: | 'message' | 'chatroom_message' | 'user_profile' | 'group_profile' | 'group_member' | 'group_request' | 'friend_request' | 'chatroom_profile' | 'chatroom_attribute' | 'media_upload' | (string & {}), params?: T.CheckTextParams, options?: CallOptions): Promise<WithRaw<T.TextCheckResult>> | POST /moderation/text-check | moderation.check_text | 查詢 | 檢查文本 |
listViolations(username: string, params?: T.ListOptions, options?: CallOptions): Promise<T.ViolationsPage> | GET /moderation/users/{username}/violations | moderation.violations | 查詢 | 查詢使用者的違規 |
iterViolations(username: string, params?: Omit<T.ListOptions, 'cursor'>, options?: IterOptions): AsyncIterable<T.Violation> | 逐頁呼叫 GET /moderation/users/{username}/violations | moderation.violations | 查詢 | 查詢使用者的違規 |
clearViolations(username: string, params?: T.ModerationClearViolationsParams, options?: CallOptions): Promise<number> | DELETE /moderation/users/{username}/violations | moderation.clear_violations | 冪等 | 清除使用者的違規 |
listWordLists(options?: CallOptions): Promise<WithRaw<T.WordList[]>> | GET /moderation/word-lists | moderation.word_lists | 查詢 | 查詢詞庫列表 |
createWordList(name: string, params?: T.CreateWordListParams, options?: CallOptions): Promise<WithRaw<T.WordList>> | POST /moderation/word-lists | moderation.create_word_list | 不重試 | 建立詞庫 |
getWordList(listId: string, options?: CallOptions): Promise<WithRaw<T.WordList>> | GET /moderation/word-lists/{list_id} | moderation.word_list | 查詢 | 查詢詞庫 |
updateWordList(listId: string, params?: T.UpdateWordListParams, options?: CallOptions): Promise<WithRaw<T.WordList>> | PATCH /moderation/word-lists/{list_id} | moderation.update_word_list | 冪等 | 修改詞庫 |
deleteWordList(listId: string, options?: CallOptions): Promise<void> | DELETE /moderation/word-lists/{list_id} | moderation.delete_word_list | 冪等 | 刪除詞庫 |
listWords(listId: string, params?: T.ListWordsParams, options?: CallOptions): Promise<Page<T.Word>> | GET /moderation/word-lists/{list_id}/words | moderation.words | 查詢 | 查詢詞條 |
iterWords(listId: string, params?: Omit<T.ListWordsParams, 'cursor'>, options?: IterOptions): AsyncIterable<T.Word> | 逐頁呼叫 GET /moderation/word-lists/{list_id}/words | moderation.words | 查詢 | 查詢詞條 |
addWords(listId: string, words: readonly string[], options?: CallOptions): Promise<WithRaw<T.AddWordsResult>> | POST /moderation/word-lists/{list_id}/words/batch | moderation.add_words | 冪等 | 新增詞條 |
removeWords(listId: string, words: readonly string[], options?: CallOptions): Promise<number> | POST /moderation/word-lists/{list_id}/words/batch-delete | moderation.remove_words | 冪等 | 刪除詞條 |
音視訊通話 client.calls
| 方法與簽名 | REST 介面 | 介面名 | 自動重試 | 文件 |
|---|---|---|---|---|
list(params?: T.ListCallsParams, options?: CallOptions): Promise<Page<T.Call>> | GET /calls | calls.list | 查詢 | 查詢通話列表 |
iter(params?: Omit<T.ListCallsParams, 'cursor'>, options?: IterOptions): AsyncIterable<T.Call> | 逐頁呼叫 GET /calls | calls.list | 查詢 | 查詢通話列表 |
get(callId: string, options?: CallOptions): Promise<WithRaw<T.Call>> | GET /calls/{call_id} | calls.get | 查詢 | 查詢通話詳情 |
end(callId: string, params?: T.CallsEndParams, options?: CallOptions): Promise<WithRaw<T.CallChange>> | POST /calls/{call_id}/end | calls.end | 冪等 | 結束通話 |
removeMember( callId: string, username: string, params?: T.CallsRemoveMemberParams, options?: CallOptions): Promise<WithRaw<T.CallChange>> | POST /calls/{call_id}/members/{username}/remove | calls.remove_member | 冪等 | 把成員移出通話 |
stats(from: string, to: string, options?: CallOptions): Promise<WithRaw<T.CallDayStats[]>> | GET /rtc/stats | calls.stats | 查詢 | 查詢通話統計 |
getActiveCall(username: string, options?: CallOptions): Promise<WithRaw<T.ActiveCalls>> | GET /users/{username}/calls/active | calls.active_of | 查詢 | 查詢使用者正在進行的通話 |
線上狀態 client.presence
| 方法與簽名 | REST 介面 | 介面名 | 自動重試 | 文件 |
|---|---|---|---|---|
query(usernames: readonly string[], options?: CallOptions): Promise<WithRaw<T.Presence[]>> | POST /presence/query | presence.query | 查詢 | 批次查詢線上狀態 |
get(username: string, options?: CallOptions): Promise<WithRaw<T.Presence>> | GET /users/{username}/presence | presence.get | 查詢 | 查詢使用者的線上狀態 |
檔案便利方法的引數
client.media.upload(source, params, options?) 的 source 為 UploadSource,params 為 UploadParams,返回 MediaFile。resumeUpload(fileId, source, params?, options?) 使用 ResumeParams,恢復有效的上傳會話。download(url, dest, options?) 的目標為 DownloadTarget,返回寫入的位元組數。引數和來源限制見檔案上傳與下載。upload、download 的統計介面名分別為 media.upload、media.download。
內容安全便利方法
client.moderation.processPending(handle, params?, options?): Promise<number> 逐條讀取待稽核記錄,呼叫 PendingHandler 並提交結論,返回已提交條數。params 為 { scene?, limit?, stopOnError? };處理函式收到 (item, content, { signal }),返回 Decision、null 或 undefined,也可返回 Promise。Decision 的欄位為 decision、actions?、count_violation?、note?,見內容安全複審。統計介面名為 moderation.process_pending。
客戶端管理方法
| 方法或屬性 | 說明 |
|---|---|
withOptions(options) | 建立共用狀態的配置檢視 |
updateCredentials(clientId, clientSecret) | 更新應用憑據 |
token(options?): Promise<string> | 取得當前有效令牌;options 可傳 signal。不要將返回值寫入日誌 |
appId | 首次換取令牌前為 null,之後為應用 ID |
stats(): Stats | 獲取各介面請求、失敗、重試和限流等待統計 |
close(): Promise<void> | 關閉客戶端;檢視的 close 不關閉原客戶端 |
客戶端配置見安裝與建立客戶端。回撥處理器及框架適配見接收回調。
獨立 RTC 頻道:client.channels
這個服務只管理頻道,不替使用者加入音影片。引數和響應見頻道 REST API。表中的介面省略了應用字首。
| 方法與簽名 | REST 介面 | 介面名 | 自動重試 |
|---|---|---|---|
stats(params: T.RTCChannelStatsParams, options?: CallOptions): Promise<WithRaw<T.RTCChannelStatsResult>> | GET /rtc/channel-stats | channels.stats | 查詢 |
usageAdjustments(params?: T.RTCChannelUsageAdjustmentsParams, options?: CallOptions): Promise<WithRaw<T.RTCChannelAdjustmentPage>> | GET /rtc/channel-usage-adjustments | channels.usage_adjustments | 查詢 |
list(params?: T.RTCChannelListParams, options?: CallOptions): Promise<WithRaw<T.RTCChannelPage>> | GET /rtc/channels | channels.list | 查詢 |
get(channelId: string, options?: CallOptions): Promise<WithRaw<T.RTCChannelResult>> | GET /rtc/channels/{channel_id} | channels.get | 查詢 |
create(channelId: string, params: T.RTCChannelCreateParams, options?: CallOptions): Promise<WithRaw<T.RTCChannelCreateResult>> | PUT /rtc/channels/{channel_id} | channels.create | 固定冪等鍵 |
update(channelId: string, params: T.RTCChannelUpdateParams, options?: CallOptions): Promise<WithRaw<T.RTCChannelResult>> | PATCH /rtc/channels/{channel_id} | channels.update | 冪等 |
bans(channelId: string, params?: T.RTCChannelBansParams, options?: CallOptions): Promise<WithRaw<T.RTCChannelBanPage>> | GET /rtc/channels/{channel_id}/bans | channels.bans | 查詢 |
getBan(channelId: string, username: string, options?: CallOptions): Promise<WithRaw<T.RTCChannelBanResult>> | GET /rtc/channels/{channel_id}/bans/{username} | channels.get_ban | 查詢 |
ban(channelId: string, username: string, params: T.RTCChannelBanParams, options?: CallOptions): Promise<WithRaw<T.RTCChannelBanCreateResult>> | PUT /rtc/channels/{channel_id}/bans/{username} | channels.ban | 冪等 |
unban(channelId: string, username: string, params: T.RTCChannelUnbanParams, options?: CallOptions): Promise<WithRaw<T.RTCChannelBanResult>> | DELETE /rtc/channels/{channel_id}/bans/{username} | channels.unban | 冪等 |
close(channelId: string, params: T.RTCChannelCloseParams, options?: CallOptions): Promise<WithRaw<T.RTCChannelCloseResult>> | POST /rtc/channels/{channel_id}/close | channels.close | 冪等 |
removeMember(channelId: string, username: string, params: T.RTCChannelRemoveMemberParams, options?: CallOptions): Promise<WithRaw<T.RTCChannelRemoveResult>> | POST /rtc/channels/{channel_id}/members/{username}/remove | channels.remove_member | 固定冪等鍵 |
sessions(channelId: string, params?: T.RTCChannelSessionsParams, options?: CallOptions): Promise<WithRaw<T.RTCChannelSessionPage>> | GET /rtc/channels/{channel_id}/sessions | channels.sessions | 查詢 |
issueTickets(channelId: string, params: T.RTCChannelIssueTicketsParams, options?: CallOptions): Promise<WithRaw<T.RTCChannelTicketsResult>> | POST /rtc/channels/{channel_id}/tickets | channels.issue_tickets | 不重試 |
revokeTickets(channelId: string, params: T.RTCChannelRevokeTicketsParams, options?: CallOptions): Promise<WithRaw<T.RTCChannelRevokeResult>> | POST /rtc/channels/{channel_id}/tickets/revoke | channels.revoke_tickets | 固定冪等鍵 |
結果是頻道、會話、票據、封禁、統計和用量更正各自的型別,並保留原始資料。建立的結果中 created 表示服務端返回的是 201(新建),關閉和移出的結果中 pending 表示返回的是 202(處理中);它們不是響應體中的欄位。最後一頁的 next_cursor、沒有封禁時的 ban、可以清除的到期時間都保留 null。
頻道的列表方法返回一頁資料,用 next_cursor 自己翻頁,沒有通話(calls)那樣的 iter 遍歷方法。expires_at 區分不傳、null(清除)和設值三種狀態。簽發票據不自動重試;移出成員和撤銷票據使用固定的 operation_id。
遊戲房間:im.game
建房、簽發加入票據、開局、結束房間、移出玩家和查詢,用法見呼叫介面。
| 方法與簽名 | REST 介面 | 介面名 | 自動重試 | 文件 |
|---|---|---|---|---|
listRegions(options?: CallOptions): Promise<WithRaw<T.GameRegion[]>> | GET /game/regions | game.list_regions | 查詢 | 查大區 |
createRoom(roomId: string, params?: T.CreateGameRoomParams, options?: CallOptions): Promise<WithRaw<T.GameCreateRoomResult>> | PUT /game/rooms/{room_id} | game.create_room | 冪等 | 建立房間 |
issueTickets(roomId: string, params: T.IssueGameTicketsParams, options?: CallOptions): Promise<WithRaw<T.GameTicket[]>> | POST /game/rooms/{room_id}/tickets | game.issue_tickets | 不重試 | 簽發加入票據 |
startRoom(roomId: string, options?: CallOptions): Promise<WithRaw<T.GameRoom>> | POST /game/rooms/{room_id}/start | game.start_room | 冪等 | 開局 |
closeRoom(roomId: string, params?: T.CloseGameRoomParams, options?: CallOptions): Promise<WithRaw<T.GameCloseRoomResult>> | POST /game/rooms/{room_id}/close | game.close_room | 冪等 | 結束房間 |
removeMember(roomId: string, username: string, params?: T.RemoveGameMemberParams, options?: CallOptions): Promise<WithRaw<T.GameRemoveMemberResult>> | POST /game/rooms/{room_id}/members/{username}/remove | game.remove_member | 冪等鍵 | 移出玩家 |
getRoom(roomId: string, options?: CallOptions): Promise<WithRaw<T.GameRoom>> | GET /game/rooms/{room_id} | game.get_room | 查詢 | 查詢房間 |
listRooms(params?: T.ListGameRoomsParams, options?: CallOptions): Promise<Page<T.GameRoom>> | GET /game/rooms | game.list_rooms | 查詢 | 列出房間 |
iterRooms(params?: Omit<T.ListGameRoomsParams, 'cursor'>, options?: IterOptions): AsyncIterable<T.GameRoom> | 逐頁呼叫 GET /game/rooms | game.list_rooms | 查詢 | 列出房間 |
listMembers(roomId: string, options?: CallOptions): Promise<WithRaw<T.GameMember[]>> | GET /game/rooms/{room_id}/members | game.list_members | 查詢 | 列出成員 |
結果中的 created、accepted、removed 由狀態碼得出(201、202 為 true),不是響應體中的欄位。removeMember 沒有給 operation_id 時 SDK 自動生成,重試時不變。
AI 對話:im.ai
機器人管理和流式回覆的底層介面。回覆一般用 startStream 開始,它返回的流物件處理合批、持續寫入和重試,見呼叫介面;streamStopped 在收到 ai.stream_stopped 時停止本程序中的流(回撥處理器會自動呼叫)。
| 方法 | REST 介面 | 介面名 | 文件 |
|---|---|---|---|
createBot | POST /ai/bots | ai.create_bot | 建立機器人 |
listBots / iterBots | 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 | 報告失敗 |
