boxim-sdk 3.0.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- boxim_sdk-3.0.0/PKG-INFO +822 -0
- boxim_sdk-3.0.0/README.md +798 -0
- boxim_sdk-3.0.0/boxim/__init__.py +563 -0
- boxim_sdk-3.0.0/boxim/boxim.py +5499 -0
- boxim_sdk-3.0.0/boxim/client.py +41 -0
- boxim_sdk-3.0.0/boxim/emoji_assets/0.23538cb7.gif +0 -0
- boxim_sdk-3.0.0/boxim/emoji_assets/1.41d8ebbe.gif +0 -0
- boxim_sdk-3.0.0/boxim/emoji_assets/10.d13dcac4.gif +0 -0
- boxim_sdk-3.0.0/boxim/emoji_assets/11.b0d85036.gif +0 -0
- boxim_sdk-3.0.0/boxim/emoji_assets/12.c86081d0.gif +0 -0
- boxim_sdk-3.0.0/boxim/emoji_assets/13.aaebd091.gif +0 -0
- boxim_sdk-3.0.0/boxim/emoji_assets/14.8734eba5.gif +0 -0
- boxim_sdk-3.0.0/boxim/emoji_assets/15.75820281.gif +0 -0
- boxim_sdk-3.0.0/boxim/emoji_assets/16.942bf804.gif +0 -0
- boxim_sdk-3.0.0/boxim/emoji_assets/18.c47c412d.gif +0 -0
- boxim_sdk-3.0.0/boxim/emoji_assets/19.89260df5.gif +0 -0
- boxim_sdk-3.0.0/boxim/emoji_assets/2.302b51b8.gif +0 -0
- boxim_sdk-3.0.0/boxim/emoji_assets/20.6428ddb3.gif +0 -0
- boxim_sdk-3.0.0/boxim/emoji_assets/21.ec8df612.gif +0 -0
- boxim_sdk-3.0.0/boxim/emoji_assets/22.1a731ef9.gif +0 -0
- boxim_sdk-3.0.0/boxim/emoji_assets/23.071999b8.gif +0 -0
- boxim_sdk-3.0.0/boxim/emoji_assets/24.52e37bff.gif +0 -0
- boxim_sdk-3.0.0/boxim/emoji_assets/25.6f582617.gif +0 -0
- boxim_sdk-3.0.0/boxim/emoji_assets/26.03b7a469.gif +0 -0
- boxim_sdk-3.0.0/boxim/emoji_assets/27.65ed7407.gif +0 -0
- boxim_sdk-3.0.0/boxim/emoji_assets/28.52524722.gif +0 -0
- boxim_sdk-3.0.0/boxim/emoji_assets/29.1659f59b.gif +0 -0
- boxim_sdk-3.0.0/boxim/emoji_assets/3.7abec26c.gif +0 -0
- boxim_sdk-3.0.0/boxim/emoji_assets/30.5bd2ccd2.gif +0 -0
- boxim_sdk-3.0.0/boxim/emoji_assets/31.4894333c.gif +0 -0
- boxim_sdk-3.0.0/boxim/emoji_assets/32.f35d7073.gif +0 -0
- boxim_sdk-3.0.0/boxim/emoji_assets/33.deb9bb7e.gif +0 -0
- boxim_sdk-3.0.0/boxim/emoji_assets/34.b4c0eba4.gif +0 -0
- boxim_sdk-3.0.0/boxim/emoji_assets/35.7e9e390a.gif +0 -0
- boxim_sdk-3.0.0/boxim/emoji_assets/36.c4e8fcb2.gif +0 -0
- boxim_sdk-3.0.0/boxim/emoji_assets/37.418a25ff.gif +0 -0
- boxim_sdk-3.0.0/boxim/emoji_assets/38.8f1726b9.gif +0 -0
- boxim_sdk-3.0.0/boxim/emoji_assets/39.a8484b5b.gif +0 -0
- boxim_sdk-3.0.0/boxim/emoji_assets/4.be67348c.gif +0 -0
- boxim_sdk-3.0.0/boxim/emoji_assets/40.2b8929bd.gif +0 -0
- boxim_sdk-3.0.0/boxim/emoji_assets/41.0b009f7b.gif +0 -0
- boxim_sdk-3.0.0/boxim/emoji_assets/42.02d062c5.gif +0 -0
- boxim_sdk-3.0.0/boxim/emoji_assets/43.62177cf1.gif +0 -0
- boxim_sdk-3.0.0/boxim/emoji_assets/44.00ef8c19.gif +0 -0
- boxim_sdk-3.0.0/boxim/emoji_assets/45.7bab77e0.gif +0 -0
- boxim_sdk-3.0.0/boxim/emoji_assets/46.e9ac968c.gif +0 -0
- boxim_sdk-3.0.0/boxim/emoji_assets/47.b4ac667a.gif +0 -0
- boxim_sdk-3.0.0/boxim/emoji_assets/48.20d1ce26.gif +0 -0
- boxim_sdk-3.0.0/boxim/emoji_assets/49.c881faa6.gif +0 -0
- boxim_sdk-3.0.0/boxim/emoji_assets/5.11e27819.gif +0 -0
- boxim_sdk-3.0.0/boxim/emoji_assets/50.7614f726.gif +0 -0
- boxim_sdk-3.0.0/boxim/emoji_assets/51.5d136c53.gif +0 -0
- boxim_sdk-3.0.0/boxim/emoji_assets/52.21a20728.gif +0 -0
- boxim_sdk-3.0.0/boxim/emoji_assets/53.a59af82b.gif +0 -0
- boxim_sdk-3.0.0/boxim/emoji_assets/54.2030cc4e.gif +0 -0
- boxim_sdk-3.0.0/boxim/emoji_assets/55.469289a4.gif +0 -0
- boxim_sdk-3.0.0/boxim/emoji_assets/56.33767a85.gif +0 -0
- boxim_sdk-3.0.0/boxim/emoji_assets/6.187a4467.gif +0 -0
- boxim_sdk-3.0.0/boxim/emoji_assets/7.fb655c96.gif +0 -0
- boxim_sdk-3.0.0/boxim/emoji_assets/8.89742749.gif +0 -0
- boxim_sdk-3.0.0/boxim/emoji_assets/9.0b2dd09a.gif +0 -0
- boxim_sdk-3.0.0/boxim/emoji_assets/fav.3c74a9d3.png +0 -0
- boxim_sdk-3.0.0/boxim/emoji_assets/no_data.e3b08d88.png +0 -0
- boxim_sdk-3.0.0/boxim/util/__init__.py +166 -0
- boxim_sdk-3.0.0/boxim/util/config.py +140 -0
- boxim_sdk-3.0.0/boxim/util/container.py +98 -0
- boxim_sdk-3.0.0/boxim/util/decorators.py +222 -0
- boxim_sdk-3.0.0/boxim/util/emoji.py +182 -0
- boxim_sdk-3.0.0/boxim/util/enums.py +203 -0
- boxim_sdk-3.0.0/boxim/util/env.py +162 -0
- boxim_sdk-3.0.0/boxim/util/events.py +138 -0
- boxim_sdk-3.0.0/boxim/util/exceptions.py +67 -0
- boxim_sdk-3.0.0/boxim/util/logging_util.py +38 -0
- boxim_sdk-3.0.0/boxim/util/message_builder.py +306 -0
- boxim_sdk-3.0.0/boxim/util/models.py +715 -0
- boxim_sdk-3.0.0/boxim/util/protocols.py +213 -0
- boxim_sdk-3.0.0/boxim/util/rtc.py +1213 -0
- boxim_sdk-3.0.0/boxim/util/streams.py +527 -0
- boxim_sdk-3.0.0/boxim/util/transport_http.py +595 -0
- boxim_sdk-3.0.0/boxim/util/transport_ws.py +461 -0
- boxim_sdk-3.0.0/boxim/util/uploader.py +192 -0
- boxim_sdk-3.0.0/boxim_sdk.egg-info/PKG-INFO +822 -0
- boxim_sdk-3.0.0/boxim_sdk.egg-info/SOURCES.txt +86 -0
- boxim_sdk-3.0.0/boxim_sdk.egg-info/dependency_links.txt +1 -0
- boxim_sdk-3.0.0/boxim_sdk.egg-info/requires.txt +4 -0
- boxim_sdk-3.0.0/boxim_sdk.egg-info/top_level.txt +1 -0
- boxim_sdk-3.0.0/pyproject.toml +41 -0
- boxim_sdk-3.0.0/setup.cfg +4 -0
boxim_sdk-3.0.0/PKG-INFO
ADDED
|
@@ -0,0 +1,822 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: boxim-sdk
|
|
3
|
+
Version: 3.0.0
|
|
4
|
+
Summary: BoxIM SDK for Python - BoxIM 即时通讯平台 SDK
|
|
5
|
+
Author: nichengfuben
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Homepage, https://www.boximchat.com
|
|
8
|
+
Project-URL: Repository, https://github.com/nichengfuben/boxim-sdk
|
|
9
|
+
Keywords: boxim,im,chat,sdk,websocket
|
|
10
|
+
Classifier: Development Status :: 4 - Beta
|
|
11
|
+
Classifier: Intended Audience :: Developers
|
|
12
|
+
Classifier: Programming Language :: Python :: 3
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
17
|
+
Classifier: Topic :: Communications :: Chat
|
|
18
|
+
Requires-Python: >=3.10
|
|
19
|
+
Description-Content-Type: text/markdown
|
|
20
|
+
Requires-Dist: aiohttp>=3.9.0
|
|
21
|
+
Requires-Dist: requests>=2.31.0
|
|
22
|
+
Requires-Dist: urllib3>=2.0.0
|
|
23
|
+
Requires-Dist: websockets>=12.0
|
|
24
|
+
|
|
25
|
+
# BoxIM SDK 参考文档
|
|
26
|
+
|
|
27
|
+
## 核心概念
|
|
28
|
+
|
|
29
|
+
BoxIM 是一个即时通讯 SDK,所有功能通过 `BoxIM` 类实例访问。**始终通过 `boxim.client` 模块使用全局单例,禁止直接实例化 `BoxIM`。**
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## 初始化(必读)
|
|
34
|
+
|
|
35
|
+
```python
|
|
36
|
+
from boxim.client import initialize_im_client, get_im_client
|
|
37
|
+
|
|
38
|
+
# 首次初始化(幂等,重复调用不会重新登录)
|
|
39
|
+
im = initialize_im_client("username", "password")
|
|
40
|
+
|
|
41
|
+
# 在任意位置获取已初始化的客户端
|
|
42
|
+
im = get_im_client()
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
`initialize_im_client(username, password)` — 初始化全局单例并登录,已初始化则直接返回现有实例,返回 `BoxIM`。
|
|
46
|
+
|
|
47
|
+
`get_im_client()` — 获取已初始化的全局单例,未初始化时抛出 `RuntimeError`。
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## 认证
|
|
52
|
+
|
|
53
|
+
`im.login(username, password, terminal)` — 同步登录,返回 `self`,支持链式调用。`terminal` 默认 `TerminalType.WEB`。
|
|
54
|
+
|
|
55
|
+
`await im.alogin(username, password, terminal)` — 异步登录,返回 `self`。
|
|
56
|
+
|
|
57
|
+
`im.register(mode, user_name, phone, email, code, password, confirm_password, nick_name)` — 注册用户。`mode` 为 `RegistrationMode.USERNAME/PHONE/EMAIL`,对应模式必须提供相应字段,否则抛出 `ValidationError`。返回 `Dict`。
|
|
58
|
+
|
|
59
|
+
`await im.aregister(...)` — 异步注册。
|
|
60
|
+
|
|
61
|
+
`im.refresh_token()` — 刷新访问令牌,需已登录,无刷新令牌时抛出 `AuthError`,返回 `self`。
|
|
62
|
+
|
|
63
|
+
`await im.arefresh_token()` — 异步刷新令牌。
|
|
64
|
+
|
|
65
|
+
`im.modify_password(old_password, new_password)` — 修改密码,需已登录,返回 `Dict`。
|
|
66
|
+
|
|
67
|
+
`await im.amodify_password(old_password, new_password)` — 异步修改密码。
|
|
68
|
+
|
|
69
|
+
`im.reset_password(mode, phone, email, code, password, confirm_password)` — 通过手机或邮箱验证码重置密码,无需登录,返回 `Dict`。
|
|
70
|
+
|
|
71
|
+
`await im.areset_password(...)` — 异步重置密码。
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## 二维码登录
|
|
76
|
+
|
|
77
|
+
`im.generate_qr_login()` — 生成二维码登录信息,返回 `QRLoginInfo`(含 `qr_code`、`qr_image` base64、`expires_in`)。
|
|
78
|
+
|
|
79
|
+
`await im.agenerate_qr_login()` — 异步生成。
|
|
80
|
+
|
|
81
|
+
`im.check_qr_login_status(qr_code)` — 查询二维码状态,返回 `Dict`,确认后含 `accessToken`。
|
|
82
|
+
|
|
83
|
+
`await im.acheck_qr_login_status(qr_code)` — 异步查询。
|
|
84
|
+
|
|
85
|
+
`im.qr_login_wait(poll_interval=2.0, timeout=300.0)` — 自动生成二维码并轮询等待扫码确认,超时或过期抛出 `AuthError`,返回 `self`。
|
|
86
|
+
|
|
87
|
+
`await im.aqr_login_wait(poll_interval=2.0, timeout=300.0)` — 异步轮询等待。
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## 用户
|
|
92
|
+
|
|
93
|
+
`im.get_me()` — 获取当前登录用户信息,返回 `Dict`。
|
|
94
|
+
|
|
95
|
+
`await im.aget_me()` — 异步获取。
|
|
96
|
+
|
|
97
|
+
`im.me` — 属性,等同于调用 `get_me()`,返回 `Dict`。
|
|
98
|
+
|
|
99
|
+
`im.get_user(user_id)` — 按 ID 获取用户,返回 `User`。
|
|
100
|
+
|
|
101
|
+
`await im.aget_user(user_id)` — 异步获取。
|
|
102
|
+
|
|
103
|
+
`im.search_users(keyword)` — 按关键词搜索用户(ID/昵称/手机/邮箱),返回 `List[User]`。
|
|
104
|
+
|
|
105
|
+
`await im.asearch_users(keyword)` — 异步搜索。
|
|
106
|
+
|
|
107
|
+
`im.update_profile(**kwargs)` — 更新当前用户资料,`kwargs` 可含 `nickName`、`sex`、`signature`、`headImage` 等字段,返回 `self`。
|
|
108
|
+
|
|
109
|
+
`await im.aupdate_profile(**kwargs)` — 异步更新。
|
|
110
|
+
|
|
111
|
+
`im.get_online_terminals(user_ids)` — 获取用户在线终端,`user_ids` 为单个 `int` 或 `List[int]`,返回 `List[Dict]`。
|
|
112
|
+
|
|
113
|
+
`await im.aget_online_terminals(user_ids)` — 异步获取。
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## 好友
|
|
118
|
+
|
|
119
|
+
`im.get_friends()` — 获取好友列表,返回 `List[Friend]`。
|
|
120
|
+
|
|
121
|
+
`await im.aget_friends()` — 异步获取。
|
|
122
|
+
|
|
123
|
+
`im.friends` — 属性,等同于 `get_friends()`。
|
|
124
|
+
|
|
125
|
+
`im.get_friend_info(user_id)` — 获取指定好友信息,返回 `Friend`。
|
|
126
|
+
|
|
127
|
+
`await im.aget_friend_info(user_id)` — 异步获取。
|
|
128
|
+
|
|
129
|
+
`im.add_friend(user_id, remark=None)` — 发送好友请求,返回 `self`。
|
|
130
|
+
|
|
131
|
+
`await im.aadd_friend(user_id, remark=None)` — 异步发送。
|
|
132
|
+
|
|
133
|
+
`im.send_friend_request(user_id, message=None)` — `add_friend` 的别名,返回 `self`。
|
|
134
|
+
|
|
135
|
+
`await im.asend_friend_request(user_id, message=None)` — 异步别名。
|
|
136
|
+
|
|
137
|
+
`im.delete_friend(user_id)` — 删除好友,返回 `self`。
|
|
138
|
+
|
|
139
|
+
`await im.adelete_friend(user_id)` — 异步删除。
|
|
140
|
+
|
|
141
|
+
`im.set_friend_dnd(user_id, dnd)` — 设置好友免打扰,`dnd` 为 `bool`,返回 `self`。
|
|
142
|
+
|
|
143
|
+
`await im.aset_friend_dnd(user_id, dnd)` — 异步设置。
|
|
144
|
+
|
|
145
|
+
`im.set_friend_top(user_id, top)` — 设置好友置顶,返回 `self`。
|
|
146
|
+
|
|
147
|
+
`await im.aset_friend_top(user_id, top)` — 异步设置。
|
|
148
|
+
|
|
149
|
+
`im.update_friend_remark(user_id, remark)` — 更新好友备注名,返回 `self`。
|
|
150
|
+
|
|
151
|
+
`await im.aupdate_friend_remark(user_id, remark)` — 异步更新。
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## 好友请求
|
|
156
|
+
|
|
157
|
+
`im.get_friend_requests()` — 获取待处理好友请求列表,返回 `List[FriendRequest]`。
|
|
158
|
+
|
|
159
|
+
`await im.aget_friend_requests()` — 异步获取。
|
|
160
|
+
|
|
161
|
+
`im.friend_requests` — 属性,等同于 `get_friend_requests()`。
|
|
162
|
+
|
|
163
|
+
`im.accept_friend_request(request_id)` — 接受好友请求,返回 `self`。
|
|
164
|
+
|
|
165
|
+
`await im.aaccept_friend_request(request_id)` — 异步接受。
|
|
166
|
+
|
|
167
|
+
`im.reject_friend_request(request_id)` — 拒绝好友请求,返回 `self`。
|
|
168
|
+
|
|
169
|
+
`await im.areject_friend_request(request_id)` — 异步拒绝。
|
|
170
|
+
|
|
171
|
+
`im.recall_friend_request(request_id)` — 撤回自己发出的好友请求,返回 `self`。
|
|
172
|
+
|
|
173
|
+
`await im.arecall_friend_request(request_id)` — 异步撤回。
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
## 黑名单
|
|
178
|
+
|
|
179
|
+
`im.add_to_blacklist(user_id)` — 拉黑用户,返回 `self`。
|
|
180
|
+
|
|
181
|
+
`await im.aadd_to_blacklist(user_id)` — 异步拉黑。
|
|
182
|
+
|
|
183
|
+
`im.remove_from_blacklist(user_id)` — 移出黑名单,返回 `self`。
|
|
184
|
+
|
|
185
|
+
`await im.aremove_from_blacklist(user_id)` — 异步移出。
|
|
186
|
+
|
|
187
|
+
`im.get_blacklist()` — 获取黑名单列表,返回 `List[User]`。
|
|
188
|
+
|
|
189
|
+
`await im.aget_blacklist()` — 异步获取。
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
## 群组
|
|
194
|
+
|
|
195
|
+
`im.get_groups()` — 获取已加入的群组列表,返回 `List[Group]`。
|
|
196
|
+
|
|
197
|
+
`await im.aget_groups()` — 异步获取。
|
|
198
|
+
|
|
199
|
+
`im.groups` — 属性,等同于 `get_groups()`。
|
|
200
|
+
|
|
201
|
+
`im.create_group(name, member_ids)` — 创建群组,`member_ids` 为初始成员 ID 列表,返回 `Group`。
|
|
202
|
+
|
|
203
|
+
`await im.acreate_group(name, member_ids)` — 异步创建。
|
|
204
|
+
|
|
205
|
+
`im.get_group_info(group_id)` — 获取群组详情,返回 `Group`。
|
|
206
|
+
|
|
207
|
+
`await im.aget_group_info(group_id)` — 异步获取。
|
|
208
|
+
|
|
209
|
+
`im.modify_group(group_id, **kwargs)` — 修改群组信息,`kwargs` 可含 `name`、`notice`、`headImage`、`remarkGroupName` 等,返回 `self`。
|
|
210
|
+
|
|
211
|
+
`await im.amodify_group(group_id, **kwargs)` — 异步修改。
|
|
212
|
+
|
|
213
|
+
`im.delete_group(group_id)` — 解散群组(仅群主),返回 `self`。
|
|
214
|
+
|
|
215
|
+
`await im.adelete_group(group_id)` — 异步解散。
|
|
216
|
+
|
|
217
|
+
`im.quit_group(group_id)` — 退出群组(群主不可用),返回 `self`。
|
|
218
|
+
|
|
219
|
+
`await im.aquit_group(group_id)` — 异步退出。
|
|
220
|
+
|
|
221
|
+
`im.get_group_members(group_id, version=0)` — 获取群成员列表,`version` 用于增量更新,返回 `List[User]`。
|
|
222
|
+
|
|
223
|
+
`await im.aget_group_members(group_id, version=0)` — 异步获取。
|
|
224
|
+
|
|
225
|
+
`im.get_group_online_members(group_id)` — 获取在线成员 ID 列表,返回 `List[int]`。
|
|
226
|
+
|
|
227
|
+
`await im.aget_group_online_members(group_id)` — 异步获取。
|
|
228
|
+
|
|
229
|
+
`im.invite_to_group(group_id, user_ids)` — 邀请成员入群,`user_ids` 为 ID 列表,返回 `self`。
|
|
230
|
+
|
|
231
|
+
`await im.ainvite_to_group(group_id, user_ids)` — 异步邀请。
|
|
232
|
+
|
|
233
|
+
`im.remove_group_members(group_id, user_ids)` — 踢出成员,返回 `self`。
|
|
234
|
+
|
|
235
|
+
`await im.aremove_group_members(group_id, user_ids)` — 异步踢出。
|
|
236
|
+
|
|
237
|
+
`im.join_group(group_id, token=None)` — 申请加入群组,`token` 为群名片 token(可选),返回 `self`。
|
|
238
|
+
|
|
239
|
+
`await im.ajoin_group(group_id, token=None)` — 异步申请。
|
|
240
|
+
|
|
241
|
+
`im.get_group_card_token(group_id)` — 获取群名片分享 token,返回 `str`。
|
|
242
|
+
|
|
243
|
+
`await im.aget_group_card_token(group_id)` — 异步获取。
|
|
244
|
+
|
|
245
|
+
`im.set_group_dnd(group_id, dnd)` — 设置群组免打扰,返回 `self`。
|
|
246
|
+
|
|
247
|
+
`await im.aset_group_dnd(group_id, dnd)` — 异步设置。
|
|
248
|
+
|
|
249
|
+
`im.set_group_top(group_id, top)` — 设置群组置顶,返回 `self`。
|
|
250
|
+
|
|
251
|
+
`await im.aset_group_top(group_id, top)` — 异步设置。
|
|
252
|
+
|
|
253
|
+
`im.set_group_muted(group_id, muted)` — 全员禁言,返回 `self`。
|
|
254
|
+
|
|
255
|
+
`await im.aset_group_muted(group_id, muted)` — 异步设置。
|
|
256
|
+
|
|
257
|
+
`im.set_group_allow_invite(group_id, allow)` — 设置是否允许成员邀请他人,返回 `self`。
|
|
258
|
+
|
|
259
|
+
`await im.aset_group_allow_invite(group_id, allow)` — 异步设置。
|
|
260
|
+
|
|
261
|
+
`im.set_group_allow_share_card(group_id, allow)` — 设置是否允许分享群名片,返回 `self`。
|
|
262
|
+
|
|
263
|
+
`await im.aset_group_allow_share_card(group_id, allow)` — 异步设置。
|
|
264
|
+
|
|
265
|
+
`im.set_group_member_muted(group_id, user_ids, muted)` — 设置指定成员禁言,`user_ids` 为单个 `int` 或列表,返回 `self`。
|
|
266
|
+
|
|
267
|
+
`await im.aset_group_member_muted(group_id, user_ids, muted)` — 异步设置。
|
|
268
|
+
|
|
269
|
+
`im.add_group_manager(group_id, user_ids)` — 添加管理员(仅群主),`user_ids` 为单个 `int` 或列表,返回 `self`。
|
|
270
|
+
|
|
271
|
+
`await im.aadd_group_manager(group_id, user_ids)` — 异步添加。
|
|
272
|
+
|
|
273
|
+
`im.remove_group_manager(group_id, user_ids)` — 移除管理员(仅群主),返回 `self`。
|
|
274
|
+
|
|
275
|
+
`await im.aremove_group_manager(group_id, user_ids)` — 异步移除。
|
|
276
|
+
|
|
277
|
+
`im.set_group_top_message(group_id, message_id)` — 设置群置顶消息,返回 `self`。
|
|
278
|
+
|
|
279
|
+
`await im.aset_group_top_message(group_id, message_id)` — 异步设置。
|
|
280
|
+
|
|
281
|
+
`im.remove_group_top_message(group_id)` — 移除群置顶消息,返回 `self`。
|
|
282
|
+
|
|
283
|
+
`await im.aremove_group_top_message(group_id)` — 异步移除。
|
|
284
|
+
|
|
285
|
+
`im.hide_group_top_message(group_id)` — 仅对自己隐藏置顶消息,返回 `self`。
|
|
286
|
+
|
|
287
|
+
`await im.ahide_group_top_message(group_id)` — 异步隐藏。
|
|
288
|
+
|
|
289
|
+
---
|
|
290
|
+
|
|
291
|
+
## 私聊消息
|
|
292
|
+
|
|
293
|
+
所有发送方法需已登录,返回 `self` 支持链式调用。
|
|
294
|
+
|
|
295
|
+
`im.send_text(user_id, text)` — 发送文本消息。
|
|
296
|
+
|
|
297
|
+
`await im.asend_text(user_id, text)` — 异步发送。
|
|
298
|
+
|
|
299
|
+
`im.send_image(user_id, image_path)` — 上传本地图片并发送。
|
|
300
|
+
|
|
301
|
+
`await im.asend_image(user_id, image_path)` — 异步发送。
|
|
302
|
+
|
|
303
|
+
`im.send_file(user_id, file_path)` — 上传本地文件并发送。
|
|
304
|
+
|
|
305
|
+
`await im.asend_file(user_id, file_path)` — 异步发送。
|
|
306
|
+
|
|
307
|
+
`im.send_voice(user_id, voice_path, duration=3)` — 上传语音文件并发送,`duration` 为秒数。
|
|
308
|
+
|
|
309
|
+
`await im.asend_voice(user_id, voice_path, duration=3)` — 异步发送。
|
|
310
|
+
|
|
311
|
+
`im.send_video(user_id, video_path)` — 上传视频并发送。
|
|
312
|
+
|
|
313
|
+
`await im.asend_video(user_id, video_path)` — 异步发送。
|
|
314
|
+
|
|
315
|
+
`im.send_sticker(user_id, sticker_id)` — 发送贴纸,`sticker_id` 为贴纸 ID。
|
|
316
|
+
|
|
317
|
+
`await im.asend_sticker(user_id, sticker_id)` — 异步发送。
|
|
318
|
+
|
|
319
|
+
`im.send_user_card(user_id, target_user_id, target_nickname, target_head_image)` — 发送个人名片。
|
|
320
|
+
|
|
321
|
+
`await im.asend_user_card(...)` — 异步发送。
|
|
322
|
+
|
|
323
|
+
`im.send_group_card(user_id, group_id, group_name, group_head_image)` — 发送群聊名片。
|
|
324
|
+
|
|
325
|
+
`await im.asend_group_card(...)` — 异步发送。
|
|
326
|
+
|
|
327
|
+
`im.send_private_raw(user_id, content, msg_type, receipt=False, quote_message_id=None)` — 发送原始私聊消息,完全控制内容和类型,`msg_type` 为 `MessageType` 枚举,返回 `Dict`。
|
|
328
|
+
|
|
329
|
+
`await im.asend_private_raw(...)` — 异步发送。
|
|
330
|
+
|
|
331
|
+
`im.recall_private_message(message_id)` — 撤回私聊消息,返回 `self`。
|
|
332
|
+
|
|
333
|
+
`await im.arecall_private_message(message_id)` — 异步撤回。
|
|
334
|
+
|
|
335
|
+
`im.mark_private_read(friend_id)` — 标记与某好友的私聊消息为已读,返回 `self`。
|
|
336
|
+
|
|
337
|
+
`await im.amark_private_read(friend_id)` — 异步标记。
|
|
338
|
+
|
|
339
|
+
`im.get_max_read_private_message_id(friend_id)` — 获取最大已读消息 ID,返回 `int`。
|
|
340
|
+
|
|
341
|
+
`await im.aget_max_read_private_message_id(friend_id)` — 异步获取。
|
|
342
|
+
|
|
343
|
+
`im.load_private_offline_message(min_id)` — 拉取 `min_id` 之后的私聊离线消息,返回 `List[Dict]`。
|
|
344
|
+
|
|
345
|
+
`await im.aload_private_offline_message(min_id)` — 异步拉取。
|
|
346
|
+
|
|
347
|
+
`im.get_private_message_history(friend_id, page=1, size=20)` — 分页获取私聊历史记录,返回 `List[Dict]`。
|
|
348
|
+
|
|
349
|
+
`await im.aget_private_message_history(friend_id, page=1, size=20)` — 异步获取。
|
|
350
|
+
|
|
351
|
+
`im.delete_private_messages(chat_id, message_ids)` — 删除指定私聊消息,`message_ids` 为 ID 列表,返回 `self`。
|
|
352
|
+
|
|
353
|
+
`await im.adelete_private_messages(chat_id, message_ids)` — 异步删除。
|
|
354
|
+
|
|
355
|
+
`im.delete_private_chat(chat_id)` — 删除与某用户的整个私聊会话,返回 `self`。
|
|
356
|
+
|
|
357
|
+
`await im.adelete_private_chat(chat_id)` — 异步删除。
|
|
358
|
+
|
|
359
|
+
---
|
|
360
|
+
|
|
361
|
+
## 群聊消息
|
|
362
|
+
|
|
363
|
+
所有发送方法需已登录,`at_users` 参数为 `List[int]`,`-1` 表示 @所有人,返回 `self`。
|
|
364
|
+
|
|
365
|
+
`im.send_group_text(group_id, text, at_users=None)` — 发送群聊文本。
|
|
366
|
+
|
|
367
|
+
`await im.asend_group_text(group_id, text, at_users=None)` — 异步发送。
|
|
368
|
+
|
|
369
|
+
`im.send_group_image(group_id, image_path, at_users=None)` — 上传并发送群聊图片。
|
|
370
|
+
|
|
371
|
+
`await im.asend_group_image(...)` — 异步发送。
|
|
372
|
+
|
|
373
|
+
`im.send_group_file(group_id, file_path, at_users=None)` — 上传并发送群聊文件。
|
|
374
|
+
|
|
375
|
+
`await im.asend_group_file(...)` — 异步发送。
|
|
376
|
+
|
|
377
|
+
`im.send_group_voice(group_id, voice_path, duration=3, at_users=None)` — 上传并发送群聊语音。
|
|
378
|
+
|
|
379
|
+
`await im.asend_group_voice(...)` — 异步发送。
|
|
380
|
+
|
|
381
|
+
`im.send_group_video(group_id, video_path, at_users=None)` — 上传并发送群聊视频。
|
|
382
|
+
|
|
383
|
+
`await im.asend_group_video(...)` — 异步发送。
|
|
384
|
+
|
|
385
|
+
`im.send_group_sticker(group_id, sticker_id, at_users=None)` — 发送群聊贴纸。
|
|
386
|
+
|
|
387
|
+
`await im.asend_group_sticker(...)` — 异步发送。
|
|
388
|
+
|
|
389
|
+
`im.send_group_raw(group_id, content, msg_type, at_users=None, receipt=False, quote_message_id=None)` — 发送原始群聊消息,完全控制内容,返回 `Dict`。
|
|
390
|
+
|
|
391
|
+
`await im.asend_group_raw(...)` — 异步发送。
|
|
392
|
+
|
|
393
|
+
`im.recall_group_message(message_id)` — 撤回群聊消息,返回 `self`。
|
|
394
|
+
|
|
395
|
+
`await im.arecall_group_message(message_id)` — 异步撤回。
|
|
396
|
+
|
|
397
|
+
`im.mark_group_read(group_id)` — 标记群聊消息为已读,返回 `self`。
|
|
398
|
+
|
|
399
|
+
`await im.amark_group_read(group_id)` — 异步标记。
|
|
400
|
+
|
|
401
|
+
`im.load_group_offline_message(min_id)` — 拉取群聊离线消息,返回 `List[Dict]`。
|
|
402
|
+
|
|
403
|
+
`await im.aload_group_offline_message(min_id)` — 异步拉取。
|
|
404
|
+
|
|
405
|
+
`im.get_group_message_readers(group_id, message_id)` — 获取某条群消息的已读用户 ID 列表,返回 `List[int]`。
|
|
406
|
+
|
|
407
|
+
`await im.aget_group_message_readers(group_id, message_id)` — 异步获取。
|
|
408
|
+
|
|
409
|
+
`im.get_group_message_history(group_id, page=1, size=20)` — 分页获取群聊历史记录,返回 `List[Dict]`。
|
|
410
|
+
|
|
411
|
+
`await im.aget_group_message_history(...)` — 异步获取。
|
|
412
|
+
|
|
413
|
+
`im.delete_group_messages(chat_id, message_ids)` — 删除指定群聊消息,返回 `self`。
|
|
414
|
+
|
|
415
|
+
`await im.adelete_group_messages(chat_id, message_ids)` — 异步删除。
|
|
416
|
+
|
|
417
|
+
`im.delete_group_chat(chat_id)` — 删除整个群聊会话,返回 `self`。
|
|
418
|
+
|
|
419
|
+
`await im.adelete_group_chat(chat_id)` — 异步删除。
|
|
420
|
+
|
|
421
|
+
---
|
|
422
|
+
|
|
423
|
+
## 系统消息
|
|
424
|
+
|
|
425
|
+
`im.load_system_offline_message(min_seq_no=0)` — 拉取序列号大于 `min_seq_no` 的系统离线消息,返回 `List[SystemMessage]`。
|
|
426
|
+
|
|
427
|
+
`await im.aload_system_offline_message(min_seq_no=0)` — 异步拉取。
|
|
428
|
+
|
|
429
|
+
`im.mark_system_read(max_seq_no)` — 标记序列号不大于 `max_seq_no` 的系统消息为已读,返回 `self`。
|
|
430
|
+
|
|
431
|
+
`await im.amark_system_read(max_seq_no)` — 异步标记。
|
|
432
|
+
|
|
433
|
+
`im.get_system_message_content(message_id)` — 获取系统消息详情,返回 `Dict`。
|
|
434
|
+
|
|
435
|
+
`await im.aget_system_message_content(message_id)` — 异步获取。
|
|
436
|
+
|
|
437
|
+
---
|
|
438
|
+
|
|
439
|
+
## 贴纸系统
|
|
440
|
+
|
|
441
|
+
`im.get_sticker_albums()` — 获取表情包专辑列表,返回 `List[StickerAlbum]`。
|
|
442
|
+
|
|
443
|
+
`await im.aget_sticker_albums()` — 异步获取。
|
|
444
|
+
|
|
445
|
+
`im.get_stickers(album_id)` — 获取指定专辑的贴纸列表,返回 `List[Sticker]`。
|
|
446
|
+
|
|
447
|
+
`await im.aget_stickers(album_id)` — 异步获取。
|
|
448
|
+
|
|
449
|
+
`im.search_stickers(name)` — 按关键词搜索贴纸,返回 `List[Sticker]`。
|
|
450
|
+
|
|
451
|
+
`await im.asearch_stickers(name)` — 异步搜索。
|
|
452
|
+
|
|
453
|
+
`im.get_custom_stickers()` — 获取当前用户自定义贴纸,返回 `List[Sticker]`。
|
|
454
|
+
|
|
455
|
+
`await im.aget_custom_stickers()` — 异步获取。
|
|
456
|
+
|
|
457
|
+
`im.add_custom_sticker(name, image_url, thumb_url, width=100, height=100)` — 添加自定义贴纸,返回 `self`。
|
|
458
|
+
|
|
459
|
+
`await im.aadd_custom_sticker(...)` — 异步添加。
|
|
460
|
+
|
|
461
|
+
`im.top_custom_sticker(sticker_id)` — 置顶自定义贴纸,返回 `self`。
|
|
462
|
+
|
|
463
|
+
`await im.atop_custom_sticker(sticker_id)` — 异步置顶。
|
|
464
|
+
|
|
465
|
+
`im.delete_custom_sticker(sticker_id)` — 删除自定义贴纸,返回 `self`。
|
|
466
|
+
|
|
467
|
+
`await im.adelete_custom_sticker(sticker_id)` — 异步删除。
|
|
468
|
+
|
|
469
|
+
---
|
|
470
|
+
|
|
471
|
+
## 消息监听
|
|
472
|
+
|
|
473
|
+
`im.on_message(handler)` — 注册消息处理器,`handler` 签名为 `(msg_data: Dict, is_group: bool) -> None`,支持同步和异步函数,返回 `self`。
|
|
474
|
+
|
|
475
|
+
`im.off_message(handler)` — 移除已注册的消息处理器,返回 `self`。
|
|
476
|
+
|
|
477
|
+
`@im.on_event("message")` — 装饰器方式注册 WebSocket 事件监听器,事件名可为 `"message"`、`"connected"`、`"disconnected"` 等。
|
|
478
|
+
|
|
479
|
+
`await im.listen()` — 阻塞式启动 WebSocket 监听,直到 `KeyboardInterrupt` 或协程取消。
|
|
480
|
+
|
|
481
|
+
`im.listen_sync()` — 同步阻塞式启动监听,内部调用 `asyncio.run`,直到 Ctrl+C 中断。
|
|
482
|
+
|
|
483
|
+
`await im.start_listening()` — 非阻塞启动监听,返回 `self`,可在启动后继续执行其他逻辑。
|
|
484
|
+
|
|
485
|
+
`await im.stop_listening()` — 停止 WebSocket 监听,返回 `self`。
|
|
486
|
+
|
|
487
|
+
---
|
|
488
|
+
|
|
489
|
+
## WebRTC 私聊通话(底层)
|
|
490
|
+
|
|
491
|
+
以下方法直接调用信令 API,适合手动管理通话流程。
|
|
492
|
+
|
|
493
|
+
`im.webrtc_setup(user_id, mode="video")` — 向对方发起通话建立请求,`mode` 为 `"voice"`/`"audio"`/`"video"`,返回 `Dict`。
|
|
494
|
+
|
|
495
|
+
`im.webrtc_accept(user_id, answer="")` — 接受来电,`answer` 为 SDP Answer 字符串或 JSON,返回 `Dict`。
|
|
496
|
+
|
|
497
|
+
`im.webrtc_reject(user_id)` — 拒绝来电,返回 `Dict`。
|
|
498
|
+
|
|
499
|
+
`im.webrtc_cancel(user_id)` — 主叫方取消通话,返回 `Dict`。
|
|
500
|
+
|
|
501
|
+
`im.webrtc_handup(user_id)` — 挂断通话,返回 `Dict`。
|
|
502
|
+
|
|
503
|
+
`im.webrtc_failed(user_id, reason="")` — 上报通话失败,返回 `Dict`。
|
|
504
|
+
|
|
505
|
+
`im.webrtc_offer(user_id, sdp)` — 发送 SDP Offer,返回 `Dict`。
|
|
506
|
+
|
|
507
|
+
`im.webrtc_answer(user_id, sdp)` — 发送 SDP Answer,返回 `Dict`。
|
|
508
|
+
|
|
509
|
+
`im.webrtc_send_candidate(user_id, candidate)` — 发送 ICE Candidate,返回 `Dict`。
|
|
510
|
+
|
|
511
|
+
`im.webrtc_heartbeat(user_id)` — 发送通话心跳保活,返回 `Dict`。
|
|
512
|
+
|
|
513
|
+
以上所有方法均有对应 `await im.awebrtc_*` 异步版本。
|
|
514
|
+
|
|
515
|
+
---
|
|
516
|
+
|
|
517
|
+
## WebRTC 群组通话(底层)
|
|
518
|
+
|
|
519
|
+
`im.webrtc_group_setup(group_id, user_infos=None)` — 发起群组通话,`user_infos` 为可选的被邀用户信息列表,返回 `Dict`。
|
|
520
|
+
|
|
521
|
+
`im.webrtc_group_accept(group_id)` — 接受群组通话,返回 `Dict`。
|
|
522
|
+
|
|
523
|
+
`im.webrtc_group_reject(group_id)` — 拒绝群组通话,返回 `Dict`。
|
|
524
|
+
|
|
525
|
+
`im.webrtc_group_join(group_id)` — 加入进行中的群组通话,返回 `Dict`。
|
|
526
|
+
|
|
527
|
+
`im.webrtc_group_invite(group_id, user_infos)` — 邀请成员加入通话,返回 `Dict`。
|
|
528
|
+
|
|
529
|
+
`im.webrtc_group_quit(group_id)` — 退出群组通话,返回 `Dict`。
|
|
530
|
+
|
|
531
|
+
`im.webrtc_group_cancel(group_id)` — 取消群组通话,返回 `Dict`。
|
|
532
|
+
|
|
533
|
+
`im.webrtc_group_failed(group_id, reason="")` — 上报群组通话失败,返回 `Dict`。
|
|
534
|
+
|
|
535
|
+
`im.webrtc_group_offer(group_id, user_id, offer)` — 向指定成员发送 SDP Offer,返回 `Dict`。
|
|
536
|
+
|
|
537
|
+
`im.webrtc_group_answer(group_id, user_id, answer)` — 向指定成员发送 SDP Answer,返回 `Dict`。
|
|
538
|
+
|
|
539
|
+
`im.webrtc_group_send_candidate(group_id, user_id, candidate)` — 向指定成员发送 ICE Candidate,返回 `Dict`。
|
|
540
|
+
|
|
541
|
+
`im.webrtc_group_device(group_id, is_camera=True, is_microphone=True, is_share_screen=False)` — 更新设备状态(摄像头/麦克风/屏幕共享),返回 `Dict`。
|
|
542
|
+
|
|
543
|
+
`im.webrtc_group_heartbeat(group_id)` — 群组通话心跳,返回 `Dict`。
|
|
544
|
+
|
|
545
|
+
`im.webrtc_group_info(group_id)` — 获取当前群组通话信息,返回 `Dict`。
|
|
546
|
+
|
|
547
|
+
以上所有方法均有对应 `await im.awebrtc_group_*` 异步版本。
|
|
548
|
+
|
|
549
|
+
---
|
|
550
|
+
|
|
551
|
+
## 高级通话接口
|
|
552
|
+
|
|
553
|
+
`im.create_call(user_id=None, group_id=None, mode=RTCMode.VIDEO, is_caller=True)` — 创建通话会话对象 `RTCCallSession`,`user_id` 和 `group_id` 二选一,同时指定或都不指定抛出 `ValidationError`,`mode` 支持 `RTCMode` 枚举或字符串 `"voice"`/`"video"`/`"audio"`。
|
|
554
|
+
|
|
555
|
+
`im.create_incoming_call(user_id=None, group_id=None, mode=RTCMode.VIDEO)` — 创建被叫方会话,等同于 `create_call(..., is_caller=False)`。
|
|
556
|
+
|
|
557
|
+
`im.active_calls` — 属性,返回当前活跃通话字典 `Dict[str, RTCCallSession]`,key 为 session_id。
|
|
558
|
+
|
|
559
|
+
---
|
|
560
|
+
|
|
561
|
+
## 验证码
|
|
562
|
+
|
|
563
|
+
`im.get_captcha_img()` — 获取图片验证码,返回 `CaptchaCode`(含 `id` 和 base64 图片)。
|
|
564
|
+
|
|
565
|
+
`await im.aget_captcha_img()` — 异步获取。
|
|
566
|
+
|
|
567
|
+
`im.verify_captcha_img(captcha_id, code)` — 验证图片验证码,返回 `bool`。
|
|
568
|
+
|
|
569
|
+
`await im.averify_captcha_img(captcha_id, code)` — 异步验证。
|
|
570
|
+
|
|
571
|
+
`im.send_sms_captcha(phone, captcha_id=None, captcha_code=None)` — 发送短信验证码,若平台要求图片验证则需提供 `captcha_id` 和 `captcha_code`,返回 `Dict`。
|
|
572
|
+
|
|
573
|
+
`await im.asend_sms_captcha(...)` — 异步发送。
|
|
574
|
+
|
|
575
|
+
`im.verify_sms_captcha(phone, code)` — 验证短信验证码,返回 `bool`。
|
|
576
|
+
|
|
577
|
+
`await im.averify_sms_captcha(phone, code)` — 异步验证。
|
|
578
|
+
|
|
579
|
+
`im.send_email_captcha(email)` — 发送邮件验证码,返回 `Dict`。
|
|
580
|
+
|
|
581
|
+
`await im.asend_email_captcha(email)` — 异步发送。
|
|
582
|
+
|
|
583
|
+
`im.verify_email_captcha(email, code)` — 验证邮件验证码,返回 `bool`。
|
|
584
|
+
|
|
585
|
+
`await im.averify_email_captcha(email, code)` — 异步验证。
|
|
586
|
+
|
|
587
|
+
---
|
|
588
|
+
|
|
589
|
+
## 投诉举报
|
|
590
|
+
|
|
591
|
+
`im.initiate_complaint(complaint_type, target_id, target_type, description, evidence=None, target_name=None)` — 发起投诉,`complaint_type` 为整数类型码,`target_type` 为 `"user"`/`"group"`/`"message"`,`evidence` 为证据图片 URL 列表,返回 `Dict`。
|
|
592
|
+
|
|
593
|
+
`await im.ainitiate_complaint(...)` — 异步发起。
|
|
594
|
+
|
|
595
|
+
---
|
|
596
|
+
|
|
597
|
+
## 系统配置
|
|
598
|
+
|
|
599
|
+
`im.get_system_config()` — 获取系统配置(注册方式、WebRTC 配置等),无需登录,返回 `SystemConfig`。
|
|
600
|
+
|
|
601
|
+
`await im.aget_system_config()` — 异步获取。
|
|
602
|
+
|
|
603
|
+
---
|
|
604
|
+
|
|
605
|
+
## 便捷函数(直接使用,无需 client)
|
|
606
|
+
|
|
607
|
+
`quick_login(username, password, base_url=None, debug=False)` — 快速创建并登录 `BoxIM` 实例,返回已登录实例。**注意:此函数不使用全局单例,多次调用会创建多个实例,建议生产环境使用 `initialize_im_client`。**
|
|
608
|
+
|
|
609
|
+
`await aquick_login(username, password, base_url=None, debug=False)` — 异步快速登录。
|
|
610
|
+
|
|
611
|
+
---
|
|
612
|
+
|
|
613
|
+
## 资源管理
|
|
614
|
+
|
|
615
|
+
`im.close()` — 同步关闭,释放 HTTP 连接。
|
|
616
|
+
|
|
617
|
+
`await im.aclose()` — 异步关闭,结束所有活跃通话、停止 WebSocket、释放全部资源。
|
|
618
|
+
|
|
619
|
+
同步上下文管理器 `with BoxIM() as im` 和异步上下文管理器 `async with BoxIM() as im` 在退出时自动调用对应关闭方法。
|
|
620
|
+
|
|
621
|
+
# BoxIM SDK 方法速查表
|
|
622
|
+
|
|
623
|
+
## 认证管理 (Authentication)
|
|
624
|
+
| 方法 | 说明 |
|
|
625
|
+
|------|------|
|
|
626
|
+
| `login()` / `alogin()` | 用户名密码登录 |
|
|
627
|
+
| `register()` / `aregister()` | 用户注册(支持用户名/手机/邮箱) |
|
|
628
|
+
| `refresh_token()` / `arefresh_token()` | 刷新访问令牌 |
|
|
629
|
+
| `modify_password()` / `amodify_password()` | 修改密码 |
|
|
630
|
+
| `reset_password()` / `areset_password()` | 重置密码(验证码) |
|
|
631
|
+
| `generate_qr_login()` / `agenerate_qr_login()` | 生成二维码登录信息 |
|
|
632
|
+
| `qr_login_wait()` / `aqr_login_wait()` | 轮询等待二维码扫码登录 |
|
|
633
|
+
|
|
634
|
+
## 用户信息 (User)
|
|
635
|
+
| 方法 | 说明 |
|
|
636
|
+
|------|------|
|
|
637
|
+
| `get_me()` / `aget_me()` | 获取当前用户信息 |
|
|
638
|
+
| `get_user()` / `aget_user()` | 根据ID获取用户信息 |
|
|
639
|
+
| `search_users()` / `asearch_users()` | 搜索用户 |
|
|
640
|
+
| `update_profile()` / `aupdate_profile()` | 更新个人资料 |
|
|
641
|
+
| `get_online_terminals()` / `aget_online_terminals()` | 获取用户在线终端 |
|
|
642
|
+
|
|
643
|
+
## 好友管理 (Friend)
|
|
644
|
+
| 方法 | 说明 |
|
|
645
|
+
|------|------|
|
|
646
|
+
| `get_friends()` / `aget_friends()` | 获取好友列表 |
|
|
647
|
+
| `get_friend_info()` / `aget_friend_info()` | 获取指定好友信息 |
|
|
648
|
+
| `add_friend()` / `aadd_friend()` | 发送好友请求 |
|
|
649
|
+
| `delete_friend()` / `adelete_friend()` | 删除好友 |
|
|
650
|
+
| `set_friend_dnd()` / `aset_friend_dnd()` | 设置免打扰 |
|
|
651
|
+
| `set_friend_top()` / `aset_friend_top()` | 设置置顶 |
|
|
652
|
+
| `update_friend_remark()` / `aupdate_friend_remark()` | 更新备注名 |
|
|
653
|
+
|
|
654
|
+
## 好友请求 (Friend Request)
|
|
655
|
+
| 方法 | 说明 |
|
|
656
|
+
|------|------|
|
|
657
|
+
| `get_friend_requests()` / `aget_friend_requests()` | 获取好友请求列表 |
|
|
658
|
+
| `accept_friend_request()` / `aaccept_friend_request()` | 接受好友请求 |
|
|
659
|
+
| `reject_friend_request()` / `areject_friend_request()` | 拒绝好友请求 |
|
|
660
|
+
| `recall_friend_request()` / `arecall_friend_request()` | 撤回好友请求 |
|
|
661
|
+
|
|
662
|
+
## 黑名单 (Blacklist)
|
|
663
|
+
| 方法 | 说明 |
|
|
664
|
+
|------|------|
|
|
665
|
+
| `add_to_blacklist()` / `aadd_to_blacklist()` | 加入黑名单 |
|
|
666
|
+
| `remove_from_blacklist()` / `aremove_from_blacklist()` | 移出黑名单 |
|
|
667
|
+
| `get_blacklist()` / `aget_blacklist()` | 获取黑名单列表 |
|
|
668
|
+
|
|
669
|
+
## 群组管理 (Group)
|
|
670
|
+
| 方法 | 说明 |
|
|
671
|
+
|------|------|
|
|
672
|
+
| `get_groups()` / `aget_groups()` | 获取群组列表 |
|
|
673
|
+
| `create_group()` / `acreate_group()` | 创建群组 |
|
|
674
|
+
| `get_group_info()` / `aget_group_info()` | 获取群组信息 |
|
|
675
|
+
| `modify_group()` / `amodify_group()` | 修改群组信息 |
|
|
676
|
+
| `delete_group()` / `adelete_group()` | 解散群组 |
|
|
677
|
+
| `quit_group()` / `aquit_group()` | 退出群组 |
|
|
678
|
+
| `join_group()` / `ajoin_group()` | 申请加入群组 |
|
|
679
|
+
| `get_group_members()` / `aget_group_members()` | 获取成员列表 |
|
|
680
|
+
| `get_group_online_members()` / `aget_group_online_members()` | 获取在线成员 |
|
|
681
|
+
| `invite_to_group()` / `ainvite_to_group()` | 邀请成员 |
|
|
682
|
+
| `remove_group_members()` / `aremove_group_members()` | 移出成员 |
|
|
683
|
+
|
|
684
|
+
## 群组设置 (Group Settings)
|
|
685
|
+
| 方法 | 说明 |
|
|
686
|
+
|------|------|
|
|
687
|
+
| `set_group_dnd()` / `aset_group_dnd()` | 免打扰设置 |
|
|
688
|
+
| `set_group_top()` / `aset_group_top()` | 置顶设置 |
|
|
689
|
+
| `set_group_muted()` / `aset_group_muted()` | 全员禁言 |
|
|
690
|
+
| `set_group_allow_invite()` / `aset_group_allow_invite()` | 允许邀请设置 |
|
|
691
|
+
| `set_group_allow_share_card()` / `aset_group_allow_share_card()` | 允许分享名片 |
|
|
692
|
+
| `set_group_member_muted()` / `aset_group_member_muted()` | 成员禁言 |
|
|
693
|
+
| `add_group_manager()` / `aadd_group_manager()` | 添加管理员 |
|
|
694
|
+
| `remove_group_manager()` / `aremove_group_manager()` | 移除管理员 |
|
|
695
|
+
| `set_group_top_message()` / `aset_group_top_message()` | 设置置顶消息 |
|
|
696
|
+
| `remove_group_top_message()` / `aremove_group_top_message()` | 移除置顶消息 |
|
|
697
|
+
|
|
698
|
+
## 私聊消息 (Private Message)
|
|
699
|
+
| 方法 | 说明 |
|
|
700
|
+
|------|------|
|
|
701
|
+
| `send_text()` / `asend_text()` | 发送文本 |
|
|
702
|
+
| `send_image()` / `asend_image()` | 发送图片 |
|
|
703
|
+
| `send_file()` / `asend_file()` | 发送文件 |
|
|
704
|
+
| `send_voice()` / `asend_voice()` | 发送语音 |
|
|
705
|
+
| `send_video()` / `asend_video()` | 发送视频 |
|
|
706
|
+
| `send_sticker()` / `asend_sticker()` | 发送贴纸 |
|
|
707
|
+
| `send_user_card()` / `asend_user_card()` | 发送个人名片 |
|
|
708
|
+
| `send_group_card()` / `asend_group_card()` | 发送群名片 |
|
|
709
|
+
| `recall_private_message()` / `arecall_private_message()` | 撤回消息 |
|
|
710
|
+
| `mark_private_read()` / `amark_private_read()` | 标记已读 |
|
|
711
|
+
| `load_private_offline_message()` / `aload_private_offline_message()` | 拉取离线消息 |
|
|
712
|
+
| `get_private_message_history()` / `aget_private_message_history()` | 获取历史记录 |
|
|
713
|
+
| `delete_private_messages()` / `adelete_private_messages()` | 删除消息 |
|
|
714
|
+
| `delete_private_chat()` / `adelete_private_chat()` | 删除会话 |
|
|
715
|
+
|
|
716
|
+
## 群聊消息 (Group Message)
|
|
717
|
+
| 方法 | 说明 |
|
|
718
|
+
|------|------|
|
|
719
|
+
| `send_group_text()` / `asend_group_text()` | 发送文本(支持@) |
|
|
720
|
+
| `send_group_image()` / `asend_group_image()` | 发送图片 |
|
|
721
|
+
| `send_group_file()` / `asend_group_file()` | 发送文件 |
|
|
722
|
+
| `send_group_voice()` / `asend_group_voice()` | 发送语音 |
|
|
723
|
+
| `send_group_video()` / `asend_group_video()` | 发送视频 |
|
|
724
|
+
| `send_group_sticker()` / `asend_group_sticker()` | 发送贴纸 |
|
|
725
|
+
| `recall_group_message()` / `arecall_group_message()` | 撤回消息 |
|
|
726
|
+
| `mark_group_read()` / `amark_group_read()` | 标记已读 |
|
|
727
|
+
| `load_group_offline_message()` / `aload_group_offline_message()` | 拉取离线消息 |
|
|
728
|
+
| `get_group_message_readers()` / `aget_group_message_readers()` | 获取已读用户 |
|
|
729
|
+
| `get_group_message_history()` / `aget_group_message_history()` | 获取历史记录 |
|
|
730
|
+
|
|
731
|
+
## 系统消息 (System Message)
|
|
732
|
+
| 方法 | 说明 |
|
|
733
|
+
|------|------|
|
|
734
|
+
| `load_system_offline_message()` / `aload_system_offline_message()` | 拉取系统离线消息 |
|
|
735
|
+
| `mark_system_read()` / `amark_system_read()` | 标记已读 |
|
|
736
|
+
| `get_system_message_content()` / `aget_system_message_content()` | 获取消息详情 |
|
|
737
|
+
|
|
738
|
+
## 贴纸系统 (Sticker)
|
|
739
|
+
| 方法 | 说明 |
|
|
740
|
+
|------|------|
|
|
741
|
+
| `get_sticker_albums()` / `aget_sticker_albums()` | 获取表情包列表 |
|
|
742
|
+
| `get_stickers()` / `aget_stickers()` | 获取贴纸列表 |
|
|
743
|
+
| `search_stickers()` / `asearch_stickers()` | 搜索贴纸 |
|
|
744
|
+
| `get_custom_stickers()` / `aget_custom_stickers()` | 获取自定义贴纸 |
|
|
745
|
+
| `add_custom_sticker()` / `aadd_custom_sticker()` | 添加自定义贴纸 |
|
|
746
|
+
| `top_custom_sticker()` / `atop_custom_sticker()` | 置顶自定义贴纸 |
|
|
747
|
+
| `delete_custom_sticker()` / `adelete_custom_sticker()` | 删除自定义贴纸 |
|
|
748
|
+
|
|
749
|
+
## WebRTC 私聊通话 (Private Call)
|
|
750
|
+
| 方法 | 说明 |
|
|
751
|
+
|------|------|
|
|
752
|
+
| `webrtc_setup()` / `awebrtc_setup()` | 发起通话建立 |
|
|
753
|
+
| `webrtc_accept()` / `awebrtc_accept()` | 接受通话 |
|
|
754
|
+
| `webrtc_reject()` / `awebrtc_reject()` | 拒绝通话 |
|
|
755
|
+
| `webrtc_cancel()` / `awebrtc_cancel()` | 取消通话 |
|
|
756
|
+
| `webrtc_handup()` / `awebrtc_handup()` | 挂断通话 |
|
|
757
|
+
| `webrtc_offer()` / `awebrtc_offer()` | 发送SDP Offer |
|
|
758
|
+
| `webrtc_answer()` / `awebrtc_answer()` | 发送SDP Answer |
|
|
759
|
+
| `webrtc_send_candidate()` / `awebrtc_send_candidate()` | 发送ICE Candidate |
|
|
760
|
+
| `webrtc_heartbeat()` / `awebrtc_heartbeat()` | 发送心跳 |
|
|
761
|
+
|
|
762
|
+
## WebRTC 群组通话 (Group Call)
|
|
763
|
+
| 方法 | 说明 |
|
|
764
|
+
|------|------|
|
|
765
|
+
| `webrtc_group_setup()` / `awebrtc_group_setup()` | 发起群组通话 |
|
|
766
|
+
| `webrtc_group_accept()` / `awebrtc_group_accept()` | 接受通话 |
|
|
767
|
+
| `webrtc_group_reject()` / `awebrtc_group_reject()` | 拒绝通话 |
|
|
768
|
+
| `webrtc_group_join()` / `awebrtc_group_join()` | 加入通话 |
|
|
769
|
+
| `webrtc_group_invite()` / `awebrtc_group_invite()` | 邀请成员 |
|
|
770
|
+
| `webrtc_group_quit()` / `awebrtc_group_quit()` | 退出通话 |
|
|
771
|
+
| `webrtc_group_cancel()` / `awebrtc_group_cancel()` | 取消通话 |
|
|
772
|
+
| `webrtc_group_offer()` / `awebrtc_group_offer()` | 发送Offer |
|
|
773
|
+
| `webrtc_group_answer()` / `awebrtc_group_answer()` | 发送Answer |
|
|
774
|
+
| `webrtc_group_send_candidate()` / `awebrtc_group_send_candidate()` | 发送Candidate |
|
|
775
|
+
| `webrtc_group_device()` / `awebrtc_group_device()` | 更新设备状态 |
|
|
776
|
+
| `webrtc_group_heartbeat()` / `awebrtc_group_heartbeat()` | 发送心跳 |
|
|
777
|
+
| `webrtc_group_info()` / `awebrtc_group_info()` | 获取通话信息 |
|
|
778
|
+
|
|
779
|
+
## 高级通话接口 (Advanced Call)
|
|
780
|
+
| 方法 | 说明 |
|
|
781
|
+
|------|------|
|
|
782
|
+
| `create_call()` | 创建通话会话(高级封装) |
|
|
783
|
+
| `create_incoming_call()` | 创建来电会话 |
|
|
784
|
+
|
|
785
|
+
## 验证码 (Captcha)
|
|
786
|
+
| 方法 | 说明 |
|
|
787
|
+
|------|------|
|
|
788
|
+
| `get_captcha_img()` / `aget_captcha_img()` | 获取图片验证码 |
|
|
789
|
+
| `verify_captcha_img()` / `averify_captcha_img()` | 验证图片验证码 |
|
|
790
|
+
| `send_sms_captcha()` / `asend_sms_captcha()` | 发送短信验证码 |
|
|
791
|
+
| `verify_sms_captcha()` / `averify_sms_captcha()` | 验证短信验证码 |
|
|
792
|
+
| `send_email_captcha()` / `asend_email_captcha()` | 发送邮件验证码 |
|
|
793
|
+
| `verify_email_captcha()` / `averify_email_captcha()` | 验证邮件验证码 |
|
|
794
|
+
|
|
795
|
+
## 投诉举报 (Complaint)
|
|
796
|
+
| 方法 | 说明 |
|
|
797
|
+
|------|------|
|
|
798
|
+
| `initiate_complaint()` / `ainitiate_complaint()` | 发起投诉举报 |
|
|
799
|
+
|
|
800
|
+
## 系统配置 (System Config)
|
|
801
|
+
| 方法 | 说明 |
|
|
802
|
+
|------|------|
|
|
803
|
+
| `get_system_config()` / `aget_system_config()` | 获取系统配置 |
|
|
804
|
+
|
|
805
|
+
## 消息监听 (Message Listener)
|
|
806
|
+
| 方法 | 说明 |
|
|
807
|
+
|------|------|
|
|
808
|
+
| `on_message()` | 注册消息处理器 |
|
|
809
|
+
| `off_message()` | 移除消息处理器 |
|
|
810
|
+
| `on_event()` | 事件装饰器 |
|
|
811
|
+
| `listen()` / `listen_sync()` | 开始监听(阻塞) |
|
|
812
|
+
| `start_listening()` / `stop_listening()` | 非阻塞启停监听 |
|
|
813
|
+
|
|
814
|
+
## 便捷函数 (Helpers)
|
|
815
|
+
| 函数 | 说明 |
|
|
816
|
+
|------|------|
|
|
817
|
+
| `quick_login()` | 同步快速登录 |
|
|
818
|
+
| `aquick_login()` | 异步快速登录 |
|
|
819
|
+
|
|
820
|
+
---
|
|
821
|
+
|
|
822
|
+
**属性访问**:`.me`、`.friends`、`.groups`、`.friend_requests`、`.config`、`.http`、`.ws`、`.uploader`、`.container`、`.token_store`、`.active_calls`
|