shmily

sdk upgrade

Too many changes to show.

To preserve performance only 12 of 12+ files are displayed.

1 Pod::Spec.new do |s| 1 Pod::Spec.new do |s|
2 s.name = "HHVDoctorSDK" 2 s.name = "HHVDoctorSDK"
3 - s.version = "2.5.6.0312.1627" 3 + s.version = "2.5.6.0312.1644"
4 s.summary = "和缓视频医生 SDK" 4 s.summary = "和缓视频医生 SDK"
5 5
6 s.description = <<-DESC 6 s.description = <<-DESC
1 -//  
2 -// ImSDK.h  
3 -// ImSDK  
4 -//  
5 -// Created by bodeng on 24/3/15.  
6 -// Copyright (c) 2015 tencent. All rights reserved.  
7 -//  
8 -  
9 -#ifndef ImSDK_ImSDK_h  
10 -#define ImSDK_ImSDK_h  
11 -  
12 -#import "TIMComm.h"  
13 -#import "TIMManager.h"  
14 -#import "TIMMessage.h"  
15 -#import "TIMConversation.h"  
16 -#import "TIMGroupManager.h"  
17 -#import "TIMCallback.h"  
18 -#import "TIMFriendshipManager.h"  
19 -#import "TIMErrorCode.h"  
20 -#import "TIMConversation+MsgExt.h"  
21 -#import "TIMManager+MsgExt.h"  
22 -#endif  
1 -//  
2 -// TIMCallback.h  
3 -// ImSDK  
4 -//  
5 -// Created by bodeng on 30/3/15.  
6 -// Copyright (c) 2015 tencent. All rights reserved.  
7 -//  
8 -  
9 -#ifndef ImSDK_TIMCallback_h  
10 -#define ImSDK_TIMCallback_h  
11 -  
12 -#import "TIMComm.h"  
13 -  
14 -@class TIMMessage;  
15 -@class TIMGroupTipsElem;  
16 -@class TIMGroupInfo;  
17 -@class TIMSNSChangeInfo;  
18 -@class TIMFriendPendencyInfo;  
19 -  
20 -/**  
21 - * 连接通知回调  
22 - */  
23 -@protocol TIMConnListener <NSObject>  
24 -@optional  
25 -  
26 -/**  
27 - * 网络连接成功  
28 - */  
29 -- (void)onConnSucc;  
30 -  
31 -/**  
32 - * 网络连接失败  
33 - *  
34 - * @param code 错误码  
35 - * @param err 错误描述  
36 - */  
37 -- (void)onConnFailed:(int)code err:(NSString*)err;  
38 -  
39 -/**  
40 - * 网络连接断开(断线只是通知用户,不需要重新登录,重连以后会自动上线)  
41 - *  
42 - * @param code 错误码  
43 - * @param err 错误描述  
44 - */  
45 -- (void)onDisconnect:(int)code err:(NSString*)err;  
46 -  
47 -  
48 -/**  
49 - * 连接中  
50 - */  
51 -- (void)onConnecting;  
52 -  
53 -@end  
54 -  
55 -  
56 -/**  
57 - * 用户在线状态通知  
58 - */  
59 -@protocol TIMUserStatusListener <NSObject>  
60 -@optional  
61 -/**  
62 - * 踢下线通知  
63 - */  
64 -- (void)onForceOffline;  
65 -  
66 -/**  
67 - * 断线重连失败  
68 - */  
69 -- (void)onReConnFailed:(int)code err:(NSString*)err;  
70 -  
71 -/**  
72 - * 用户登录的userSig过期(用户需要重新获取userSig后登录)  
73 - */  
74 -- (void)onUserSigExpired;  
75 -@end  
76 -  
77 -/**  
78 - * 页面刷新接口(如有需要未读计数刷新,会话列表刷新等)  
79 - */  
80 -@protocol TIMRefreshListener <NSObject>  
81 -@optional  
82 -/**  
83 - * 刷新会话  
84 - */  
85 -- (void)onRefresh;  
86 -  
87 -/**  
88 - * 刷新部分会话  
89 - *  
90 - * @param conversations 会话(TIMConversation*)列表  
91 - */  
92 -- (void)onRefreshConversations:(NSArray<TIMConversation *>*)conversations;  
93 -@end  
94 -  
95 -/**  
96 - * 消息回调  
97 - */  
98 -@protocol TIMMessageListener <NSObject>  
99 -@optional  
100 -/**  
101 - * 新消息回调通知  
102 - *  
103 - * @param msgs 新消息列表,TIMMessage 类型数组  
104 - */  
105 -- (void)onNewMessage:(NSArray*)msgs;  
106 -@end  
107 -  
108 -@protocol TIMMessageReceiptListener <NSObject>  
109 -@optional  
110 -/**  
111 - * 收到了已读回执  
112 - *  
113 - * @param receipts 已读回执(TIMMessageReceipt*)列表  
114 - */  
115 -- (void) onRecvMessageReceipts:(NSArray*)receipts;  
116 -@end  
117 -  
118 -/**  
119 - * 消息修改回调  
120 - */  
121 -@protocol TIMMessageUpdateListener <NSObject>  
122 -@optional  
123 -/**  
124 - * 消息修改通知  
125 - *  
126 - * @param msgs 修改的消息列表,TIMMessage 类型数组  
127 - */  
128 -- (void)onMessageUpdate:(NSArray*) msgs;  
129 -@end  
130 -  
131 -  
132 -@protocol TIMMessageRevokeListener <NSObject>  
133 -@optional  
134 -/**  
135 - * 消息撤回通知  
136 - *  
137 - * @param locator 被撤回消息的标识  
138 - */  
139 -- (void)onRevokeMessage:(TIMMessageLocator*)locator;  
140 -  
141 -@end  
142 -  
143 -/**  
144 - * 上传进度回调  
145 - */  
146 -@protocol TIMUploadProgressListener <NSObject>  
147 -@optional  
148 -/**  
149 - * 上传进度回调  
150 - *  
151 - * @param msg 正在上传的消息  
152 - * @param elemidx 正在上传的elem的索引  
153 - * @param taskid 任务id  
154 - * @param progress 上传进度  
155 - */  
156 -- (void)onUploadProgressCallback:(TIMMessage*)msg elemidx:(uint32_t)elemidx taskid:(uint32_t)taskid progress:(uint32_t)progress;  
157 -@end  
158 -  
159 -/**  
160 - * 群事件通知回调  
161 - */  
162 -@protocol TIMGroupEventListener <NSObject>  
163 -@optional  
164 -/**  
165 - * 群tips回调  
166 - *  
167 - * @param elem 群tips消息  
168 - */  
169 -- (void)onGroupTipsEvent:(TIMGroupTipsElem*)elem;  
170 -@end  
171 -  
172 -/**  
173 - * 好友代理事件回调  
174 - */  
175 -@protocol TIMFriendshipListener <NSObject>  
176 -@optional  
177 -  
178 -/**  
179 - * 添加好友通知  
180 - *  
181 - * @param users 好友列表(NSString*)  
182 - */  
183 -- (void)onAddFriends:(NSArray*)users;  
184 -  
185 -/**  
186 - * 删除好友通知  
187 - *  
188 - * @param identifiers 用户id列表(NSString*)  
189 - */  
190 -- (void)onDelFriends:(NSArray*)identifiers;  
191 -  
192 -/**  
193 - * 好友资料更新通知  
194 - *  
195 - * @param profiles 资料列表(TIMSNSChangeInfo *)  
196 - */  
197 -- (void)onFriendProfileUpdate:(NSArray<TIMSNSChangeInfo *> *)profiles;  
198 -  
199 -/**  
200 - * 好友申请通知  
201 - *  
202 - * @param reqs 好友申请者id列表(TIMFriendPendencyInfo *)  
203 - */  
204 -- (void)onAddFriendReqs:(NSArray<TIMFriendPendencyInfo *> *)reqs;  
205 -  
206 -@end  
207 -  
208 -#endif  
1 -//  
2 -// TIMComm.h  
3 -// ImSDK  
4 -//  
5 -// Created by bodeng on 29/1/15.  
6 -// Copyright (c) 2015 tencent. All rights reserved.  
7 -//  
8 -  
9 -#ifndef ImSDK_TIMComm_h  
10 -#define ImSDK_TIMComm_h  
11 -  
12 -#import <Foundation/Foundation.h>  
13 -  
14 -#define ERR_IMSDK_KICKED_BY_OTHERS 6208  
15 -  
16 -@protocol TIMConnListener;  
17 -@protocol TIMUserStatusListener;  
18 -@protocol TIMRefreshListener;  
19 -@protocol TIMMessageReceiptListener;  
20 -@protocol TIMMessageUpdateListener;  
21 -@protocol TIMMessageRevokeListener;  
22 -@protocol TIMUploadProgressListener;  
23 -@protocol TIMGroupEventListener;  
24 -@protocol TIMFriendshipListener;  
25 -//@protocol TIMGroupListener;  
26 -@class TIMMessage;  
27 -@class TIMImageElem;  
28 -@class TIMConversation;  
29 -@class TIMAPNSConfig;  
30 -@class TIMUserProfile;  
31 -@class TIMFriend;  
32 -@class TIMGroupInfoOption;  
33 -@class TIMGroupMemberInfoOption;  
34 -@class TIMFriendProfileOption;  
35 -@class TIMFriendResult;  
36 -@class TIMCheckFriendResult;  
37 -@class TIMGroupPendencyMeta;  
38 -@class TIMCreateGroupMemberInfo;  
39 -@class TIMSendToUsersDetailInfo;  
40 -@class TIMGroupInfo;  
41 -@class TIMGroupInfoResult;  
42 -@class TIMGroupMemberInfo;  
43 -@class TIMGroupPendencyItem;  
44 -  
45 -#pragma mark - 枚举类型  
46 -  
47 -/**  
48 - * 网络连接状态  
49 - */  
50 -typedef NS_ENUM(NSInteger, TIMNetworkStatus) {  
51 - /**  
52 - * 已连接  
53 - */  
54 - TIM_NETWORK_STATUS_CONNECTED = 1,  
55 - /**  
56 - * 链接断开  
57 - */  
58 - TIM_NETWORK_STATUS_DISCONNECTED = 2,  
59 -};  
60 -  
61 -  
62 -/**  
63 - * 日志级别  
64 - */  
65 -typedef NS_ENUM(NSInteger, TIMLogLevel) {  
66 - /**  
67 - * 不输出任何 sdk log  
68 - */  
69 - TIM_LOG_NONE = 0,  
70 - /**  
71 - * 输出 DEBUG,INFO,WARNING,ERROR 级别的 log  
72 - */  
73 - TIM_LOG_DEBUG = 3,  
74 - /**  
75 - * 输出 INFO,WARNING,ERROR 级别的 log  
76 - */  
77 - TIM_LOG_INFO = 4,  
78 - /**  
79 - * 输出 WARNING,ERROR 级别的 log  
80 - */  
81 - TIM_LOG_WARN = 5,  
82 - /**  
83 - * 输出 ERROR 级别的 log  
84 - */  
85 - TIM_LOG_ERROR = 6,  
86 -};  
87 -  
88 -/**  
89 - * 会话类型:  
90 - * C2C 双人聊天  
91 - * GROUP 群聊  
92 - */  
93 -typedef NS_ENUM(NSInteger, TIMConversationType) {  
94 - /**  
95 - * C2C 类型  
96 - */  
97 - TIM_C2C = 1,  
98 -  
99 - /**  
100 - * 群聊 类型  
101 - */  
102 - TIM_GROUP = 2,  
103 -  
104 - /**  
105 - * 系统消息  
106 - */  
107 - TIM_SYSTEM = 3,  
108 -};  
109 -  
110 -/**  
111 - * 消息状态  
112 - */  
113 -typedef NS_ENUM(NSInteger, TIMMessageStatus){  
114 - /**  
115 - * 消息发送中  
116 - */  
117 - TIM_MSG_STATUS_SENDING = 1,  
118 - /**  
119 - * 消息发送成功  
120 - */  
121 - TIM_MSG_STATUS_SEND_SUCC = 2,  
122 - /**  
123 - * 消息发送失败  
124 - */  
125 - TIM_MSG_STATUS_SEND_FAIL = 3,  
126 - /**  
127 - * 消息被删除  
128 - */  
129 - TIM_MSG_STATUS_HAS_DELETED = 4,  
130 - /**  
131 - * 导入到本地的消息  
132 - */  
133 - TIM_MSG_STATUS_LOCAL_STORED = 5,  
134 - /**  
135 - * 被撤销的消息  
136 - */  
137 - TIM_MSG_STATUS_LOCAL_REVOKED = 6,  
138 -};  
139 -  
140 -/**  
141 - * 消息优先级标识  
142 - */  
143 -typedef NS_ENUM(NSInteger, TIMMessagePriority) {  
144 - /**  
145 - * 高优先级,一般为红包或者礼物消息  
146 - */  
147 - TIM_MSG_PRIORITY_HIGH = 1,  
148 - /**  
149 - * 普通优先级,普通消息  
150 - */  
151 - TIM_MSG_PRIORITY_NORMAL = 2,  
152 - /**  
153 - * 低优先级,一般为点赞消息  
154 - */  
155 - TIM_MSG_PRIORITY_LOW = 3,  
156 - /**  
157 - * 最低优先级,一般为后台下发的成员进退群通知  
158 - */  
159 - TIM_MSG_PRIORITY_LOWEST = 4,  
160 -};  
161 -  
162 -/**  
163 - * 图片压缩选项  
164 - */  
165 -typedef NS_ENUM(NSInteger, TIM_IMAGE_COMPRESS_TYPE){  
166 - /**  
167 - * 原图(不压缩)  
168 - */  
169 - TIM_IMAGE_COMPRESS_ORIGIN = 0x00,  
170 - /**  
171 - * 高压缩率:图片较小,默认值  
172 - */  
173 - TIM_IMAGE_COMPRESS_HIGH = 0x01,  
174 - /**  
175 - * 低压缩:高清图发送(图片较大)  
176 - */  
177 - TIM_IMAGE_COMPRESS_LOW = 0x02,  
178 -};  
179 -  
180 -/**  
181 - * 图片类型  
182 - */  
183 -typedef NS_ENUM(NSInteger, TIM_IMAGE_TYPE){  
184 - /**  
185 - * 原图  
186 - */  
187 - TIM_IMAGE_TYPE_ORIGIN = 0x01,  
188 - /**  
189 - * 缩略图  
190 - */  
191 - TIM_IMAGE_TYPE_THUMB = 0x02,  
192 - /**  
193 - * 大图  
194 - */  
195 - TIM_IMAGE_TYPE_LARGE = 0x04,  
196 -};  
197 -  
198 -/**  
199 - * 图片格式  
200 - */  
201 -typedef NS_ENUM(NSInteger, TIM_IMAGE_FORMAT){  
202 - /**  
203 - * JPG 格式  
204 - */  
205 - TIM_IMAGE_FORMAT_JPG = 0x1,  
206 - /**  
207 - * GIF 格式  
208 - */  
209 - TIM_IMAGE_FORMAT_GIF = 0x2,  
210 - /**  
211 - * PNG 格式  
212 - */  
213 - TIM_IMAGE_FORMAT_PNG = 0x3,  
214 - /**  
215 - * BMP 格式  
216 - */  
217 - TIM_IMAGE_FORMAT_BMP = 0x4,  
218 - /**  
219 - * 未知格式  
220 - */  
221 - TIM_IMAGE_FORMAT_UNKNOWN = 0xff,  
222 -};  
223 -  
224 -/**  
225 - * 登录状态  
226 - */  
227 -typedef NS_ENUM(NSInteger, TIMLoginStatus) {  
228 - /**  
229 - * 已登录  
230 - */  
231 - TIM_STATUS_LOGINED = 1,  
232 -  
233 - /**  
234 - * 登录中  
235 - */  
236 - TIM_STATUS_LOGINING = 2,  
237 -  
238 - /**  
239 - * 无登录  
240 - */  
241 - TIM_STATUS_LOGOUT = 3,  
242 -};  
243 -  
244 -/**  
245 - * 推送规则  
246 - */  
247 -typedef NS_ENUM(NSInteger, TIMOfflinePushFlag) {  
248 - /**  
249 - * 按照默认规则进行推送  
250 - */  
251 - TIM_OFFLINE_PUSH_DEFAULT = 0,  
252 - /**  
253 - * 不进行推送  
254 - */  
255 - TIM_OFFLINE_PUSH_NO_PUSH = 1,  
256 -};  
257 -  
258 -/**  
259 - * 安卓离线推送模式  
260 - */  
261 -typedef NS_ENUM(NSInteger, TIMAndroidOfflinePushNotifyMode) {  
262 - /**  
263 - * 通知栏消息  
264 - */  
265 - TIM_ANDROID_OFFLINE_PUSH_NOTIFY_MODE_NOTIFICATION = 0x00,  
266 - /**  
267 - * 不弹窗,由应用自行处理  
268 - */  
269 - TIM_ANDROID_OFFLINE_PUSH_NOTIFY_MODE_CUSTOM = 0x01,  
270 -};  
271 -  
272 -/**  
273 - * 群组成员是否可见  
274 - */  
275 -typedef NS_ENUM(NSInteger, TIMGroupMemberVisibleType) {  
276 - /**  
277 - * 未知  
278 - */  
279 - TIM_GROUP_MEMBER_VISIBLE_UNKNOWN = 0x00,  
280 - /**  
281 - * 群组成员不可见  
282 - */  
283 - TIM_GROUP_MEMBER_VISIBLE_NO = 0x01,  
284 - /**  
285 - * 群组成员可见  
286 - */  
287 - TIM_GROUP_MEMBER_VISIBLE_YES = 0x02,  
288 -};  
289 -  
290 -/**  
291 - * 群组是否能被搜到  
292 - */  
293 -typedef NS_ENUM(NSInteger, TIMGroupSearchableType) {  
294 - /**  
295 - * 未知  
296 - */  
297 - TIM_GROUP_SEARCHABLE_UNKNOWN = 0x00,  
298 - /**  
299 - * 群组不能被搜到  
300 - */  
301 - TIM_GROUP_SEARCHABLE_NO = 0x01,  
302 - /**  
303 - * 群组能被搜到  
304 - */  
305 - TIM_GROUP_SEARCHABLE_YES = 0x02,  
306 -};  
307 -  
308 -/**  
309 - * 加群选项  
310 - */  
311 -typedef NS_ENUM(NSInteger, TIMGroupAddOpt) {  
312 - /**  
313 - * 禁止加群  
314 - */  
315 - TIM_GROUP_ADD_FORBID = 0,  
316 -  
317 - /**  
318 - * 需要管理员审批  
319 - */  
320 - TIM_GROUP_ADD_AUTH = 1,  
321 -  
322 - /**  
323 - * 任何人可以加入  
324 - */  
325 - TIM_GROUP_ADD_ANY = 2,  
326 -};  
327 -  
328 -/**  
329 - * 群组提示类型  
330 - */  
331 -typedef NS_ENUM(NSInteger, TIMGroupTipsType){  
332 - /**  
333 - * 成员加入  
334 - */  
335 - TIM_GROUP_TIPS_JOIN = 1,  
336 - /**  
337 - * 成员离开  
338 - */  
339 - TIM_GROUP_TIPS_QUIT = 2,  
340 - /**  
341 - * 成员被踢  
342 - */  
343 - TIM_GROUP_TIPS_KICK = 3,  
344 - /**  
345 - * 成员设置管理员  
346 - */  
347 - TIM_GROUP_TIPS_SET_ADMIN = 4,  
348 - /**  
349 - * 成员取消管理员  
350 - */  
351 - TIM_GROUP_TIPS_CANCEL_ADMIN = 5,  
352 -};  
353 -  
354 -/**  
355 - * 群消息接受选项  
356 - */  
357 -typedef NS_ENUM(NSInteger, TIMGroupReceiveMessageOpt) {  
358 - /**  
359 - * 接收消息  
360 - */  
361 - TIM_GROUP_RECEIVE_MESSAGE = 0,  
362 - /**  
363 - * 不接收消息,服务器不进行转发  
364 - */  
365 - TIM_GROUP_NOT_RECEIVE_MESSAGE = 1,  
366 - /**  
367 - * 接受消息,不进行 iOS APNs 推送  
368 - */  
369 - TIM_GROUP_RECEIVE_NOT_NOTIFY_MESSAGE = 2,  
370 -};  
371 -  
372 -/**  
373 - * 群 Tips 类型  
374 - */  
375 -typedef NS_ENUM(NSInteger, TIM_GROUP_TIPS_TYPE){  
376 - /**  
377 - * 邀请加入群 (opUser & groupName & userList)  
378 - */  
379 - TIM_GROUP_TIPS_TYPE_INVITE = 0x01,  
380 - /**  
381 - * 退出群 (opUser & groupName & userList)  
382 - */  
383 - TIM_GROUP_TIPS_TYPE_QUIT_GRP = 0x02,  
384 - /**  
385 - * 踢出群 (opUser & groupName & userList)  
386 - */  
387 - TIM_GROUP_TIPS_TYPE_KICKED = 0x03,  
388 - /**  
389 - * 设置管理员 (opUser & groupName & userList)  
390 - */  
391 - TIM_GROUP_TIPS_TYPE_SET_ADMIN = 0x04,  
392 - /**  
393 - * 取消管理员 (opUser & groupName & userList)  
394 - */  
395 - TIM_GROUP_TIPS_TYPE_CANCEL_ADMIN = 0x05,  
396 - /**  
397 - * 群资料变更 (opUser & groupName & introduction & notification & faceUrl & owner)  
398 - */  
399 - TIM_GROUP_TIPS_TYPE_INFO_CHANGE = 0x06,  
400 - /**  
401 - * 群成员资料变更 (opUser & groupName & memberInfoList)  
402 - */  
403 - TIM_GROUP_TIPS_TYPE_MEMBER_INFO_CHANGE = 0x07,  
404 -};  
405 -  
406 -/**  
407 - * 群变更信息 Tips 类型  
408 - */  
409 -typedef NS_ENUM(NSInteger, TIM_GROUP_INFO_CHANGE_TYPE){  
410 - /**  
411 - * 群名修改  
412 - */  
413 - TIM_GROUP_INFO_CHANGE_GROUP_NAME = 0x01,  
414 - /**  
415 - * 群简介修改  
416 - */  
417 - TIM_GROUP_INFO_CHANGE_GROUP_INTRODUCTION = 0x02,  
418 - /**  
419 - * 群公告修改  
420 - */  
421 - TIM_GROUP_INFO_CHANGE_GROUP_NOTIFICATION = 0x03,  
422 - /**  
423 - * 群头像修改  
424 - */  
425 - TIM_GROUP_INFO_CHANGE_GROUP_FACE = 0x04,  
426 - /**  
427 - * 群主变更  
428 - */  
429 - TIM_GROUP_INFO_CHANGE_GROUP_OWNER = 0x05,  
430 - /**  
431 - * 群自定义字段变更  
432 - */  
433 - TIM_GROUP_INFO_CHANGE_GROUP_CUSTOM = 0x06,  
434 -};  
435 -  
436 -/**  
437 - * 群系统消息类型  
438 - */  
439 -typedef NS_ENUM(NSInteger, TIM_GROUP_SYSTEM_TYPE){  
440 - /**  
441 - * 申请加群请求(只有管理员会收到)  
442 - */  
443 - TIM_GROUP_SYSTEM_ADD_GROUP_REQUEST_TYPE = 0x01,  
444 - /**  
445 - * 申请加群被同意(只有申请人能够收到)  
446 - */  
447 - TIM_GROUP_SYSTEM_ADD_GROUP_ACCEPT_TYPE = 0x02,  
448 - /**  
449 - * 申请加群被拒绝(只有申请人能够收到)  
450 - */  
451 - TIM_GROUP_SYSTEM_ADD_GROUP_REFUSE_TYPE = 0x03,  
452 - /**  
453 - * 被管理员踢出群(只有被踢的人能够收到)  
454 - */  
455 - TIM_GROUP_SYSTEM_KICK_OFF_FROM_GROUP_TYPE = 0x04,  
456 - /**  
457 - * 群被解散(全员能够收到)  
458 - */  
459 - TIM_GROUP_SYSTEM_DELETE_GROUP_TYPE = 0x05,  
460 - /**  
461 - * 创建群消息(创建者能够收到)  
462 - */  
463 - TIM_GROUP_SYSTEM_CREATE_GROUP_TYPE = 0x06,  
464 - /**  
465 - * 邀请入群通知(被邀请者能够收到)  
466 - */  
467 - TIM_GROUP_SYSTEM_INVITED_TO_GROUP_TYPE = 0x07,  
468 - /**  
469 - * 主动退群(主动退群者能够收到)  
470 - */  
471 - TIM_GROUP_SYSTEM_QUIT_GROUP_TYPE = 0x08,  
472 - /**  
473 - * 设置管理员(被设置者接收)  
474 - */  
475 - TIM_GROUP_SYSTEM_GRANT_ADMIN_TYPE = 0x09,  
476 - /**  
477 - * 取消管理员(被取消者接收)  
478 - */  
479 - TIM_GROUP_SYSTEM_CANCEL_ADMIN_TYPE = 0x0a,  
480 - /**  
481 - * 群已被回收(全员接收)  
482 - */  
483 - TIM_GROUP_SYSTEM_REVOKE_GROUP_TYPE = 0x0b,  
484 - /**  
485 - * 邀请入群请求(被邀请者接收)  
486 - */  
487 - TIM_GROUP_SYSTEM_INVITE_TO_GROUP_REQUEST_TYPE = 0x0c,  
488 - /**  
489 - * 邀请加群被同意(只有发出邀请者会接收到)  
490 - */  
491 - TIM_GROUP_SYSTEM_INVITE_TO_GROUP_ACCEPT_TYPE = 0x0d,  
492 - /**  
493 - * 邀请加群被拒绝(只有发出邀请者会接收到)  
494 - */  
495 - TIM_GROUP_SYSTEM_INVITE_TO_GROUP_REFUSE_TYPE = 0x0e,  
496 - /**  
497 - * 用户自定义通知(默认全员接收)  
498 - */  
499 - TIM_GROUP_SYSTEM_CUSTOM_INFO = 0xff,  
500 -};  
501 -  
502 -/**  
503 - * 群成员角色  
504 - */  
505 -typedef NS_ENUM(NSInteger, TIMGroupMemberRole) {  
506 - /**  
507 - * 未定义(没有获取该字段)  
508 - */  
509 - TIM_GROUP_MEMBER_UNDEFINED = 0,  
510 -  
511 - /**  
512 - * 群成员  
513 - */  
514 - TIM_GROUP_MEMBER_ROLE_MEMBER = 200,  
515 -  
516 - /**  
517 - * 群管理员  
518 - */  
519 - TIM_GROUP_MEMBER_ROLE_ADMIN = 300,  
520 -  
521 - /**  
522 - * 群主  
523 - */  
524 - TIM_GROUP_MEMBER_ROLE_SUPER = 400,  
525 -};  
526 -  
527 -/**  
528 - * 群基本获取资料标志  
529 - */  
530 -typedef NS_ENUM(NSInteger, TIMGetGroupBaseInfoFlag) {  
531 - /**  
532 - * 不获取群组资料  
533 - */  
534 - TIM_GET_GROUP_BASE_INFO_FLAG_NONE = 0x00,  
535 - /**  
536 - * 获取群组名  
537 - */  
538 - TIM_GET_GROUP_BASE_INFO_FLAG_NAME = 0x01,  
539 - /**  
540 - * 获取创建时间  
541 - */  
542 - TIM_GET_GROUP_BASE_INFO_FLAG_CREATE_TIME = 0x01 << 1,  
543 - /**  
544 - * 获取群主id  
545 - */  
546 - TIM_GET_GROUP_BASE_INFO_FLAG_OWNER_UIN = 0x01 << 2,  
547 - /**  
548 - * (不可用)  
549 - */  
550 - TIM_GET_GROUP_BASE_INFO_FLAG_SEQ = 0x01 << 3,  
551 - /**  
552 - * 获取最近一次修改群信息时间  
553 - */  
554 - TIM_GET_GROUP_BASE_INFO_FLAG_TIME = 0x01 << 4,  
555 - /**  
556 - * (不可用)  
557 - */  
558 - TIM_GET_GROUP_BASE_INFO_FLAG_NEXT_MSG_SEQ = 0x01 << 5,  
559 - /**  
560 - * 获取最近一次发消息时间  
561 - */  
562 - TIM_GET_GROUP_BASE_INFO_FLAG_LAST_MSG_TIME = 0x01 << 6,  
563 - /**  
564 - * (不可用)  
565 - */  
566 - TIM_GET_GROUP_BASE_INFO_FLAG_APP_ID = 0x01 << 7,  
567 - /**  
568 - * 获取群成员数量  
569 - */  
570 - TIM_GET_GROUP_BASE_INFO_FLAG_MEMBER_NUM = 0x01 << 8,  
571 - /**  
572 - * 获取最大群成员数量  
573 - */  
574 - TIM_GET_GROUP_BASE_INFO_FLAG_MAX_MEMBER_NUM = 0x01 << 9,  
575 - /**  
576 - * 获取群公告  
577 - */  
578 - TIM_GET_GROUP_BASE_INFO_FLAG_NOTIFICATION = 0x01 << 10,  
579 - /**  
580 - * 获取群简介  
581 - */  
582 - TIM_GET_GROUP_BASE_INFO_FLAG_INTRODUCTION = 0x01 << 11,  
583 - /**  
584 - * 获取群头像  
585 - */  
586 - TIM_GET_GROUP_BASE_INFO_FLAG_FACE_URL = 0x01 << 12,  
587 - /**  
588 - * 获取入群类型  
589 - */  
590 - TIM_GET_GROUP_BASE_INFO_FLAG_ADD_OPTION = 0x01 << 13,  
591 - /**  
592 - * 获取群组类型  
593 - */  
594 - TIM_GET_GROUP_BASE_INFO_FLAG_GROUP_TYPE = 0x01 << 14,  
595 - /**  
596 - * 获取最后一条群消息  
597 - */  
598 - TIM_GET_GROUP_BASE_INFO_FLAG_LAST_MSG = 0x01 << 15,  
599 - /**  
600 - * 获取在线人数  
601 - */  
602 - TIM_GET_GROUP_BASE_INFO_FLAG_ONLINE_NUM = 0x01 << 16,  
603 - /**  
604 - * 获取群成员是否可见标志  
605 - */  
606 - TIM_GET_GROUP_BASE_INFO_VISIBLE = 0x01 << 17,  
607 - /**  
608 - * 获取群是否能被搜到标志  
609 - */  
610 - TIM_GET_GROUP_BASE_INFO_SEARCHABLE = 0x01 << 18,  
611 - /**  
612 - * 获取群全员禁言时间  
613 - */  
614 - TIM_GET_GROUP_BASE_INFO_ALL_SHUTUP = 0x01 << 19  
615 -};  
616 -  
617 -/**  
618 - * 群成员角色过滤方式  
619 - */  
620 -typedef NS_ENUM(NSInteger, TIMGroupMemberFilter) {  
621 - /**  
622 - * 全部成员  
623 - */  
624 - TIM_GROUP_MEMBER_FILTER_ALL = 0x00,  
625 - /**  
626 - * 群主  
627 - */  
628 - TIM_GROUP_MEMBER_FILTER_SUPER = 0x01,  
629 - /**  
630 - * 管理员  
631 - */  
632 - TIM_GROUP_MEMBER_FILTER_ADMIN = 0x02,  
633 - /**  
634 - * 普通成员  
635 - */  
636 - TIM_GROUP_MEMBER_FILTER_COMMON = 0x04,  
637 -};  
638 -  
639 -/**  
640 - * 群成员获取资料标志  
641 - */  
642 -typedef NS_ENUM(NSInteger, TIMGetGroupMemInfoFlag) {  
643 -  
644 - /**  
645 - * 入群时间  
646 - */  
647 - TIM_GET_GROUP_MEM_INFO_FLAG_JOIN_TIME = 0x01,  
648 - /**  
649 - * 消息标志  
650 - */  
651 - TIM_GET_GROUP_MEM_INFO_FLAG_MSG_FLAG = 0x01 << 1,  
652 - /**  
653 - * 角色  
654 - */  
655 - TIM_GET_GROUP_MEM_INFO_FLAG_ROLE_INFO = 0x01 << 3,  
656 - /**  
657 - * 禁言时间  
658 - */  
659 - TIM_GET_GROUP_MEM_INFO_FLAG_SHUTUP_TIME = 0x01 << 4,  
660 - /**  
661 - * 群名片  
662 - */  
663 - TIM_GET_GROUP_MEM_INFO_FLAG_NAME_CARD = 0x01 << 5,  
664 -};  
665 -  
666 -/**  
667 - * 群组操作结果  
668 - */  
669 -typedef NS_ENUM(NSInteger, TIMGroupMemberStatus) {  
670 - /**  
671 - * 操作失败  
672 - */  
673 - TIM_GROUP_MEMBER_STATUS_FAIL = 0,  
674 -  
675 - /**  
676 - * 操作成功  
677 - */  
678 - TIM_GROUP_MEMBER_STATUS_SUCC = 1,  
679 -  
680 - /**  
681 - * 无效操作,加群时已经是群成员,移除群组时不在群内  
682 - */  
683 - TIM_GROUP_MEMBER_STATUS_INVALID = 2,  
684 -  
685 - /**  
686 - * 等待处理,邀请入群时等待对方处理  
687 - */  
688 - TIM_GROUP_MEMBER_STATUS_PENDING = 3,  
689 -};  
690 -  
691 -/**  
692 - * 群组未决请求类型  
693 - */  
694 -typedef NS_ENUM(NSInteger, TIMGroupPendencyGetType) {  
695 - /**  
696 - * 申请入群  
697 - */  
698 - TIM_GROUP_PENDENCY_GET_TYPE_JOIN = 0x0,  
699 - /**  
700 - * 邀请入群  
701 - */  
702 - TIM_GROUP_PENDENCY_GET_TYPE_INVITE = 0x1,  
703 -};  
704 -  
705 -/**  
706 - * 群组已决标志  
707 - */  
708 -typedef NS_ENUM(NSInteger, TIMGroupPendencyHandleStatus) {  
709 - /**  
710 - * 未处理  
711 - */  
712 - TIM_GROUP_PENDENCY_HANDLE_STATUS_UNHANDLED = 0,  
713 - /**  
714 - * 被他人处理  
715 - */  
716 - TIM_GROUP_PENDENCY_HANDLE_STATUS_OTHER_HANDLED = 1,  
717 - /**  
718 - * 被用户处理  
719 - */  
720 - TIM_GROUP_PENDENCY_HANDLE_STATUS_OPERATOR_HANDLED = 2,  
721 -};  
722 -  
723 -/**  
724 - * 群组已决结果  
725 - */  
726 -typedef NS_ENUM(NSInteger, TIMGroupPendencyHandleResult) {  
727 - /**  
728 - * 拒绝申请  
729 - */  
730 - TIM_GROUP_PENDENCY_HANDLE_RESULT_REFUSE = 0,  
731 - /**  
732 - * 同意申请  
733 - */  
734 - TIM_GROUP_PENDENCY_HANDLE_RESULT_AGREE = 1,  
735 -};  
736 -  
737 -/**  
738 - * 好友验证方式  
739 - */  
740 -typedef NS_ENUM(NSInteger, TIMFriendAllowType) {  
741 - /**  
742 - * 同意任何用户加好友  
743 - */  
744 - TIM_FRIEND_ALLOW_ANY = 0,  
745 -  
746 - /**  
747 - * 需要验证  
748 - */  
749 - TIM_FRIEND_NEED_CONFIRM = 1,  
750 -  
751 - /**  
752 - * 拒绝任何人加好友  
753 - */  
754 - TIM_FRIEND_DENY_ANY = 2,  
755 -};  
756 -  
757 -/**  
758 - * 性别  
759 - */  
760 -typedef NS_ENUM(NSInteger, TIMGender) {  
761 - /**  
762 - * 未知性别  
763 - */  
764 - TIM_GENDER_UNKNOWN = 0,  
765 - /**  
766 - * 男性  
767 - */  
768 - TIM_GENDER_MALE = 1,  
769 - /**  
770 - * 女性  
771 - */  
772 - TIM_GENDER_FEMALE = 2,  
773 -  
774 -};  
775 -  
776 -/**  
777 - * 操作类型  
778 - */  
779 -typedef NS_ENUM(NSInteger, TIM_SNS_SYSTEM_TYPE){  
780 - /**  
781 - * 增加好友消息  
782 - */  
783 - TIM_SNS_SYSTEM_ADD_FRIEND = 0x01,  
784 - /**  
785 - * 删除好友消息  
786 - */  
787 - TIM_SNS_SYSTEM_DEL_FRIEND = 0x02,  
788 - /**  
789 - * 增加好友申请  
790 - */  
791 - TIM_SNS_SYSTEM_ADD_FRIEND_REQ = 0x03,  
792 - /**  
793 - * 删除未决申请  
794 - */  
795 - TIM_SNS_SYSTEM_DEL_FRIEND_REQ = 0x04,  
796 - /**  
797 - * 黑名单添加  
798 - */  
799 - TIM_SNS_SYSTEM_ADD_BLACKLIST = 0x05,  
800 - /**  
801 - * 黑名单删除  
802 - */  
803 - TIM_SNS_SYSTEM_DEL_BLACKLIST = 0x06,  
804 - /**  
805 - * 未决已读上报  
806 - */  
807 - TIM_SNS_SYSTEM_PENDENCY_REPORT = 0x07,  
808 - /**  
809 - * 关系链资料变更  
810 - */  
811 - TIM_SNS_SYSTEM_SNS_PROFILE_CHANGE = 0x08,  
812 -};  
813 -  
814 -/**  
815 - * 资料变更  
816 - */  
817 -typedef NS_ENUM(NSInteger, TIM_PROFILE_SYSTEM_TYPE){  
818 - /**  
819 - 好友资料变更  
820 - */  
821 - TIM_PROFILE_SYSTEM_FRIEND_PROFILE_CHANGE = 0x01,  
822 -};  
823 -  
824 -#pragma mark - block 回调  
825 -  
826 -/**  
827 - * 获取消息回调  
828 - *  
829 - * @param msgs 消息列表  
830 - */  
831 -typedef void (^TIMGetMsgSucc)(NSArray * msgs);  
832 -  
833 -/**  
834 - * 一般操作成功回调  
835 - */  
836 -typedef void (^TIMSucc)(void);  
837 -  
838 -/**  
839 - * 操作失败回调  
840 - *  
841 - * @param code 错误码  
842 - * @param msg 错误描述,配合错误码使用,如果问题建议打印信息定位  
843 - */  
844 -typedef void (^TIMFail)(int code, NSString * msg);  
845 -  
846 -/**  
847 - * 进度毁掉  
848 - *  
849 - * @param curSize 已下载大小  
850 - * @param totalSize 总大小  
851 - */  
852 -typedef void (^TIMProgress)(NSInteger curSize, NSInteger totalSize);  
853 -  
854 -/**  
855 - * 登录成功回调  
856 - */  
857 -typedef void (^TIMLoginSucc)(void);  
858 -  
859 -/**  
860 - * 获取资源  
861 - *  
862 - * @param data 资源二进制  
863 - */  
864 -typedef void (^TIMGetResourceSucc)(NSData * data);  
865 -  
866 -/**  
867 - * 日志回调  
868 - *  
869 - * @param lvl 输出的日志级别  
870 - * @param msg 日志内容  
871 - */  
872 -typedef void (^TIMLogFunc)(TIMLogLevel lvl, NSString * msg);  
873 -  
874 -/**  
875 - * 上传图片成功回调  
876 - *  
877 - * @param elem 上传图片成功后 elem  
878 - */  
879 -typedef void (^TIMUploadImageSucc)(TIMImageElem * elem);  
880 -  
881 -/**  
882 - * APNs 推送配置更新成功回调  
883 - *  
884 - * @param config 配置  
885 - */  
886 -typedef void (^TIMAPNSConfigSucc)(TIMAPNSConfig* config);  
887 -  
888 -/**  
889 - * 群创建成功  
890 - *  
891 - * @param groupId 群组 Id  
892 - */  
893 -typedef void (^TIMCreateGroupSucc)(NSString * groupId);  
894 -  
895 -/**  
896 - * 好友列表  
897 - *  
898 - * @param friends 好友列表  
899 - */  
900 -typedef void (^TIMFriendArraySucc)(NSArray<TIMFriend *> *friends);  
901 -  
902 -/**  
903 - * 获取资料回调  
904 - *  
905 - * @param profile 资料  
906 - */  
907 -typedef void (^TIMGetProfileSucc)(TIMUserProfile * profile);  
908 -  
909 -/**  
910 - * 获取资料回调  
911 - *  
912 - * @param profiles 资料  
913 - */  
914 -typedef void (^TIMUserProfileArraySucc)(NSArray<TIMUserProfile *> *profiles);  
915 -  
916 -/**  
917 - * 好友操作回调  
918 - *  
919 - * @param result 资料  
920 - */  
921 -typedef void (^TIMFriendResultSucc)(TIMFriendResult *result);  
922 -  
923 -/**  
924 - * 好友操作回调  
925 - *  
926 - * @param results 资料  
927 - */  
928 -typedef void (^TIMFriendResultArraySucc)(NSArray<TIMFriendResult *> *results);  
929 -  
930 -/**  
931 - * 检查好友操作回调  
932 - *  
933 - * @param results 检查结果  
934 - */  
935 -typedef void (^TIMCheckFriendResultArraySucc)(NSArray<TIMCheckFriendResult *> *results);  
936 -  
937 -  
938 -/**  
939 - * 群成员列表回调  
940 - *  
941 - * @param members 群成员列表  
942 - */  
943 -typedef void (^TIMGroupMemberSucc)(NSArray * members);  
944 -  
945 -/**  
946 - * 群列表结果回调  
947 - *  
948 - * @param groupList 群列表结果  
949 - */  
950 -typedef void (^TIMGroupListSucc)(NSArray* groupList);  
951 -  
952 -/**  
953 - * 本人群组内成员信息回调  
954 - *  
955 - * @param selfInfo 本人成员信息  
956 - */  
957 -typedef void (^TIMGroupSelfSucc)(TIMGroupMemberInfo * selfInfo);  
958 -  
959 -/**  
960 - * 群接受消息选项回调  
961 - *  
962 - * @param opt 群接受消息选项  
963 - */  
964 -typedef void (^TIMGroupReciveMessageOptSucc)(TIMGroupReceiveMessageOpt opt);  
965 -  
966 -/**  
967 - * 群成员列表回调(分页使用)  
968 - *  
969 - * @param members 群成员(TIMGroupMemberInfo*)列表  
970 - */  
971 -typedef void (^TIMGroupMemberSuccV2)(uint64_t nextSeq, NSArray * members);  
972 -  
973 -/**  
974 - * 群搜索回调  
975 - *  
976 - * @param totalNum 搜索结果的总数  
977 - * @param groups 请求的群列表片段  
978 - */  
979 -typedef void (^TIMGroupSearchSucc)(uint64_t totalNum, NSArray * groups);  
980 -  
981 -/**  
982 - * 获取群组未决请求列表成功  
983 - *  
984 - * @param meta 未决请求元信息  
985 - * @param pendencies 未决请求列表(TIMGroupPendencyItem)数组  
986 - */  
987 -typedef void (^TIMGetGroupPendencyListSucc)(TIMGroupPendencyMeta * meta, NSArray<TIMGroupPendencyItem *> * pendencies);  
988 -  
989 -/**  
990 - * 发送消息给多个用户失败  
991 - *  
992 - * @param code 错误码  
993 - * @param err 错误信息  
994 - * @param detailInfo 错误详情  
995 - */  
996 -typedef void (^TIMSendToUsersFail)(int code, NSString *err, TIMSendToUsersDetailInfo *detailInfo);  
997 -  
998 -#pragma mark - 基本类型  
999 -  
1000 -/// 实现 NSCoding 协议  
1001 -@interface TIMCodingModel : NSObject <NSCoding>  
1002 -  
1003 -///读取实例变量,并把这些数据写到 coder 中去,序列化数据  
1004 -- (void)encodeWithCoder:(NSCoder *)encoder;  
1005 -  
1006 -///从 coder 中读取数据,保存到相应的变量中,即反序列化数据  
1007 -- (id)initWithCoder:(NSCoder *)decoder;  
1008 -  
1009 -@end  
1010 -  
1011 -/// 初始化 SDK 配置信息  
1012 -@interface TIMSdkConfig : NSObject  
1013 -  
1014 -///用户标识接入 SDK 的应用 ID,必填  
1015 -@property(nonatomic,assign) int sdkAppId;  
1016 -  
1017 -///用户的账号类型,新版本不需要再填写  
1018 -//@property(nonatomic,strong) NSString * accountType;  
1019 -  
1020 -///禁止在控制台打印 log  
1021 -@property(nonatomic,assign) BOOL disableLogPrint;  
1022 -  
1023 -///本地写 log 文件的等级,默认 DEBUG 等级  
1024 -@property(nonatomic,assign) TIMLogLevel logLevel;  
1025 -  
1026 -///log 文件路径,不设置时为默认路径,可以通过 TIMManager -> getLogPath 获取 log 路径  
1027 -@property(nonatomic,strong) NSString * logPath;  
1028 -  
1029 -///回调给 logFunc 函数的 log 等级,默认 DEBUG 等级  
1030 -@property(nonatomic,assign) TIMLogLevel logFuncLevel;  
1031 -  
1032 -///log 监听函数  
1033 -@property(nonatomic,copy) TIMLogFunc logFunc;  
1034 -  
1035 -///消息数据库路径,不设置时为默认路径  
1036 -@property(nonatomic,strong) NSString * dbPath;  
1037 -  
1038 -///网络监听器,监听网络连接成功失败的状态  
1039 -@property(nonatomic,weak) id<TIMConnListener> connListener;  
1040 -  
1041 -@end  
1042 -  
1043 -/// 设置用户配置信息  
1044 -@interface TIMUserConfig : NSObject  
1045 -  
1046 -///禁用本地存储(AVChatRoom,BChatRoom 消息数量很大,出于程序性能的考虑,默认不存本地)  
1047 -@property(nonatomic,assign) BOOL disableStorage;  
1048 -  
1049 -///默认情况下,出于性能考虑,当用户在终端 A 收到未读消息后,Server 默认会删除未读消息,但如果用户切换到终端 B 后,IM SDK 无法再同步到未读消息,未读计数也不会增加,如果需要在终端 B 下也有未读,请设置 disableAutoReport 为 YES,这个时候 Server 不会再主动删除未读消息。注意一旦这这样设置,开发者需要主动调用 TIMConversation.h -> setReadMessage ,否则未读消息会一直存在 Server,IM SDK 每次登录或则断网重连都会再次同步到未读消息,详情请参考官方文档 [自动已读上报](https://cloud.tencent.com/document/product/269/9151)。  
1050 -@property(nonatomic,assign) BOOL disableAutoReport;  
1051 -  
1052 -///已读回执是自己发出去的消息,对方设置为已读后,自己能收到已读的回调,只针对单聊(C2C)会话生效,默认是关闭的,如果需要开启,请设置 enableReadReceipt 为 YES,收到消息的用户需要显式调用 TIMConversation.h -> setReadMessage,发消息的用户才能通过 TIMMessageReceiptListener 监听到消息的已读回执。  
1053 -@property(nonatomic,assign) BOOL enableReadReceipt;  
1054 -  
1055 -///设置默认拉取的群组资料,如果想要拉取自定义字段,要通过 [IM 控制台](https://console.cloud.tencent.com/avc) -> 功能配置 -> 群维度自定义字段配置对应的 "自定义字段" 和用户操作权限,控制台配置之后 5 分钟后才会生效。  
1056 -@property(nonatomic,strong) TIMGroupInfoOption * groupInfoOpt;  
1057 -  
1058 -///设置默认拉取的群成员资料,如果想要拉取自定义字段,要通过 [IM 控制台](https://console.cloud.tencent.com/avc) -> 功能配置 -> 群成员维度自定义字段配置对应的 "自定义字段" 和用户操作权限,控制台配置之后 5 分钟后才会生效。  
1059 -@property(nonatomic,strong) TIMGroupMemberInfoOption * groupMemberInfoOpt;  
1060 -  
1061 -///关系链参数  
1062 -@property(nonatomic,strong) TIMFriendProfileOption * friendProfileOpt;  
1063 -  
1064 -///用户登录状态监听器,用于监听用户被踢,断网重连失败,userSig 过期的通知  
1065 -@property(nonatomic,weak) id<TIMUserStatusListener> userStatusListener;  
1066 -  
1067 -///会话刷新监听器,用于监听会话的刷新  
1068 -@property(nonatomic,weak) id<TIMRefreshListener> refreshListener;  
1069 -  
1070 -///消息已读回执监听器,用于监听消息已读回执,enableReadReceipt 字段需要设置为 YES  
1071 -@property(nonatomic,weak) id<TIMMessageReceiptListener> messageReceiptListener;  
1072 -  
1073 -///消息修改监听器,用于监听消息状态的变化  
1074 -@property(nonatomic,weak) id<TIMMessageUpdateListener> messageUpdateListener;  
1075 -  
1076 -///消息撤回监听器,用于监听会话中的消息撤回通知  
1077 -@property(nonatomic,weak) id<TIMMessageRevokeListener> messageRevokeListener;  
1078 -  
1079 -///文件上传进度监听器,发送语音,图片,视频,文件消息的时候需要先上传对应文件到服务器,这里可以监听上传进度  
1080 -@property(nonatomic,weak) id<TIMUploadProgressListener> uploadProgressListener;  
1081 -  
1082 -///群组事件通知监听器  
1083 -@property(nonatomic,weak) id<TIMGroupEventListener> groupEventListener;  
1084 -  
1085 -///关系链数据本地缓存监听器  
1086 -@property(nonatomic,weak) id<TIMFriendshipListener> friendshipListener;  
1087 -  
1088 -@end  
1089 -  
1090 -/// 登录参数  
1091 -@interface TIMLoginParam : NSObject  
1092 -  
1093 -///用户名  
1094 -@property(nonatomic,strong) NSString* identifier;  
1095 -  
1096 -///鉴权 Token  
1097 -@property(nonatomic,strong) NSString* userSig;  
1098 -  
1099 -///App 用户使用 OAuth 授权体系分配的 Appid  
1100 -@property(nonatomic,strong) NSString* appidAt3rd;  
1101 -  
1102 -  
1103 -@end  
1104 -  
1105 -/// APNs 配置  
1106 -@interface TIMAPNSConfig : NSObject  
1107 -  
1108 -///是否开启推送:0-不进行设置 1-开启推送 2-关闭推送  
1109 -@property(nonatomic,assign) uint32_t openPush;  
1110 -  
1111 -///C2C 消息声音,不设置传入 nil  
1112 -@property(nonatomic,strong) NSString * c2cSound;  
1113 -  
1114 -///Group 消息声音,不设置传入 nil  
1115 -@property(nonatomic,strong) NSString * groupSound;  
1116 -  
1117 -///Video 音视频邀请声音,不设置传入 nil (暂不支持)  
1118 -@property(nonatomic,strong) NSString * videoSound;  
1119 -  
1120 -@end  
1121 -  
1122 -/// SetToken 参数  
1123 -@interface TIMTokenParam : NSObject  
1124 -  
1125 -///token 是苹果后台对客户端的唯一标识,需要主动调用系统 API 向苹果请求获取  
1126 -@property(nonatomic,strong) NSData* token;  
1127 -  
1128 -///业务 ID,传递证书时分配  
1129 -@property(nonatomic,assign) uint32_t busiId;  
1130 -  
1131 -@end  
1132 -  
1133 -/// 切后台参数  
1134 -@interface TIMBackgroundParam : NSObject  
1135 -  
1136 -///C2C 未读计数  
1137 -@property(nonatomic,assign) int c2cUnread;  
1138 -  
1139 -///群未读计数  
1140 -@property(nonatomic,assign) int groupUnread;  
1141 -  
1142 -@end  
1143 -  
1144 -/// 消息定位  
1145 -@interface TIMMessageLocator : NSObject  
1146 -  
1147 -///所属会话的 id  
1148 -@property(nonatomic,strong) NSString * sessId;  
1149 -  
1150 -///所属会话的类型  
1151 -@property(nonatomic,assign) TIMConversationType sessType;  
1152 -  
1153 -///消息序列号  
1154 -@property(nonatomic,assign) uint64_t seq;  
1155 -  
1156 -///消息随机码  
1157 -@property(nonatomic,assign) uint64_t rand;  
1158 -  
1159 -///消息时间戳  
1160 -@property(nonatomic,assign) time_t time;  
1161 -  
1162 -///是否本人消息  
1163 -@property(nonatomic,assign) BOOL isSelf;  
1164 -  
1165 -///是否来自撤销通知  
1166 -@property(nonatomic,assign) BOOL isFromRevokeNotify;  
1167 -  
1168 -@end  
1169 -  
1170 -/// 已读回执  
1171 -@interface TIMMessageReceipt : NSObject  
1172 -  
1173 -///已读回执对应的会话(目前只支持 C2C 会话)  
1174 -@property(nonatomic,strong) TIMConversation * conversation;  
1175 -  
1176 -///收到已读回执时,这个时间戳之前的消息都已读  
1177 -@property(nonatomic,assign) time_t timestamp;  
1178 -@end  
1179 -  
1180 -/// Android 离线推送配置  
1181 -@interface TIMAndroidOfflinePushConfig : NSObject  
1182 -  
1183 -///离线推送时展示标签  
1184 -@property(nonatomic,strong) NSString * title;  
1185 -  
1186 -///Android 离线 Push 时声音字段信息  
1187 -@property(nonatomic,strong) NSString * sound;  
1188 -  
1189 -///为了保证在 Android 8.0 系统以上的 OPPO 手机上能收到离线推送消息,需要 app 在该手机上创建 channelID,并且设置该参数。  
1190 -@property(nonatomic,strong) NSString * OPPOChannelID;  
1191 -  
1192 -///离线推送时通知形式  
1193 -@property(nonatomic,assign) TIMAndroidOfflinePushNotifyMode notifyMode;  
1194 -  
1195 -@end  
1196 -  
1197 -/// iOS 离线推送配置  
1198 -@interface TIMIOSOfflinePushConfig : NSObject  
1199 -  
1200 -///离线 Push 时声音字段信息  
1201 -@property(nonatomic,strong) NSString * sound;  
1202 -  
1203 -///忽略 badge 计数,如果设置为 YES,在 iOS 接收端,这条消息不会使 APP 的应用图标未读计数增加  
1204 -@property(nonatomic,assign) BOOL ignoreBadge;  
1205 -  
1206 -@end  
1207 -  
1208 -/// 填入 sound 字段表示接收时不会播放声音  
1209 -extern NSString * const kIOSOfflinePushNoSound;  
1210 -  
1211 -/// 自定义消息 push  
1212 -@interface TIMOfflinePushInfo : NSObject  
1213 -  
1214 -///自定义消息描述信息,做离线Push时文本展示  
1215 -@property(nonatomic,strong) NSString * desc;  
1216 -  
1217 -///离线 Push 时扩展字段信息  
1218 -@property(nonatomic,strong) NSString * ext;  
1219 -  
1220 -///推送规则标志  
1221 -@property(nonatomic,assign) TIMOfflinePushFlag pushFlag;  
1222 -  
1223 -///iOS离线推送配置  
1224 -@property(nonatomic,strong) TIMIOSOfflinePushConfig * iosConfig;  
1225 -  
1226 -///Android离线推送配置  
1227 -@property(nonatomic,strong) TIMAndroidOfflinePushConfig * androidConfig;  
1228 -@end  
1229 -  
1230 -/// 群组内的本人信息  
1231 -@interface TIMGroupSelfInfo : NSObject  
1232 -  
1233 -///加入群组时间  
1234 -@property(nonatomic,assign) uint32_t joinTime;  
1235 -  
1236 -///群组中的角色  
1237 -@property(nonatomic,assign) TIMGroupMemberRole role;  
1238 -  
1239 -///群组消息接收选项  
1240 -@property(nonatomic,assign) TIMGroupReceiveMessageOpt recvOpt;  
1241 -  
1242 -///群组中的未读消息数  
1243 -@property(nonatomic,assign) uint32_t unReadMessageNum;  
1244 -  
1245 -@end  
1246 -  
1247 -/// 群资料信息  
1248 -@interface TIMGroupInfo : TIMCodingModel  
1249 -  
1250 -///群组 Id  
1251 -@property(nonatomic,strong) NSString* group;  
1252 -  
1253 -///群名  
1254 -@property(nonatomic,strong) NSString* groupName;  
1255 -  
1256 -///群创建人/管理员  
1257 -@property(nonatomic,strong) NSString * owner;  
1258 -  
1259 -///群类型:Private,Public,ChatRoom  
1260 -@property(nonatomic,strong) NSString* groupType;  
1261 -  
1262 -///群创建时间  
1263 -@property(nonatomic,assign) uint32_t createTime;  
1264 -  
1265 -///最近一次群资料修改时间  
1266 -@property(nonatomic,assign) uint32_t lastInfoTime;  
1267 -  
1268 -///最近一次发消息时间  
1269 -@property(nonatomic,assign) uint32_t lastMsgTime;  
1270 -  
1271 -///最大成员数  
1272 -@property(nonatomic,assign) uint32_t maxMemberNum;  
1273 -  
1274 -///群成员数量  
1275 -@property(nonatomic,assign) uint32_t memberNum;  
1276 -  
1277 -///入群类型  
1278 -@property(nonatomic,assign) TIMGroupAddOpt addOpt;  
1279 -  
1280 -///群公告  
1281 -@property(nonatomic,strong) NSString* notification;  
1282 -  
1283 -///群简介  
1284 -@property(nonatomic,strong) NSString* introduction;  
1285 -  
1286 -///群头像  
1287 -@property(nonatomic,strong) NSString* faceURL;  
1288 -  
1289 -///最后一条消息  
1290 -@property(nonatomic,strong) TIMMessage* lastMsg;  
1291 -  
1292 -///在线成员数量  
1293 -@property(nonatomic,assign) uint32_t onlineMemberNum;  
1294 -  
1295 -///群组是否被搜索类型  
1296 -@property(nonatomic,assign) TIMGroupSearchableType isSearchable;  
1297 -  
1298 -///群组成员可见类型  
1299 -@property(nonatomic,assign) TIMGroupMemberVisibleType isMemberVisible;  
1300 -  
1301 -///是否全员禁言  
1302 -@property(nonatomic,assign) BOOL allShutup;  
1303 -  
1304 -///群组中的本人信息  
1305 -@property(nonatomic,strong) TIMGroupSelfInfo* selfInfo;  
1306 -  
1307 -///自定义字段集合,key 是 NSString* 类型,value 是 NSData* 类型  
1308 -@property(nonatomic,strong) NSDictionary<NSString *,NSData *>* customInfo;  
1309 -  
1310 -@end  
1311 -  
1312 -/// 获取群组信息结果  
1313 -@interface TIMGroupInfoResult : TIMGroupInfo  
1314 -  
1315 -/// 结果 0:成功;非0:失败  
1316 -@property(nonatomic,assign) int resultCode;  
1317 -  
1318 -/// 结果信息  
1319 -@property(nonatomic,strong) NSString *resultInfo;  
1320 -@end  
1321 -  
1322 -/// 事件上报信息  
1323 -@interface TIMEventReportItem : NSObject  
1324 -  
1325 -///事件 id  
1326 -@property(nonatomic,assign) uint32_t event;  
1327 -  
1328 -///错误码  
1329 -@property(nonatomic,assign) uint32_t code;  
1330 -  
1331 -///错误描述  
1332 -@property(nonatomic,strong) NSString * desc;  
1333 -  
1334 -///事件延迟(单位 ms)  
1335 -@property(nonatomic,assign) uint32_t delay;  
1336 -  
1337 -@end  
1338 -  
1339 -/// 获取某个群组资料  
1340 -@interface TIMGroupInfoOption : NSObject  
1341 -  
1342 -///需要获取的群组信息标志(TIMGetGroupBaseInfoFlag),默认为0xffffff  
1343 -@property(nonatomic,assign) uint64_t groupFlags;  
1344 -  
1345 -///需要获取群组资料的自定义信息(NSString*)列表 (接口已废弃,控制台配置群组自定义字段后,SDK 会根据权限自动拉取)  
1346 -@property(nonatomic,strong) NSArray * groupCustom DEPRECATED_ATTRIBUTE;  
1347 -  
1348 -@end  
1349 -  
1350 -/// 需要某个群成员资料  
1351 -@interface TIMGroupMemberInfoOption : NSObject  
1352 -  
1353 -///需要获取的群成员标志(TIMGetGroupMemInfoFlag),默认为0xffffff  
1354 -@property(nonatomic,assign) uint64_t memberFlags ;  
1355 -  
1356 -///需要获取群成员资料的自定义信息(NSString*)列表 (接口已废弃,控制台配置群成员自定义字段后,SDK 会根据权限自动拉取)  
1357 -@property(nonatomic,strong) NSArray * memberCustom DEPRECATED_ATTRIBUTE;  
1358 -  
1359 -@end  
1360 -  
1361 -/// 群成员资料  
1362 -@interface TIMGroupMemberInfo : TIMCodingModel  
1363 -  
1364 -///成员  
1365 -@property(nonatomic,strong) NSString* member;  
1366 -  
1367 -///群名片  
1368 -@property(nonatomic,strong) NSString* nameCard;  
1369 -  
1370 -///加入群组时间  
1371 -@property(nonatomic,assign) time_t joinTime;  
1372 -  
1373 -///成员类型  
1374 -@property(nonatomic,assign) TIMGroupMemberRole role;  
1375 -  
1376 -///禁言结束时间(时间戳)  
1377 -@property(nonatomic,assign) uint32_t silentUntil;  
1378 -  
1379 -///自定义字段集合,key 是 NSString*类型,value 是 NSData*类型  
1380 -@property(nonatomic,strong) NSDictionary* customInfo;  
1381 -  
1382 -///如果是自己,可以获取自己的群接收选项  
1383 -@property(nonatomic,assign) TIMGroupReceiveMessageOpt receiveMessageOpt;  
1384 -  
1385 -@end  
1386 -  
1387 -///资料与关系链  
1388 -@interface TIMFriendProfileOption : NSObject  
1389 -  
1390 -///关系链最大缓存时间(默认缓存一天;获取资料和关系链超过缓存时间,将自动向服务器发起请求)  
1391 -@property NSInteger expiredSeconds;  
1392 -  
1393 -@end  
1394 -  
1395 -///用户资料  
1396 -@interface TIMUserProfile : TIMCodingModel  
1397 -  
1398 -/**  
1399 - * 用户 identifier  
1400 - */  
1401 -@property(nonatomic,strong) NSString* identifier;  
1402 -  
1403 -/**  
1404 - * 用户昵称  
1405 - */  
1406 -@property(nonatomic,strong) NSString* nickname;  
1407 -  
1408 -/**  
1409 - * 好友验证方式  
1410 - */  
1411 -@property(nonatomic,assign) TIMFriendAllowType allowType;  
1412 -  
1413 -/**  
1414 - * 用户头像  
1415 - */  
1416 -@property(nonatomic,strong) NSString* faceURL;  
1417 -  
1418 -/**  
1419 - * 用户签名  
1420 - */  
1421 -@property(nonatomic,strong) NSData* selfSignature;  
1422 -  
1423 -/**  
1424 - * 用户性别  
1425 - */  
1426 -@property(nonatomic,assign) TIMGender gender;  
1427 -  
1428 -/**  
1429 - * 用户生日  
1430 - */  
1431 -@property(nonatomic,assign) uint32_t birthday;  
1432 -  
1433 -/**  
1434 - * 用户区域  
1435 - */  
1436 -@property(nonatomic,strong) NSData* location;  
1437 -  
1438 -/**  
1439 - * 用户语言  
1440 - */  
1441 -@property(nonatomic,assign) uint32_t language;  
1442 -  
1443 -/**  
1444 - * 等级  
1445 - */  
1446 -@property(nonatomic,assign) uint32_t level;  
1447 -  
1448 -/**  
1449 - * 角色  
1450 - */  
1451 -@property(nonatomic,assign) uint32_t role;  
1452 -  
1453 -/**  
1454 - * 自定义字段集合,key是NSString类型,value是NSData类型或者NSNumber类型  
1455 - * key值按照后台配置的字符串传入,不包括 TIMProfileTypeKey_Custom_Prefix 前缀  
1456 - */  
1457 -@property(nonatomic,strong) NSDictionary* customInfo;  
1458 -  
1459 -@end  
1460 -  
1461 -typedef void(^ProfileCallBack) (TIMUserProfile * profile);  
1462 -  
1463 -/**  
1464 - * 好友  
1465 - */  
1466 -@interface TIMFriend : TIMCodingModel  
1467 -  
1468 -/**  
1469 - * 好友identifier  
1470 - */  
1471 -@property(nonatomic,strong) NSString *identifier;  
1472 -  
1473 -/**  
1474 - * 好友备注(最大96字节,获取自己资料时,该字段为空)  
1475 - */  
1476 -@property(nonatomic,strong) NSString *remark;  
1477 -  
1478 -/**  
1479 - * 分组名称 NSString* 列表  
1480 - */  
1481 -@property(nonatomic,strong) NSArray *groups;  
1482 -  
1483 -/**  
1484 - * 申请时的添加理由  
1485 - */  
1486 -@property(nonatomic,strong) NSString *addWording;  
1487 -  
1488 -/**  
1489 - * 申请时的添加来源  
1490 - */  
1491 -@property(nonatomic,strong) NSString *addSource;  
1492 -  
1493 -/**  
1494 - * 添加时间  
1495 - */  
1496 -@property(nonatomic,assign) uint64_t addTime;  
1497 -  
1498 -/**  
1499 - * 自定义字段集合,key是NSString类型,value是NSData类型或者NSNumber类型  
1500 - * key值按照后台配置的字符串传入,不包括 TIMFriendTypeKey_Custom_Prefix 前缀  
1501 - */  
1502 -@property(nonatomic,strong) NSDictionary* customInfo;  
1503 -  
1504 -/**  
1505 - * 好友资料  
1506 - */  
1507 -@property(nonatomic,strong) TIMUserProfile *profile;  
1508 -  
1509 -@end  
1510 -  
1511 -/**  
1512 - * 创建群参数  
1513 - */  
1514 -@interface TIMCreateGroupInfo : TIMCodingModel  
1515 -  
1516 -/**  
1517 - * 群组Id,nil则使用系统默认Id  
1518 - */  
1519 -@property(nonatomic,strong) NSString* group;  
1520 -  
1521 -/**  
1522 - * 群名  
1523 - */  
1524 -@property(nonatomic,strong) NSString* groupName;  
1525 -  
1526 -/**  
1527 - * 群类型:Private,Public,ChatRoom,AVChatRoom,BChatRoom  
1528 - */  
1529 -@property(nonatomic,strong) NSString* groupType;  
1530 -  
1531 -/**  
1532 - * 是否设置入群选项,Private类型群组请设置为false  
1533 - */  
1534 -@property(nonatomic,assign) BOOL setAddOpt;  
1535 -  
1536 -/**  
1537 - * 入群选项  
1538 - */  
1539 -@property(nonatomic,assign) TIMGroupAddOpt addOpt;  
1540 -  
1541 -/**  
1542 - * 最大成员数,填0则系统使用默认值  
1543 - */  
1544 -@property(nonatomic,assign) uint32_t maxMemberNum;  
1545 -  
1546 -/**  
1547 - * 群公告  
1548 - */  
1549 -@property(nonatomic,strong) NSString* notification;  
1550 -  
1551 -/**  
1552 - * 群简介  
1553 - */  
1554 -@property(nonatomic,strong) NSString* introduction;  
1555 -  
1556 -/**  
1557 - * 群头像  
1558 - */  
1559 -@property(nonatomic,strong) NSString* faceURL;  
1560 -  
1561 -/**  
1562 - * 自定义字段集合,key是NSString*类型,value是NSData*类型  
1563 - */  
1564 -@property(nonatomic,strong) NSDictionary* customInfo;  
1565 -  
1566 -/**  
1567 - * 创建成员(TIMCreateGroupMemberInfo*)列表  
1568 - */  
1569 -@property(nonatomic,strong) NSArray <TIMCreateGroupMemberInfo *>* membersInfo;  
1570 -  
1571 -@end  
1572 -  
1573 -/**  
1574 - * 未决请求选项  
1575 - */  
1576 -@interface TIMGroupPendencyOption : TIMCodingModel  
1577 -  
1578 -/**  
1579 - * 拉取的起始时间 0:拉取最新的  
1580 - */  
1581 -@property(nonatomic,assign) uint64_t timestamp;  
1582 -  
1583 -/**  
1584 - * 每页的数量,最大值为 10,设置超过 10,也最多只能拉回 10 条未决  
1585 - */  
1586 -@property(nonatomic,assign) uint32_t numPerPage;  
1587 -@end  
1588 -  
1589 -/**  
1590 - * 未决请求元信息  
1591 - */  
1592 -@interface TIMGroupPendencyMeta : TIMCodingModel  
1593 -  
1594 -/**  
1595 - * 下一次拉取的起始时间戳  
1596 - */  
1597 -@property(nonatomic,assign) uint64_t nextStartTime;  
1598 -  
1599 -/**  
1600 - * 已读时间戳大小  
1601 - */  
1602 -@property(nonatomic,assign) uint64_t readTimeSeq;  
1603 -  
1604 -/**  
1605 - * 未决未读数  
1606 - */  
1607 -@property(nonatomic,assign) uint32_t unReadCnt;  
1608 -  
1609 -@end  
1610 -  
1611 -/**  
1612 - * 创建群组时的成员信息  
1613 - */  
1614 -@interface TIMCreateGroupMemberInfo : TIMCodingModel  
1615 -  
1616 -/**  
1617 - * 被操作成员  
1618 - */  
1619 -@property(nonatomic,strong) NSString* member;  
1620 -  
1621 -/**  
1622 - * 成员类型  
1623 - */  
1624 -@property(nonatomic,assign) TIMGroupMemberRole role;  
1625 -  
1626 -/**  
1627 - * 自定义字段集合,key是NSString*类型,value是NSData*类型  
1628 - */  
1629 -@property(nonatomic,strong) NSDictionary* customInfo;  
1630 -  
1631 -@end  
1632 -  
1633 -/**  
1634 - * 成员操作返回值  
1635 - */  
1636 -@interface TIMGroupMemberResult : NSObject  
1637 -  
1638 -/**  
1639 - * 被操作成员  
1640 - */  
1641 -@property(nonatomic,strong) NSString* member;  
1642 -/**  
1643 - * 返回状态  
1644 - */  
1645 -@property(nonatomic,assign) TIMGroupMemberStatus status;  
1646 -  
1647 -@end  
1648 -  
1649 -/**  
1650 - * 未决申请  
1651 - */  
1652 -@interface TIMGroupPendencyItem : TIMCodingModel  
1653 -  
1654 -/**  
1655 - * 相关群组id  
1656 - */  
1657 -@property(nonatomic,strong) NSString* groupId;  
1658 -  
1659 -/**  
1660 - * 请求者id,请求加群:请求者,邀请加群:邀请人  
1661 - */  
1662 -@property(nonatomic,strong) NSString* fromUser;  
1663 -  
1664 -/**  
1665 - * 判决者id,请求加群:0,邀请加群:被邀请人  
1666 - */  
1667 -@property(nonatomic,strong) NSString* toUser;  
1668 -  
1669 -/**  
1670 - * 未决添加时间  
1671 - */  
1672 -@property(nonatomic,assign) uint64_t addTime;  
1673 -  
1674 -/**  
1675 - * 未决请求类型  
1676 - */  
1677 -@property(nonatomic,assign) TIMGroupPendencyGetType getType;  
1678 -  
1679 -/**  
1680 - * 已决标志  
1681 - */  
1682 -@property(nonatomic,assign) TIMGroupPendencyHandleStatus handleStatus;  
1683 -  
1684 -/**  
1685 - * 已决结果  
1686 - */  
1687 -@property(nonatomic,assign) TIMGroupPendencyHandleResult handleResult;  
1688 -  
1689 -/**  
1690 - * 申请或邀请附加信息  
1691 - */  
1692 -@property(nonatomic,strong) NSString* requestMsg;  
1693 -  
1694 -/**  
1695 - * 审批信息:同意或拒绝信息  
1696 - */  
1697 -@property(nonatomic,strong) NSString* handledMsg;  
1698 -  
1699 -  
1700 -/**  
1701 - * 同意申请  
1702 - *  
1703 - * @param msg 同意理由,选填  
1704 - * @param succ 成功回调  
1705 - * @param fail 失败回调,返回错误码和错误描述  
1706 - */  
1707 --(void) accept:(NSString*)msg succ:(TIMSucc)succ fail:(TIMFail)fail;  
1708 -  
1709 -/**  
1710 - * 拒绝申请  
1711 - *  
1712 - * @param msg 拒绝理由,选填  
1713 - * @param succ 成功回调  
1714 - * @param fail 失败回调,返回错误码和错误描述  
1715 - */  
1716 --(void) refuse:(NSString*)msg succ:(TIMSucc)succ fail:(TIMFail)fail;  
1717 -  
1718 -  
1719 -/**  
1720 - * 用户自己的id  
1721 - */  
1722 -@property(nonatomic,strong) NSString* selfIdentifier;  
1723 -  
1724 -@end  
1725 -  
1726 -/**  
1727 - * 关系链变更详细信息  
1728 - */  
1729 -@interface TIMSNSChangeInfo : NSObject  
1730 -  
1731 -/**  
1732 - * 用户 identifier  
1733 - */  
1734 -@property(nonatomic,strong) NSString * identifier;  
1735 -  
1736 -/**  
1737 - * 用户昵称  
1738 - */  
1739 -@property(nonatomic,strong) NSString * nickname;  
1740 -  
1741 -/**  
1742 - * 申请添加时有效,添加理由  
1743 - */  
1744 -@property(nonatomic,strong) NSString * wording;  
1745 -  
1746 -/**  
1747 - * 申请时填写,添加来源  
1748 - */  
1749 -@property(nonatomic,strong) NSString * source;  
1750 -  
1751 -  
1752 -/**  
1753 - * 备注 type=TIM_SNS_SYSTEM_SNS_PROFILE_CHANGE 有效  
1754 - */  
1755 -@property(nonatomic,strong) NSString * remark;  
1756 -  
1757 -@end  
1758 -  
1759 -/**  
1760 - * 发送消息给多用户的失败回调信息  
1761 - */  
1762 -@interface TIMSendToUsersDetailInfo : NSObject  
1763 -/**  
1764 - * 发送消息成功的目标用户数  
1765 - */  
1766 -@property(nonatomic,assign) uint32_t succCnt;  
1767 -/**  
1768 - * 发送消息失败的目标用户数  
1769 - */  
1770 -@property(nonatomic,assign) uint32_t failCnt;  
1771 -/**  
1772 - * 失败信息(TIMSendToUsersErrInfo*)列表  
1773 - */  
1774 -@property(nonatomic,strong) NSArray *errInofs;  
1775 -@end  
1776 -  
1777 -/**  
1778 - * 发送消息给多用户的失败信息  
1779 - */  
1780 -@interface TIMSendToUsersErrInfo : NSObject  
1781 -/**  
1782 - * 发送消息失败的目标用户id  
1783 - */  
1784 -@property(nonatomic,strong) NSString *identifier;  
1785 -/**  
1786 - * 错误码  
1787 - */  
1788 -@property(nonatomic,assign) int code;  
1789 -/**  
1790 - * 错误描述  
1791 - */  
1792 -@property(nonatomic,strong) NSString *err;  
1793 -@end  
1794 -#endif  
1 -/////////////////////////////////////////////////////////////////////  
2 -//  
3 -// 腾讯云通信服务 IMSDK  
4 -//  
5 -// 模块名称:TIMConversation + MsgExt  
6 -//  
7 -// 模块功能:此处主要存放待废弃的 API 函数,建议您使用 TIMConversation.h 内部声明的接口函数  
8 -//  
9 -/////////////////////////////////////////////////////////////////////  
10 -  
11 -#ifndef TIMConversation_h  
12 -#define TIMConversation_h  
13 -#import "TIMConversation.h"  
14 -  
15 -  
16 -@interface TIMConversation (MsgExt)  
17 -  
18 -/**  
19 - * 向前获取会话漫游消息  
20 - *  
21 - * 调用方式和 getMessage 一样,区别是 getMessage 获取的是时间更老的消息,主要用于下拉 Tableview 刷新消息数据,getMessageForward 获取的是时间更新的消息,主要用于上拉 Tableview 刷新消息数据。  
22 - *  
23 - * @param count 获取数量  
24 - * @param last 上次最后一条消息,如果 last 为 nil,从最新的消息开始读取  
25 - * @param succ 成功时回调  
26 - * @param fail 失败时回调  
27 - *  
28 - * @return 0:本次操作成功;1:本次操作失败  
29 - */  
30 -- (int)getMessageForward:(int)count last:(TIMMessage*)last succ:(TIMGetMsgSucc)succ fail:(TIMFail)fail;  
31 -  
32 -/**  
33 - * 获取指定会话消息  
34 - *  
35 - * @param locators 消息定位符(TIMMessageLocator)数组  
36 - * @param succ 成功时回调  
37 - * @param fail 失败时回调  
38 - *  
39 - * @return 0:本次操作成功;1:本次操作失败  
40 - */  
41 -- (int)findMessages:(NSArray*)locators succ:(TIMGetMsgSucc)succ fail:(TIMFail)fail;  
42 -  
43 -/**  
44 - * 获取自己的 id  
45 - *  
46 - * @return 用户 id  
47 - */  
48 -- (NSString*)getSelfIdentifier;  
49 -  
50 -@end  
51 -  
52 -#endif /* TIMConversation_h */  
1 -/////////////////////////////////////////////////////////////////////  
2 -//  
3 -// 腾讯云通信服务 IMSDK  
4 -//  
5 -// 模块名称:TIMConversation 会话模块  
6 -//  
7 -// 模块功能:一个会话对应一个聊天窗口,比如跟一个好友的 C2C 聊天叫做一个会话,一个聊天群也叫做一个会话。  
8 -//  
9 -// TIMConversation 提供的接口函数都是围绕消息的相关操作,包括:消息发送、获取历史消息、设置消息已读、撤回和删除等等。  
10 -//  
11 -/////////////////////////////////////////////////////////////////////  
12 -  
13 -#ifndef ImSDK_TIMConversation_h  
14 -#define ImSDK_TIMConversation_h  
15 -  
16 -#import "TIMComm.h"  
17 -#import "TIMCallback.h"  
18 -#import "TIMMessage.h"  
19 -  
20 -@class TIMMessage;  
21 -  
22 -@interface TIMConversation : NSObject  
23 -  
24 -#pragma mark 一,发消息  
25 -  
26 -/////////////////////////////////////////////////////////////////////////////////  
27 -//  
28 -// (一)发消息  
29 -//  
30 -/////////////////////////////////////////////////////////////////////////////////  
31 -/// @name 发消息相关接口  
32 -/// @{  
33 -/**  
34 - * 1.1 发送消息  
35 - *  
36 - * TIMMessage 由多个 TIMElem 组成,一个 TIMElem 可以是一串文本,也可以是一张图片。  
37 - * 虽然说每一条消息都可以包含多个 TIMElem,但这个并不常用,通常您只需要在一个 TIMMessage 塞入一个 TIMElem 即可。  
38 - *  
39 - * 详情请参考官网文档 [消息收发](https://cloud.tencent.com/document/product/269/9150)  
40 - *  
41 - * @param msg 消息体  
42 - * @param succ 发送成功时回调  
43 - * @param fail 发送失败时回调  
44 - *  
45 - * @return 0:操作成功;1:操作失败  
46 - */  
47 -- (int)sendMessage:(TIMMessage*)msg succ:(TIMSucc)succ fail:(TIMFail)fail;  
48 -  
49 -/**  
50 - * 1.2 发送在线消息(无痕消息)  
51 - *  
52 - * “在线消息”,也可以称为是“无痕消息”。跟普通消息的区别在于:在线消息不会被云服务存储,也不会存储于本地数据库中。  
53 - * 如果接收者在线,可以收到消息,但如果接收者离线,重新上线后也不能通过 getMessage() 接口从历史消息里查到它们。  
54 - *  
55 - * 该类型消息比较适合用作发送广播通知等不重要的提示消息。  
56 - *  
57 - * 1. 在线消息不会被计入未读计数  
58 - * 2. 暂不支持在 AVChatRoom 和 BChatRoom 中发送。  
59 - *  
60 - * @param msg 消息体  
61 - * @param succ 成功回调  
62 - * @param fail 失败回调  
63 - *  
64 - * @return 0:操作成功;1:操作失败  
65 - */  
66 -- (int)sendOnlineMessage:(TIMMessage*)msg succ:(TIMSucc)succ fail:(TIMFail)fail;  
67 -  
68 -///@}  
69 -  
70 -#pragma mark 二,获取消息  
71 -/////////////////////////////////////////////////////////////////////////////////  
72 -//  
73 -// (二)获取消息  
74 -//  
75 -/////////////////////////////////////////////////////////////////////////////////  
76 -/// @name 获取消息相关接口  
77 -/// @{  
78 -/**  
79 - * 2.1 从云端拉取历史消息  
80 - *  
81 - * 如果用户的网络正常且登录成功,可以通过该接口拉取历史消息,该接口会返回云端存储的历史消息(最多存储7天)。  
82 - *  
83 - * 1. 单聊和群聊消息会在云端免费存储7天,如果希望存储更长时间,可前往  
84 - * ([IM 控制台](https://console.cloud.tencent.com/avc) -> 功能配置 -> 消息 ->消息漫游时长)进行购买,  
85 - * 具体资费请参考 [价格说明](https://cloud.tencent.com/document/product/269/11673)。  
86 - *  
87 - * 2. 对于图片、语音等资源类消息,获取到的消息体只会包含描述信息,需要通过额外的接口下载数据,  
88 - * 详情请参考 [消息收发](https://cloud.tencent.com/document/product/269/9150)中的 "消息解析" 部分文档。  
89 - *  
90 - * @param count 获取数量  
91 - * @param last 上次最后一条消息,如果 last 为 nil,从最新的消息开始读取  
92 - * @param succ 成功时回调  
93 - * @param fail 失败时回调  
94 - *  
95 - * @return 0:本次操作成功;1:本次操作失败  
96 - */  
97 -- (int)getMessage:(int)count last:(TIMMessage*)last succ:(TIMGetMsgSucc)succ fail:(TIMFail)fail;  
98 -  
99 -/**  
100 - * 2.2 从本地数据库中获取历史消息  
101 - *  
102 - * 如果客户网络异常或登录失败,可以通过该接口获取本地存储的历史消息,调用方法和 getMessage() 一致  
103 - * AVChatRoom,BChatRoom 消息数量很大,出于程序性能的考虑,默认不存本地,不能通过这个接口拉取到对应群消息  
104 - *  
105 - * @param count 获取数量  
106 - * @param last 上次最后一条消息  
107 - * @param succ 成功时回调  
108 - * @param fail 失败时回调  
109 - *  
110 - * @return 0:本次操作成功;1:本次操作失败  
111 - */  
112 -- (int)getLocalMessage:(int)count last:(TIMMessage*)last succ:(TIMGetMsgSucc)succ fail:(TIMFail)fail;  
113 -  
114 -/**  
115 - * 2.3 获取当前会话的最后一条消息  
116 - *  
117 - * 可用于“装饰”会话列表,目前大多数 App 的会话列表中都会显示该会话的最后一条消息  
118 - *  
119 - * @return 最后一条消息  
120 - */  
121 -- (TIMMessage*)getLastMsg;  
122 -  
123 -///@}  
124 -  
125 -#pragma mark 三,设置消息已读  
126 -/////////////////////////////////////////////////////////////////////////////////  
127 -//  
128 -// (三)设置消息已读  
129 -//  
130 -/////////////////////////////////////////////////////////////////////////////////  
131 -/// @name 设置消息已读  
132 -/// @{  
133 -/**  
134 - * 3.1 标记消息为已读状态  
135 - *  
136 - * 该接口会标记当前消息以及之前的所有消息为已读状态,标记消息为已读状态会有两个作用:  
137 - * 1. 已经被标记为已读的消息不会重复提醒,下次登录或者换一台终端设备登录 IM 时,都不会再次收到该消息的未读提醒。  
138 - * 2. 如果发送者通过 TIMUserConfig -> enableReadReceipt 开启了 “被阅回执”,接收者在标记已读状态时,发送者会收到“被阅提醒”。  
139 - *  
140 - * @note 该接口尚不支持标记单独一条消息,只能标记一批。即标记当前一条消息,之前的消息也会全被标记为已读状态。  
141 - *  
142 - * @param fromMsg 会话内最近一条已读的消息,nil 表示上报最新消息  
143 - * @param succ 成功时回调  
144 - * @param fail 失败时回调  
145 - *  
146 - * @return 0 表示成功  
147 - */  
148 -- (int)setReadMessage:(TIMMessage*)fromMsg succ:(TIMSucc)succ fail:(TIMFail)fail;  
149 -  
150 -/**  
151 - * 3.2 获取会话的未读消息计数  
152 - *  
153 - * 1. 同一个终端登录,在未卸载 APP 的情况下,您可以通过当前接口获取的未读消息的个数。  
154 - * 2. 如果希望换一台终端也能取到同样的未读计数提醒,或者卸载 APP 再重装,未读计数提醒还能保留卸载前的状态,  
155 - * 就需要设置 TIMUserConfig 的 disableAutoReport 为 YES,这样可以开启多终端同步未读提醒。  
156 - *  
157 - * 详情参考 [未读消息计数](https://cloud.tencent.com/document/product/269/9151)  
158 - *  
159 - * @return 返回未读计数  
160 - */  
161 -- (int)getUnReadMessageNum;  
162 -  
163 -///@}  
164 -  
165 -#pragma mark 四,撤回/删除消息  
166 -/////////////////////////////////////////////////////////////////////////////////  
167 -//  
168 -// (四)撤回/删除消息  
169 -//  
170 -/////////////////////////////////////////////////////////////////////////////////  
171 -/// @name 撤回/删除消息相关接口  
172 -/// @{  
173 -/**  
174 - * 4.1 撤回一条已发送的消息(消息发送后 )  
175 - *  
176 - * 1. 消息撤回的有效时间为2分钟,即消息发出2分钟后不能再撤回。  
177 - * 2. 仅支持 C2C 会话和 GROUP 会话中发送的消息,无法撤销 OnlineMessage,也无法撤销 AVChatRoom 和 BChatRoom 中的消息。  
178 - * 3. 您需要在 TIMUserConfig -> TIMMessageRevokeListener 监听 onRevokeMessage() 消息撤回回调,  
179 - * 如果消息撤回成功,消息的接收方会收到一次 onRevokeMessage:(TIMMessageLocator*) 回调,TIMMessageLocator 相当于一条消息的定位标志。  
180 - * 您可以在已收到的历史消息里进行遍历,通过 TIMMessage 中的 respondsToLocator() 接口进行比对,以便定位到该条消息。  
181 - *  
182 - * @param msg 被撤回的消息  
183 - * @param succ 成功时回调  
184 - * @param fail 失败时回调  
185 - *  
186 - * @return 0:本次操作成功;1:本次操作失败  
187 - */  
188 -- (int)revokeMessage:(TIMMessage*)msg succ:(TIMSucc)succ fail:(TIMFail)fail;  
189 -  
190 -/**  
191 - * 4.2 删除当前会话的本地历史消息  
192 - *  
193 - * @param succ 成功时回调  
194 - * @param fail 失败时回调  
195 - *  
196 - * @return 0 本次操作成功  
197 - */  
198 -- (int)deleteLocalMessage:(TIMSucc)succ fail:(TIMFail)fail;  
199 -  
200 -///@}  
201 -  
202 -#pragma mark 五,获取会话信息  
203 -/////////////////////////////////////////////////////////////////////////////////  
204 -//  
205 -// (五)获取会话信息  
206 -//  
207 -/////////////////////////////////////////////////////////////////////////////////  
208 -/// @name 获取会话信息相关接口  
209 -/// @{  
210 -  
211 -/**  
212 - * 5.1 获取会话类型  
213 - *  
214 - * @return 会话类型  
215 - */  
216 -- (TIMConversationType)getType;  
217 -  
218 -/**  
219 - * 5.2 获取会话 ID  
220 - *  
221 - * C2C:对方账号;Group:群组Id。  
222 - *  
223 - * 对同一个单聊或则群聊会话,getReceiver 获取的会话 ID 都是固定的,C2C 获取的是对方账号,Group 获取的是群组 Id。  
224 - *  
225 - * @return 会话人  
226 - */  
227 -- (NSString*)getReceiver;  
228 -  
229 -/**  
230 - * 5.3 获取群名称  
231 - *  
232 - * 获取群名称,只有群会话有效。  
233 - *  
234 - * @return 群名称  
235 - */  
236 -- (NSString*)getGroupName;  
237 -  
238 -///@}  
239 -  
240 -#pragma mark 六,草稿箱  
241 -/////////////////////////////////////////////////////////////////////////////////  
242 -//  
243 -// (六)草稿箱  
244 -//  
245 -/////////////////////////////////////////////////////////////////////////////////  
246 -/// @name 草稿箱  
247 -/// @{  
248 -  
249 -/**  
250 - * 6.1 添加未编辑完的草稿消息  
251 - *  
252 - * 在发送消息时,常常会遇到尚未编辑完毕就要切换到其它聊天窗口的情况,这些未编辑完的消息就可以通过 setDraft() 接口存储到草稿箱中。  
253 - * 草稿信息会存本地数据库,重新登录后依然可以获取。  
254 - *  
255 - *  
256 - * @param draft 草稿内容,详情请参考 TIMMessage.h 里面的 TIMMessageDraft 定义  
257 - *  
258 - * @return 0:成功;1:失败  
259 - */  
260 -- (int)setDraft:(TIMMessageDraft*)draft;  
261 -  
262 -/**  
263 - * 6.2 获取未编辑完的草稿消息  
264 - *  
265 - * @return 草稿内容,没有草稿返回 nil  
266 - */  
267 -- (TIMMessageDraft*)getDraft;  
268 -  
269 -///@}  
270 -  
271 -#pragma mark 七,导入消息到会话  
272 -/////////////////////////////////////////////////////////////////////////////////  
273 -//  
274 -// (七)导入消息到会话  
275 -//  
276 -/////////////////////////////////////////////////////////////////////////////////  
277 -/// @name 导入消息到会话相关接口  
278 -/// @{  
279 -/**  
280 - * 7.1 向本地消息列表中添加一条消息,但并不将其发送出去。  
281 - *  
282 - * 该接口主要用于满足向聊天会话中插入一些提示性消息的需求,比如“您已经退出该群”,这类消息有展示  
283 - * 在聊天消息区的需求,但并没有发送给其他人的必要。  
284 - * 所以 saveMessage() 相当于一个被禁用了网络发送能力的 sendMessage() 接口。  
285 - *  
286 - * @param msg 消息体  
287 - * @param sender 发送方  
288 - * @param isRead 是否已读,如果发送方是自己,默认已读  
289 - *  
290 - * @return 0:成功;1:失败  
291 - */  
292 -- (int)saveMessage:(TIMMessage*)msg sender:(NSString*)sender isReaded:(BOOL)isRead;  
293 -  
294 -/**  
295 - * 7.2 将消息导入本地数据库  
296 - *  
297 - * @param msgs 消息(TIMMessage*)列表  
298 - *  
299 - * @return 0:成功;1:失败  
300 - */  
301 -- (int)importMessages:(NSArray*)msgs;  
302 -  
303 -///@}  
304 -@end  
305 -  
306 -  
307 -#endif  
1 -//  
2 -// TIMErrorCode.h  
3 -// ImSDK  
4 -//  
5 -// Created by jameskhdeng on 2018/11/23.  
6 -// Copyright © 2018 tencent. All rights reserved.  
7 -//  
8 -  
9 -#ifndef TIMErrorCode_h  
10 -#define TIMErrorCode_h  
11 -  
12 -enum ERROR_CODE {  
13 -  
14 - /////////////////////////////////////////////////////////////////////////////////  
15 - //  
16 - // (一)IM SDK 的错误码  
17 - //  
18 - /////////////////////////////////////////////////////////////////////////////////  
19 -  
20 - // 通用错误码  
21 -  
22 - ERR_SUCC = 0, ///< 无错误。  
23 - ERR_IN_PROGESS = 6015, ///< 执行中,请做好接口调用控制,例如,第一次初始化操作在回调前,后续的初始化操作会返回该错误码。  
24 - ERR_INVALID_PARAMETERS = 6017, ///< 参数无效,请检查参数是否符合要求,具体可查看错误信息进一步定义哪个字段。  
25 - ERR_IO_OPERATION_FAILED = 6022, ///< 操作本地 IO 错误,检查是否有读写权限,磁盘是否已满。  
26 - ERR_INVALID_JSON = 6027, ///< 错误的 JSON 格式,请检查参数是否符合接口的要求,具体可查看错误信息进一步定义哪个字段。  
27 - ERR_OUT_OF_MEMORY = 6028, ///< 内存不足,可能存在内存泄漏,iOS 平台使用 Instrument 工具,Android 平台使用 Profiler 工具,分析出什么地方的内存占用高。  
28 - ERR_PARSE_RESPONSE_FAILED = 6001, ///< PB 解析失败,内部错误,可 [提交工单](https://console.cloud.tencent.com/workorder/category?level1_id=29&level2_id=40&source=0&data_title=%E4%BA%91%E9%80%9A%E4%BF%A1%20%20IM&step=1) 提供使用接口、错误码、错误信息给客服解决。  
29 - ERR_SERIALIZE_REQ_FAILED = 6002, ///< PB 序列化失败,内部错误,可 [提交工单](https://console.cloud.tencent.com/workorder/category?level1_id=29&level2_id=40&source=0&data_title=%E4%BA%91%E9%80%9A%E4%BF%A1%20%20IM&step=1) 提供使用接口、错误码、错误信息给客服解决。  
30 - ERR_SDK_NOT_INITIALIZED = 6013, ///< IM SDK 未初始化,初始化成功回调之后重试。  
31 - ERR_LOADMSG_FAILED = 6005, ///< 加载本地数据库操作失败,可能存储文件有损坏,可 [提交工单](https://console.cloud.tencent.com/workorder/category?level1_id=29&level2_id=40&source=0&data_title=%E4%BA%91%E9%80%9A%E4%BF%A1%20%20IM&step=1) 联系客服定位具体问题。  
32 - ERR_DATABASE_OPERATE_FAILED = 6019, ///< 本地数据库操作失败,可能是部分目录无权限或者数据库文件已损坏。  
33 - ERR_SDK_COMM_CROSS_THREAD = 7001, ///< 跨线程错误,不能在跨越不同线程中执行,内部错误,可 [提交工单](https://console.cloud.tencent.com/workorder/category?level1_id=29&level2_id=40&source=0&data_title=%E4%BA%91%E9%80%9A%E4%BF%A1%20%20IM&step=1) 提供使用接口、错误码、错误信息给客服解决。  
34 - ERR_SDK_COMM_TINYID_EMPTY = 7002, ///< TinyId 为空,内部错误,可 [提交工单](https://console.cloud.tencent.com/workorder/category?level1_id=29&level2_id=40&source=0&data_title=%E4%BA%91%E9%80%9A%E4%BF%A1%20%20IM&step=1) 提供使用接口、错误码、错误信息给客服解决。  
35 - ERR_SDK_COMM_INVALID_IDENTIFIER = 7003, ///< Identifier 非法,必须不为空,要求可打印 ASCII 字符(0x20-0x7e),长度不超过32字节。  
36 - ERR_SDK_COMM_FILE_NOT_FOUND = 7004, ///< 文件不存在,请检查文件路径是否正确。  
37 - ERR_SDK_COMM_FILE_TOO_LARGE = 7005, ///< 文件大小超出了限制,如果上传文件,最大限制是28MB。  
38 - ERR_SDK_COMM_FILE_SIZE_EMPTY = 7006, ///< 空文件,要求文件大小不是0字节,如果上传图片、语音、视频或文件,请检查文件是否正确生成。  
39 - ERR_SDK_COMM_FILE_OPEN_FAILED = 7007, ///< 文件打开失败,请检查文件是否存在,或者已被独占打开,引起 SDK 打开失败。  
40 -  
41 - // 帐号错误码  
42 -  
43 - ERR_SDK_NOT_LOGGED_IN = 6014, ///< IM SDK 未登录,请先登录,成功回调之后重试,或者已被踢下线,可使用 TIMManager getLoginUser 检查当前是否在线。  
44 - ERR_NO_PREVIOUS_LOGIN = 6026, ///< 自动登录时,并没有登录过该用户,这时候请调用 login 接口重新登录。  
45 - ERR_USER_SIG_EXPIRED = 6206, ///< UserSig 过期,请重新获取有效的 UserSig 后再重新登录。  
46 - ERR_LOGIN_KICKED_OFF_BY_OTHER = 6208, ///< 其他终端登录同一个帐号,引起已登录的帐号被踢,需重新登录。  
47 - ERR_SDK_ACCOUNT_LOGIN_IN_PROCESS = 7501, ///< 登录正在执行中,例如,第一次 login 或 autoLogin 操作在回调前,后续的 login 或 autoLogin 操作会返回该错误码。  
48 - ERR_SDK_ACCOUNT_LOGOUT_IN_PROCESS = 7502, ///< 登出正在执行中,例如,第一次 logout 操作在回调前,后续的 logout 操作会返回该错误码。  
49 - ERR_SDK_ACCOUNT_TLS_INIT_FAILED = 7503, ///< TLS SDK 初始化失败,内部错误,可 [提交工单](https://console.cloud.tencent.com/workorder/category?level1_id=29&level2_id=40&source=0&data_title=%E4%BA%91%E9%80%9A%E4%BF%A1%20%20IM&step=1) 提供使用接口、错误码、错误信息给客服解决。  
50 - ERR_SDK_ACCOUNT_TLS_NOT_INITIALIZED = 7504, ///< TLS SDK 未初始化,内部错误,可 [提交工单](https://console.cloud.tencent.com/workorder/category?level1_id=29&level2_id=40&source=0&data_title=%E4%BA%91%E9%80%9A%E4%BF%A1%20%20IM&step=1) 提供使用接口、错误码、错误信息给客服解决。  
51 - ERR_SDK_ACCOUNT_TLS_TRANSPKG_ERROR = 7505, ///< TLS SDK TRANS 包格式错误,内部错误,可 [提交工单](https://console.cloud.tencent.com/workorder/category?level1_id=29&level2_id=40&source=0&data_title=%E4%BA%91%E9%80%9A%E4%BF%A1%20%20IM&step=1) 提供使用接口、错误码、错误信息给客服解决。  
52 - ERR_SDK_ACCOUNT_TLS_DECRYPT_FAILED = 7506, ///< TLS SDK 解密失败,内部错误,可 [提交工单](https://console.cloud.tencent.com/workorder/category?level1_id=29&level2_id=40&source=0&data_title=%E4%BA%91%E9%80%9A%E4%BF%A1%20%20IM&step=1) 提供使用接口、错误码、错误信息给客服解决。  
53 - ERR_SDK_ACCOUNT_TLS_REQUEST_FAILED = 7507, ///< TLS SDK 请求失败,内部错误,可 [提交工单](https://console.cloud.tencent.com/workorder/category?level1_id=29&level2_id=40&source=0&data_title=%E4%BA%91%E9%80%9A%E4%BF%A1%20%20IM&step=1) 提供使用接口、错误码、错误信息给客服解决。  
54 - ERR_SDK_ACCOUNT_TLS_REQUEST_TIMEOUT = 7508, ///< TLS SDK 请求超时,内部错误,可 [提交工单](https://console.cloud.tencent.com/workorder/category?level1_id=29&level2_id=40&source=0&data_title=%E4%BA%91%E9%80%9A%E4%BF%A1%20%20IM&step=1) 提供使用接口、错误码、错误信息给客服解决。  
55 -  
56 - // 消息错误码  
57 -  
58 - ERR_INVALID_CONVERSATION = 6004, ///< 会话无效,getConversation 时检查是否已经登录,如未登录获取会话,会有此错误码返回。  
59 - ERR_FILE_TRANS_AUTH_FAILED = 6006, ///< 文件传输鉴权失败,可 [提交工单](https://console.cloud.tencent.com/workorder/category?level1_id=29&level2_id=40&source=0&data_title=%E4%BA%91%E9%80%9A%E4%BF%A1%20%20IM&step=1) 提供使用接口、错误码、错误信息给客服解决。  
60 - ERR_FILE_TRANS_NO_SERVER = 6007, ///< 文件传输获取 Server 列表失败,可 [提交工单](https://console.cloud.tencent.com/workorder/category?level1_id=29&level2_id=40&source=0&data_title=%E4%BA%91%E9%80%9A%E4%BF%A1%20%20IM&step=1) 提供使用接口、错误码、错误信息给客服解决。  
61 - ERR_FILE_TRANS_UPLOAD_FAILED = 6008, ///< 文件传输上传失败,请检查网络是否连接,如果上传的是图片,确认图片能够正常打开。  
62 - ERR_FILE_TRANS_DOWNLOAD_FAILED = 6009, ///< 文件传输下载失败,请检查网络,或者文件、语音是否已经过期,目前资源文件存储7天。  
63 - ERR_HTTP_REQ_FAILED = 6010, ///< HTTP 请求失败,请检查 URL 地址是否合法,可在网页浏览器尝试访问该 URL 地址。  
64 - ERR_INVALID_MSG_ELEM = 6016, ///< IM SDK 无效消息 elem,具体可查看错误信息进一步定义哪个字段。  
65 - ERR_INVALID_SDK_OBJECT = 6021, ///< 无效的对象,例如用户自己生成 TIMImage 对象,或内部赋值错误导致对象无效。  
66 - ERR_SDK_MSG_BODY_SIZE_LIMIT = 8001, ///< 消息长度超出限制,消息长度不要超过8k,消息长度是各个 elem 长度的总和,elem 长度是所有 elem 字段的长度总和。  
67 - ERR_SDK_MSG_KEY_REQ_DIFFER_RSP = 8002, ///< 消息 KEY 错误,内部错误,网络请求包的 KEY 和 回复包的不一致。  
68 -  
69 - // 群组错误码  
70 -  
71 - ERR_SDK_GROUP_INVALID_ID = 8501, ///< 群组 ID 非法,自定义群组 ID 必须为可打印 ASCII 字符(0x20-0x7e),最长48个字节,且前缀不能为 @TGS#(避免与服务端默认分配的群组 ID 混淆)。  
72 - ERR_SDK_GROUP_INVALID_NAME = 8502, ///< 群名称非法,群名称最长30字节,字符编码必须是 UTF-8 ,如果包含中文,可能用多个字节表示一个中文字符,请注意检查字符串的字节长度。  
73 - ERR_SDK_GROUP_INVALID_INTRODUCTION = 8503, ///< 群简介非法,群简介最长240字节,字符编码必须是 UTF-8 ,如果包含中文,可能用多个字节表示一个中文字符,请注意检查字符串的字节长度。  
74 - ERR_SDK_GROUP_INVALID_NOTIFICATION = 8504, ///< 群公告非法,群公告最长300字节,字符编码必须是 UTF-8 ,如果包含中文,可能用多个字节表示一个中文字符,请注意检查字符串的字节长度。  
75 - ERR_SDK_GROUP_INVALID_FACE_URL = 8505, ///< 群头像 URL 非法,群头像 URL 最长100字节,可在网页浏览器尝试访问该 URL 地址。  
76 - ERR_SDK_GROUP_INVALID_NAME_CARD = 8506, ///< 群名片非法,群名片最长50字节,字符编码必须是 UTF-8 ,如果包含中文,可能用多个字节表示一个中文字符,请注意检查字符串的字节长度。  
77 - ERR_SDK_GROUP_MEMBER_COUNT_LIMIT = 8507, ///< 超过群组成员数的限制,在创建群和邀请成员时,指定的成员数超出限制,最大群成员数量:私有群是200人,公开群是2000人,聊天室是10000人,音视频聊天室和在线成员广播大群无限制。  
78 - ERR_SDK_GROUP_JOIN_PRIVATE_GROUP_DENY = 8508, ///< 不允许申请加入 Private 群组,任意群成员可邀请入群,且无需被邀请人同意。  
79 - ERR_SDK_GROUP_INVITE_SUPER_DENY = 8509, ///< 不允许邀请角色为群主的成员,请检查角色字段是否填写正确。  
80 - ERR_SDK_GROUP_INVITE_NO_MEMBER = 8510, ///< 不允许邀请0个成员,请检查成员字段是否填写正确。  
81 -  
82 - // 关系链错误码  
83 -  
84 - ERR_SDK_FRIENDSHIP_INVALID_PROFILE_KEY = 9001, ///< 资料字段非法,资料支持标配字段及自定义字段,其中自定义字段的关键字,必须是英文字母,且长度不得超过8字节,自定义字段的值最长不能超过500字节。  
85 - ERR_SDK_FRIENDSHIP_INVALID_ADD_REMARK = 9002, ///< 备注字段非法,最大96字节,字符编码必须是 UTF-8 ,如果包含中文,可能用多个字节表示一个中文字符,请注意检查字符串的字节长度。  
86 - ERR_SDK_FRIENDSHIP_INVALID_ADD_WORDING = 9003, ///< 请求添加好友的请求说明字段非法,最大120字节,字符编码必须是 UTF-8 ,如果包含中文,可能用多个字节表示一个中文字符,请注意检查字符串的字节长度。  
87 - ERR_SDK_FRIENDSHIP_INVALID_ADD_SOURCE = 9004, ///< 请求添加好友的添加来源字段非法,来源需要添加“AddSource_Type_”前缀。  
88 - ERR_SDK_FRIENDSHIP_FRIEND_GROUP_EMPTY = 9005, ///< 好友分组字段非法,必须不为空,每个分组的名称最长30字节,字符编码必须是 UTF-8 ,如果包含中文,可能用多个字节表示一个中文字符,请注意检查字符串的字节长度。  
89 -  
90 - // 网络错误码  
91 -  
92 - ERR_SDK_NET_ENCODE_FAILED = 9501, ///< SSO 加密失败,内部错误,可 [提交工单](https://console.cloud.tencent.com/workorder/category?level1_id=29&level2_id=40&source=0&data_title=%E4%BA%91%E9%80%9A%E4%BF%A1%20%20IM&step=1) 提供使用接口、错误码、错误信息给客服解决。  
93 - ERR_SDK_NET_DECODE_FAILED = 9502, ///< SSO 解密失败,内部错误,可 [提交工单](https://console.cloud.tencent.com/workorder/category?level1_id=29&level2_id=40&source=0&data_title=%E4%BA%91%E9%80%9A%E4%BF%A1%20%20IM&step=1) 提供使用接口、错误码、错误信息给客服解决。  
94 - ERR_SDK_NET_AUTH_INVALID = 9503, ///< SSO 未完成鉴权,可能登录未完成,请在登录完成后再操作。  
95 - ERR_SDK_NET_COMPRESS_FAILED = 9504, ///< 数据包压缩失败,内部错误,可 [提交工单](https://console.cloud.tencent.com/workorder/category?level1_id=29&level2_id=40&source=0&data_title=%E4%BA%91%E9%80%9A%E4%BF%A1%20%20IM&step=1) 提供使用接口、错误码、错误信息给客服解决。  
96 - ERR_SDK_NET_UNCOMPRESS_FAILED = 9505, ///< 数据包解压失败,内部错误,可 [提交工单](https://console.cloud.tencent.com/workorder/category?level1_id=29&level2_id=40&source=0&data_title=%E4%BA%91%E9%80%9A%E4%BF%A1%20%20IM&step=1) 提供使用接口、错误码、错误信息给客服解决。  
97 - ERR_SDK_NET_FREQ_LIMIT = 9506, ///< 调用频率限制,最大每秒发起 5 次请求。  
98 - ERR_SDK_NET_REQ_COUNT_LIMIT = 9507, ///< 请求队列満,超过同时请求的数量限制,最大同时发起1000个请求。  
99 - ERR_SDK_NET_DISCONNECT = 9508, ///< 网络已断开,未建立连接,或者建立 socket 连接时,检测到无网络。  
100 - ERR_SDK_NET_ALLREADY_CONN = 9509, ///< 网络连接已建立,重复创建连接,内部错误。  
101 - ERR_SDK_NET_CONN_TIMEOUT = 9510, ///< 建立网络连接超时,请等网络恢复后重试。  
102 - ERR_SDK_NET_CONN_REFUSE = 9511, ///< 网络连接已被拒绝,请求过于频繁,服务端拒绝服务。  
103 - ERR_SDK_NET_NET_UNREACH = 9512, ///< 没有到达网络的可用路由,请等网络恢复后重试。  
104 - ERR_SDK_NET_SOCKET_NO_BUFF = 9513, ///< 系统中没有足够的缓冲区空间资源可用来完成调用,系统过于繁忙,内部错误。  
105 - ERR_SDK_NET_RESET_BY_PEER = 9514, ///< 对端重置了连接,可能服务端过载,SDK 内部会自动重连,请等网络连接成功 onConnSucc ( iOS ) 或 onConnected ( Android ) 回调后重试。  
106 - ERR_SDK_NET_SOCKET_INVALID = 9515, ///< socket 套接字无效,内部错误,可 [提交工单](https://console.cloud.tencent.com/workorder/category?level1_id=29&level2_id=40&source=0&data_title=%E4%BA%91%E9%80%9A%E4%BF%A1%20%20IM&step=1) 提供使用接口、错误码、错误信息给客服解决。  
107 - ERR_SDK_NET_HOST_GETADDRINFO_FAILED = 9516, ///< IP 地址解析失败,内部错误,可能是本地 imsdk_config 配置文件被损坏,读取到到 IP 地址非法。  
108 - ERR_SDK_NET_CONNECT_RESET = 9517, ///< 网络连接到中间节点或服务端重置,引起连接失效,内部错误,SDK 内部会自动重连,请等网络连接成功 onConnSucc ( iOS ) 或 onConnected ( Android ) 回调后重试。  
109 - ERR_SDK_NET_WAIT_INQUEUE_TIMEOUT = 9518, ///< 请求包等待进入待发送队列超时,发送时网络连接建立比较慢 或 频繁断网重连时,会出现该错误,请检查网络连接是否正常。  
110 - ERR_SDK_NET_WAIT_SEND_TIMEOUT = 9519, ///< 请求包已进入待发送队列,等待进入系统的网络 buffer 超时,数据包较多 或 发送线程处理不过来,内部错误。  
111 - ERR_SDK_NET_WAIT_ACK_TIMEOUT = 9520, ///< 请求包已进入系统的网络 buffer ,等待服务端回包超时,可能请求包没离开终端设备、中间路由丢弃、服务端意外丢包或回包被系统网络层丢弃,内部错误。  
112 -  
113 - /////////////////////////////////////////////////////////////////////////////////  
114 - //  
115 - // (二)服务端的错误码  
116 - //  
117 - /////////////////////////////////////////////////////////////////////////////////  
118 -  
119 - // SSO 接入层的错误码  
120 -  
121 - ERR_SVR_SSO_CONNECT_LIMIT = -302 , ///< SSO 的连接数量超出限制,服务端拒绝服务。  
122 - ERR_SVR_SSO_VCODE = -10000, ///< 下发验证码标志错误。  
123 - ERR_SVR_SSO_D2_EXPIRED = -10001, ///< D2 过期。  
124 - ERR_SVR_SSO_A2_UP_INVALID = -10003, ///< A2 校验失败等场景使用。  
125 - ERR_SVR_SSO_A2_DOWN_INVALID = -10004, ///< 处理下行包时发现 A2 验证没通过或者被安全打击。  
126 - ERR_SVR_SSO_EMPTY_KEY = -10005, ///< 不允许空 D2Key 加密。  
127 - ERR_SVR_SSO_UIN_INVALID = -10006, ///< D2 中的 uin 和 SSO 包头的 uin 不匹配。  
128 - ERR_SVR_SSO_VCODE_TIMEOUT = -10007, ///< 验证码下发超时。  
129 - ERR_SVR_SSO_NO_IMEI_AND_A2 = -10008, ///< 需要带上 IMEI 和 A2 。  
130 - ERR_SVR_SSO_COOKIE_INVALID = -10009, ///< Cookie 非法。  
131 - ERR_SVR_SSO_DOWN_TIP = -10101, ///< 下发提示语,D2 过期。  
132 - ERR_SVR_SSO_DISCONNECT = -10102, ///< 断链锁屏。  
133 - ERR_SVR_SSO_IDENTIFIER_INVALID = -10103, ///< 失效身份。  
134 - ERR_SVR_SSO_CLIENT_CLOSE = -10104, ///< 终端自动退出。  
135 - ERR_SVR_SSO_MSFSDK_QUIT = -10105, ///< MSFSDK 自动退出。  
136 - ERR_SVR_SSO_D2KEY_WRONG = -10106, ///< SSO D2key 解密失败次数太多,通知终端需要重置,重新刷新 D2 。  
137 - ERR_SVR_SSO_UNSURPPORT = -10107, ///< 不支持聚合,给终端返回统一的错误码。终端在该 TCP 长连接上停止聚合。  
138 - ERR_SVR_SSO_PREPAID_ARREARS = -10108, ///< 预付费欠费。  
139 - ERR_SVR_SSO_PACKET_WRONG = -10109, ///< 请求包格式错误。  
140 - ERR_SVR_SSO_APPID_BLACK_LIST = -10110, ///< SDKAppID 黑名单。  
141 - ERR_SVR_SSO_CMD_BLACK_LIST = -10111, ///< SDKAppID 设置 service cmd 黑名单。  
142 - ERR_SVR_SSO_APPID_WITHOUT_USING = -10112, ///< SDKAppID 停用。  
143 - ERR_SVR_SSO_FREQ_LIMIT = -10113, ///< 频率限制(用户),频率限制是设置针对某一个协议的每秒请求数的限制。  
144 - ERR_SVR_SSO_OVERLOAD = -10114, ///< 过载丢包(系统),连接的服务端处理过多请求,处理不过来,拒绝服务。  
145 -  
146 - // 资源文件错误码  
147 -  
148 - ERR_SVR_RES_NOT_FOUND = 114000, ///< 要发送的资源文件不存在。  
149 - ERR_SVR_RES_ACCESS_DENY = 114001, ///< 要发送的资源文件不允许访问。  
150 - ERR_SVR_RES_SIZE_LIMIT = 114002, ///< 文件大小超过限制。  
151 - ERR_SVR_RES_SEND_CANCEL = 114003, ///< 用户取消发送,如发送过程中登出等原因。  
152 - ERR_SVR_RES_READ_FAILED = 114004, ///< 读取文件内容失败。  
153 - ERR_SVR_RES_TRANSFER_TIMEOUT = 114005, ///< 资源文件(如图片、文件、语音、视频)传输超时,一般是网络问题导致。  
154 - ERR_SVR_RES_INVALID_PARAMETERS = 114011, ///< 参数非法。  
155 - ERR_SVR_RES_INVALID_FILE_MD5 = 115066, ///< 文件 MD5 校验失败。  
156 - ERR_SVR_RES_INVALID_PART_MD5 = 115068, ///< 分片 MD5 校验失败。  
157 -  
158 - // 后台公共错误码  
159 -  
160 - ERR_SVR_COMM_INVALID_HTTP_URL = 60002, ///< HTTP 解析错误 ,请检查 HTTP 请求 URL 格式。  
161 - ERR_SVR_COMM_REQ_JSON_PARSE_FAILED = 60003, ///< HTTP 请求 JSON 解析错误,请检查 JSON 格式。  
162 - ERR_SVR_COMM_INVALID_ACCOUNT = 60004, ///< 请求 URI 或 JSON 包体中 Identifier 或 UserSig 错误。  
163 - ERR_SVR_COMM_INVALID_ACCOUNT_EX = 60005, ///< 请求 URI 或 JSON 包体中 Identifier 或 UserSig 错误。  
164 - ERR_SVR_COMM_INVALID_SDKAPPID = 60006, ///< SDKAppID 失效,请核对 SDKAppID 有效性。  
165 - ERR_SVR_COMM_REST_FREQ_LIMIT = 60007, ///< REST 接口调用频率超过限制,请降低请求频率。  
166 - ERR_SVR_COMM_REQUEST_TIMEOUT = 60008, ///< 服务请求超时或 HTTP 请求格式错误,请检查并重试。  
167 - ERR_SVR_COMM_INVALID_RES = 60009, ///< 请求资源错误,请检查请求 URL。  
168 - ERR_SVR_COMM_ID_NOT_ADMIN = 60010, ///< REST API 请求的 Identifier 字段请填写 App 管理员帐号。  
169 - ERR_SVR_COMM_SDKAPPID_FREQ_LIMIT = 60011, ///< SDKAppID 请求频率超限,请降低请求频率。  
170 - ERR_SVR_COMM_SDKAPPID_MISS = 60012, ///< REST 接口需要带 SDKAppID,请检查请求 URL 中的 SDKAppID。  
171 - ERR_SVR_COMM_RSP_JSON_PARSE_FAILED = 60013, ///< HTTP 响应包 JSON 解析错误。  
172 - ERR_SVR_COMM_EXCHANGE_ACCOUNT_TIMEUT = 60014, ///< 置换帐号超时。  
173 - ERR_SVR_COMM_INVALID_ID_FORMAT = 60015, ///< 请求包体 Identifier 类型错误,请确认 Identifier 为字符串格式。  
174 - ERR_SVR_COMM_SDKAPPID_FORBIDDEN = 60016, ///< SDKAppID 被禁用,请 [提交工单](https://console.cloud.tencent.com/workorder/category?level1_id=29&level2_id=40&source=0&data_title=%E4%BA%91%E9%80%9A%E4%BF%A1%20%20IM&step=1) 联系客服确认。  
175 - ERR_SVR_COMM_REQ_FORBIDDEN = 60017, ///< 请求被禁用,请 [提交工单](https://console.cloud.tencent.com/workorder/category?level1_id=29&level2_id=40&source=0&data_title=%E4%BA%91%E9%80%9A%E4%BF%A1%20%20IM&step=1) 联系客服确认。  
176 - ERR_SVR_COMM_REQ_FREQ_LIMIT = 60018, ///< 请求过于频繁,请稍后重试。  
177 - ERR_SVR_COMM_REQ_FREQ_LIMIT_EX = 60019, ///< 请求过于频繁,请稍后重试。  
178 - ERR_SVR_COMM_INVALID_SERVICE = 60020, ///< 未购买套餐包或购买的套餐包正在配置中暂未生效,请五分钟后再次尝试。  
179 - ERR_SVR_COMM_SENSITIVE_TEXT = 80001, ///< 文本安全打击,文本中可能包含敏感词汇。  
180 - ERR_SVR_COMM_BODY_SIZE_LIMIT = 80002, ///< 发消息包体过长,目前支持最大8k消息包体长度,请减少包体大小重试。  
181 -  
182 - // 帐号错误码  
183 -  
184 - ERR_SVR_ACCOUNT_USERSIG_EXPIRED = 70001, ///< UserSig 已过期,请重新生成 UserSig,建议 UserSig 有效期不小于24小时。  
185 - ERR_SVR_ACCOUNT_USERSIG_EMPTY = 70002, ///< UserSig 长度为0,请检查传入的 UserSig 是否正确。  
186 - ERR_SVR_ACCOUNT_USERSIG_CHECK_FAILED = 70003, ///< UserSig 校验失败,请确认下 UserSig 内容是否被截断,如缓冲区长度不够导致的内容截断。  
187 - ERR_SVR_ACCOUNT_USERSIG_CHECK_FAILED_EX = 70005, ///< UserSig 校验失败,可用工具自行验证生成的 UserSig 是否正确。  
188 - ERR_SVR_ACCOUNT_USERSIG_MISMATCH_PUBLICKEY = 70009, ///< 用公钥验证 UserSig 失败,请确认生成的 UserSig 使用的私钥和 SDKAppID 是否对应。  
189 - ERR_SVR_ACCOUNT_USERSIG_MISMATCH_ID = 70013, ///< 请求的 Identifier 与生成 UserSig 的 Identifier 不匹配。  
190 - ERR_SVR_ACCOUNT_USERSIG_MISMATCH_SDKAPPID = 70014, ///< 请求的 SDKAppID 与生成 UserSig 的 SDKAppID 不匹配。  
191 - ERR_SVR_ACCOUNT_USERSIG_PUBLICKEY_NOT_FOUND = 70016, ///< 验证 UserSig 时公钥不存在。请先登录控制台下载私钥,下载私钥的具体方法可参考 [下载签名用的私钥](https://cloud.tencent.com/document/product/269/32688#.E4.B8.8B.E8.BD.BD.E7.AD.BE.E5.90.8D.E7.94.A8.E7.9A.84.E7.A7.81.E9.92.A5) 。  
192 - ERR_SVR_ACCOUNT_SDKAPPID_NOT_FOUND = 70020, ///< SDKAppID 未找到,请在云通信 IM 控制台确认应用信息。  
193 - ERR_SVR_ACCOUNT_INVALID_USERSIG = 70052, ///< UserSig 已经失效,请重新生成,再次尝试。  
194 - ERR_SVR_ACCOUNT_NOT_FOUND = 70107, ///< 请求的用户帐号不存在。  
195 - ERR_SVR_ACCOUNT_SEC_RSTR = 70114, ///< 安全原因被限制。  
196 - ERR_SVR_ACCOUNT_INTERNAL_TIMEOUT = 70169, ///< 服务端内部超时,请重试。  
197 - ERR_SVR_ACCOUNT_INVALID_COUNT = 70206, ///< 请求中批量数量不合法。  
198 - ERR_SVR_ACCOUNT_INVALID_PARAMETERS = 70402, ///< 参数非法,请检查必填字段是否填充,或者字段的填充是否满足协议要求。  
199 - ERR_SVR_ACCOUNT_ADMIN_REQUIRED = 70403, ///< 请求需要 App 管理员权限。  
200 - ERR_SVR_ACCOUNT_FREQ_LIMIT = 70050, ///< 因失败且重试次数过多导致被限制,请检查 UserSig 是否正确,一分钟之后再试。  
201 - ERR_SVR_ACCOUNT_BLACKLIST = 70051, ///< 帐号被拉入黑名单。  
202 - ERR_SVR_ACCOUNT_COUNT_LIMIT = 70398, ///< 创建帐号数量超过免费体验版数量限制,请升级为专业版。  
203 - ERR_SVR_ACCOUNT_INTERNAL_ERROR = 70500, ///< 服务端内部错误,请重试。  
204 -  
205 - // 资料错误码  
206 -  
207 - ERR_SVR_PROFILE_INVALID_PARAMETERS = 40001, ///< 请求参数错误,请根据错误描述检查请求是否正确。  
208 - ERR_SVR_PROFILE_ACCOUNT_MISS = 40002, ///< 请求参数错误,没有指定需要拉取资料的用户帐号。  
209 - ERR_SVR_PROFILE_ACCOUNT_NOT_FOUND = 40003, ///< 请求的用户帐号不存在。  
210 - ERR_SVR_PROFILE_ADMIN_REQUIRED = 40004, ///< 请求需要 App 管理员权限。  
211 - ERR_SVR_PROFILE_SENSITIVE_TEXT = 40005, ///< 资料字段中包含敏感词。  
212 - ERR_SVR_PROFILE_INTERNAL_ERROR = 40006, ///< 服务端内部错误,请稍后重试。  
213 - ERR_SVR_PROFILE_READ_PERMISSION_REQUIRED = 40007, ///< 没有资料字段的读权限,详情可参见 [资料字段](https://cloud.tencent.com/document/product/269/1500#.E8.B5.84.E6.96.99.E5.AD.97.E6.AE.B5) 。  
214 - ERR_SVR_PROFILE_WRITE_PERMISSION_REQUIRED = 40008, ///< 没有资料字段的写权限,详情可参见 [资料字段](https://cloud.tencent.com/document/product/269/1500#.E8.B5.84.E6.96.99.E5.AD.97.E6.AE.B5) 。  
215 - ERR_SVR_PROFILE_TAG_NOT_FOUND = 40009, ///< 资料字段的 Tag 不存在。  
216 - ERR_SVR_PROFILE_SIZE_LIMIT = 40601, ///< 资料字段的 Value 长度超过500字节。  
217 - ERR_SVR_PROFILE_VALUE_ERROR = 40605, ///< 标配资料字段的 Value 错误,详情可参见 [标配资料字段](https://cloud.tencent.com/doc/product/269/1500#.E6.A0.87.E9.85.8D.E8.B5.84.E6.96.99.E5.AD.97.E6.AE.B5) 。  
218 - ERR_SVR_PROFILE_INVALID_VALUE_FORMAT = 40610, ///< 资料字段的 Value 类型不匹配,详情可参见 [标配资料字段](https://cloud.tencent.com/doc/product/269/1500#.E6.A0.87.E9.85.8D.E8.B5.84.E6.96.99.E5.AD.97.E6.AE.B5) 。  
219 -  
220 - // 关系链错误码  
221 -  
222 - ERR_SVR_FRIENDSHIP_INVALID_PARAMETERS = 30001, ///< 请求参数错误,请根据错误描述检查请求是否正确。  
223 - ERR_SVR_FRIENDSHIP_INVALID_SDKAPPID = 30002, ///< SDKAppID 不匹配。  
224 - ERR_SVR_FRIENDSHIP_ACCOUNT_NOT_FOUND = 30003, ///< 请求的用户帐号不存在。  
225 - ERR_SVR_FRIENDSHIP_ADMIN_REQUIRED = 30004, ///< 请求需要 App 管理员权限。  
226 - ERR_SVR_FRIENDSHIP_SENSITIVE_TEXT = 30005, ///< 关系链字段中包含敏感词。  
227 - ERR_SVR_FRIENDSHIP_INTERNAL_ERROR = 30006, ///< 服务端内部错误,请重试。  
228 - ERR_SVR_FRIENDSHIP_NET_TIMEOUT = 30007, ///< 网络超时,请稍后重试。  
229 - ERR_SVR_FRIENDSHIP_WRITE_CONFLICT = 30008, ///< 并发写导致写冲突,建议使用批量方式。  
230 - ERR_SVR_FRIENDSHIP_ADD_FRIEND_DENY = 30009, ///< 后台禁止该用户发起加好友请求。  
231 - ERR_SVR_FRIENDSHIP_COUNT_LIMIT = 30010, ///< 自己的好友数已达系统上限。  
232 - ERR_SVR_FRIENDSHIP_GROUP_COUNT_LIMIT = 30011, ///< 分组已达系统上限。  
233 - ERR_SVR_FRIENDSHIP_PENDENCY_LIMIT = 30012, ///< 未决数已达系统上限。  
234 - ERR_SVR_FRIENDSHIP_BLACKLIST_LIMIT = 30013, ///< 黑名单数已达系统上限。  
235 - ERR_SVR_FRIENDSHIP_PEER_FRIEND_LIMIT = 30014, ///< 对方的好友数已达系统上限。  
236 - ERR_SVR_FRIENDSHIP_IN_SELF_BLACKLIST = 30515, ///< 请求添加好友时,对方在自己的黑名单中,不允许加好友。  
237 - ERR_SVR_FRIENDSHIP_ALLOW_TYPE_DENY_ANY = 30516, ///< 请求添加好友时,对方的加好友验证方式是不允许任何人添加自己为好友。  
238 - ERR_SVR_FRIENDSHIP_IN_PEER_BLACKLIST = 30525, ///< 请求添加好友时,自己在对方的黑名单中,不允许加好友。  
239 - ERR_SVR_FRIENDSHIP_ALLOW_TYPE_NEED_CONFIRM = 30539, ///< A 请求加 B 为好友,B 的加好友验证方式被设置为“AllowType_Type_NeedConfirm”,这时 A 与 B 之间只能形成未决关系,该返回码用于标识加未决成功,以便与加好友成功的返回码区分开,调用方可以捕捉该错误给用户一个合理的提示。  
240 - ERR_SVR_FRIENDSHIP_ADD_FRIEND_SEC_RSTR = 30540, ///< 添加好友请求被安全策略打击,请勿频繁发起添加好友请求。  
241 - ERR_SVR_FRIENDSHIP_PENDENCY_NOT_FOUND = 30614, ///< 请求的未决不存在。  
242 - ERR_SVR_FRIENDSHIP_DEL_NONFRIEND = 31704, ///< 与请求删除的帐号之间不存在好友关系。  
243 - ERR_SVR_FRIENDSHIP_DEL_FRIEND_SEC_RSTR = 31707, ///< 删除好友请求被安全策略打击,请勿频繁发起删除好友请求。  
244 - ERR_SVR_FRIENDSHIP_ACCOUNT_NOT_FOUND_EX = 31804, ///< 请求的用户帐号不存在。  
245 -  
246 - // 最近联系人错误码  
247 -  
248 - ERR_SVR_CONV_ACCOUNT_NOT_FOUND = 50001, ///< 请求的用户帐号不存在。  
249 - ERR_SVR_CONV_INVALID_PARAMETERS = 50002, ///< 请求参数错误,请根据错误描述检查请求是否正确。  
250 - ERR_SVR_CONV_ADMIN_REQUIRED = 50003, ///< 请求需要 App 管理员权限。  
251 - ERR_SVR_CONV_INTERNAL_ERROR = 50004, ///< 服务端内部错误,请重试。  
252 - ERR_SVR_CONV_NET_TIMEOUT = 50005, ///< 网络超时,请稍后重试。  
253 -  
254 - // 消息错误码  
255 -  
256 - ERR_SVR_MSG_PKG_PARSE_FAILED = 20001, ///< 请求包非法,请检查发送方和接收方帐号是否存在。  
257 - ERR_SVR_MSG_INTERNAL_AUTH_FAILED = 20002, ///< 内部鉴权失败。  
258 - ERR_SVR_MSG_INVALID_ID = 20003, ///< Identifier 无效或者 Identifier 未导入云通信 IM。  
259 - ERR_SVR_MSG_NET_ERROR = 20004, ///< 网络异常,请重试。  
260 - ERR_SVR_MSG_INTERNAL_ERROR1 = 20005, ///< 服务端内部错误,请重试。  
261 - ERR_SVR_MSG_PUSH_DENY = 20006, ///< 触发发送单聊消息之前回调,App 后台返回禁止下发该消息。  
262 - ERR_SVR_MSG_IN_PEER_BLACKLIST = 20007, ///< 发送单聊消息,被对方拉黑,禁止发送。  
263 - ERR_SVR_MSG_BOTH_NOT_FRIEND = 20009, ///< 消息发送双方互相不是好友,禁止发送(配置单聊消息校验好友关系才会出现)。  
264 - ERR_SVR_MSG_NOT_PEER_FRIEND = 20010, ///< 发送单聊消息,自己不是对方的好友(单向关系),禁止发送。  
265 - ERR_SVR_MSG_NOT_SELF_FRIEND = 20011, ///< 发送单聊消息,对方不是自己的好友(单向关系),禁止发送。  
266 - ERR_SVR_MSG_SHUTUP_DENY = 20012, ///< 因禁言,禁止发送消息。  
267 - ERR_SVR_MSG_REVOKE_TIME_LIMIT = 20016, ///< 消息撤回超过了时间限制(默认2分钟)。  
268 - ERR_SVR_MSG_DEL_RAMBLE_INTERNAL_ERROR = 20018, ///< 删除漫游内部错误。  
269 - ERR_SVR_MSG_JSON_PARSE_FAILED = 90001, ///< JSON 格式解析失败,请检查请求包是否符合 JSON 规范。  
270 - ERR_SVR_MSG_INVALID_JSON_BODY_FORMAT = 90002, ///< JSON 格式请求包中 MsgBody 不符合消息格式描述,或者 MsgBody 不是 Array 类型,请参考 [TIMMsgElement 对象](https://cloud.tencent.com/document/product/269/2720#.E6.B6.88.E6.81.AF.E5.85.83.E7.B4.A0timmsgelement) 的定义。  
271 - ERR_SVR_MSG_INVALID_TO_ACCOUNT = 90003, ///< JSON 格式请求包体中缺少 To_Account 字段或者 To_Account 字段不是 Integer 类型  
272 - ERR_SVR_MSG_INVALID_RAND = 90005, ///< JSON 格式请求包体中缺少 MsgRandom 字段或者 MsgRandom 字段不是 Integer 类型  
273 - ERR_SVR_MSG_INVALID_TIMESTAMP = 90006, ///< JSON 格式请求包体中缺少 MsgTimeStamp 字段或者 MsgTimeStamp 字段不是 Integer 类型  
274 - ERR_SVR_MSG_BODY_NOT_ARRAY = 90007, ///< JSON 格式请求包体中 MsgBody 类型不是 Array 类型,请将其修改为 Array 类型  
275 - ERR_SVR_MSG_ADMIN_REQUIRED = 90009, ///< 请求需要 App 管理员权限。  
276 - ERR_SVR_MSG_INVALID_JSON_FORMAT = 90010, ///< JSON 格式请求包不符合消息格式描述,请参考 [TIMMsgElement 对象](https://cloud.tencent.com/document/product/269/2720#.E6.B6.88.E6.81.AF.E5.85.83.E7.B4.A0timmsgelement) 的定义。  
277 - ERR_SVR_MSG_TO_ACCOUNT_COUNT_LIMIT = 90011, ///< 批量发消息目标帐号超过500,请减少 To_Account 中目标帐号数量。  
278 - ERR_SVR_MSG_TO_ACCOUNT_NOT_FOUND = 90012, ///< To_Account 没有注册或不存在,请确认 To_Account 是否导入云通信 IM 或者是否拼写错误。  
279 - ERR_SVR_MSG_TIME_LIMIT = 90026, ///< 消息离线存储时间错误(最多不能超过7天)。  
280 - ERR_SVR_MSG_INVALID_SYNCOTHERMACHINE = 90031, ///< JSON 格式请求包体中 SyncOtherMachine 字段不是 Integer 类型  
281 - ERR_SVR_MSG_INVALID_MSGLIFETIME = 90044, ///< JSON 格式请求包体中 MsgLifeTime 字段不是 Integer 类型  
282 - ERR_SVR_MSG_ACCOUNT_NOT_FOUND = 90048, ///< 请求的用户帐号不存在。  
283 - ERR_SVR_MSG_INTERNAL_ERROR2 = 90994, ///< 服务内部错误,请重试。  
284 - ERR_SVR_MSG_INTERNAL_ERROR3 = 90995, ///< 服务内部错误,请重试。  
285 - ERR_SVR_MSG_INTERNAL_ERROR4 = 91000, ///< 服务内部错误,请重试。  
286 - ERR_SVR_MSG_INTERNAL_ERROR5 = 90992, ///< 服务内部错误,请重试;如果所有请求都返回该错误码,且 App 配置了第三方回调,请检查 App 服务端是否正常向云通信 IM 后台服务端返回回调结果。  
287 - ERR_SVR_MSG_BODY_SIZE_LIMIT = 93000, ///< JSON 数据包超长,消息包体请不要超过8k。  
288 - ERR_SVR_MSG_LONGPOLLING_COUNT_LIMIT = 91101, ///< Web 端长轮询被踢(Web 端同时在线实例个数超出限制)。  
289 - // 120001 - 130000, ///< 单聊第三方回调返回的自定义错误码。  
290 -  
291 - // 群组错误码  
292 -  
293 - ERR_SVR_GROUP_INTERNAL_ERROR = 10002, ///< 服务端内部错误,请重试。  
294 - ERR_SVR_GROUP_API_NAME_ERROR = 10003, ///< 请求中的接口名称错误,请核对接口名称并重试。  
295 - ERR_SVR_GROUP_INVALID_PARAMETERS = 10004, ///< 参数非法,请根据错误描述检查请求是否正确。  
296 - ERR_SVR_GROUP_ACOUNT_COUNT_LIMIT = 10005, ///< 请求包体中携带的帐号数量过多。  
297 - ERR_SVR_GROUP_FREQ_LIMIT = 10006, ///< 操作频率限制,请尝试降低调用的频率。  
298 - ERR_SVR_GROUP_PERMISSION_DENY = 10007, ///< 操作权限不足,比如 Public 群组中普通成员尝试执行踢人操作,但只有 App 管理员才有权限。  
299 - ERR_SVR_GROUP_INVALID_REQ = 10008, ///< 请求非法,可能是请求中携带的签名信息验证不正确,请再次尝试或 [提交工单](https://console.cloud.tencent.com/workorder/category?level1_id=29&level2_id=40&source=0&data_title=%E4%BA%91%E9%80%9A%E4%BF%A1%20%20IM&step=1) 联系技术客服。  
300 - ERR_SVR_GROUP_SUPER_NOT_ALLOW_QUIT = 10009, ///< 该群不允许群主主动退出。  
301 - ERR_SVR_GROUP_NOT_FOUND = 10010, ///< 群组不存在,或者曾经存在过,但是目前已经被解散。  
302 - ERR_SVR_GROUP_JSON_PARSE_FAILED = 10011, ///< 解析 JSON 包体失败,请检查包体的格式是否符合 JSON 格式。  
303 - ERR_SVR_GROUP_INVALID_ID = 10012, ///< 发起操作的 Identifier 非法,请检查发起操作的用户 Identifier 是否填写正确。  
304 - ERR_SVR_GROUP_ALLREADY_MEMBER = 10013, ///< 被邀请加入的用户已经是群成员。  
305 - ERR_SVR_GROUP_FULL_MEMBER_COUNT = 10014, ///< 群已满员,无法将请求中的用户加入群组,如果是批量加人,可以尝试减少加入用户的数量。  
306 - ERR_SVR_GROUP_INVALID_GROUPID = 10015, ///< 群组 ID 非法,请检查群组 ID 是否填写正确。  
307 - ERR_SVR_GROUP_REJECT_FROM_THIRDPARTY = 10016, ///< App 后台通过第三方回调拒绝本次操作。  
308 - ERR_SVR_GROUP_SHUTUP_DENY = 10017, ///< 因被禁言而不能发送消息,请检查发送者是否被设置禁言。  
309 - ERR_SVR_GROUP_RSP_SIZE_LIMIT = 10018, ///< 应答包长度超过最大包长(1MB),请求的内容过多,请尝试减少单次请求的数据量。  
310 - ERR_SVR_GROUP_ACCOUNT_NOT_FOUND = 10019, ///< 请求的用户帐号不存在。  
311 - ERR_SVR_GROUP_GROUPID_IN_USED = 10021, ///< 群组 ID 已被使用,请选择其他的群组 ID。  
312 - ERR_SVR_GROUP_SEND_MSG_FREQ_LIMIT = 10023, ///< 发消息的频率超限,请延长两次发消息时间的间隔。  
313 - ERR_SVR_GROUP_REQ_ALLREADY_BEEN_PROCESSED = 10024, ///< 此邀请或者申请请求已经被处理。  
314 - ERR_SVR_GROUP_GROUPID_IN_USED_FOR_SUPER = 10025, ///< 群组 ID 已被使用,并且操作者为群主,可以直接使用。  
315 - ERR_SVR_GROUP_SDKAPPID_DENY = 10026, ///< 该 SDKAppID 请求的命令字已被禁用,请 [提交工单](https://console.cloud.tencent.com/workorder/category?level1_id=29&level2_id=40&source=0&data_title=%E4%BA%91%E9%80%9A%E4%BF%A1%20%20IM&step=1) 联系客服。  
316 - ERR_SVR_GROUP_REVOKE_MSG_NOT_FOUND = 10030, ///< 请求撤回的消息不存在。  
317 - ERR_SVR_GROUP_REVOKE_MSG_TIME_LIMIT = 10031, ///< 消息撤回超过了时间限制(默认2分钟)。  
318 - ERR_SVR_GROUP_REVOKE_MSG_DENY = 10032, ///< 请求撤回的消息不支持撤回操作。  
319 - ERR_SVR_GROUP_NOT_ALLOW_REVOKE_MSG = 10033, ///< 群组类型不支持消息撤回操作。  
320 - ERR_SVR_GROUP_REMOVE_MSG_DENY = 10034, ///< 该消息类型不支持删除操作。  
321 - ERR_SVR_GROUP_NOT_ALLOW_REMOVE_MSG = 10035, ///< 音视频聊天室和在线成员广播大群不支持删除消息。  
322 - ERR_SVR_GROUP_AVCHATROOM_COUNT_LIMIT = 10036, ///< 音视频聊天室创建数量超过了限制,请参考 [价格说明](https://cloud.tencent.com/document/product/269/11673) 购买预付费套餐“IM音视频聊天室”。  
323 - ERR_SVR_GROUP_COUNT_LIMIT = 10037, ///< 单个用户可创建和加入的群组数量超过了限制,请参考 [价格说明](https://cloud.tencent.com/document/product/269/11673) 购买或升级预付费套餐“单人可创建与加入群组数”。  
324 - ERR_SVR_GROUP_MEMBER_COUNT_LIMIT = 10038, ///< 群成员数量超过限制,请参考 [价格说明](https://cloud.tencent.com/document/product/269/11673) 购买或升级预付费套餐“扩展群人数上限”。  
325 -  
326 - /////////////////////////////////////////////////////////////////////////////////  
327 - //  
328 - // (三)IM SDK V3 版本的错误码  
329 - //  
330 - /////////////////////////////////////////////////////////////////////////////////  
331 -  
332 - ERR_NO_SUCC_RESULT = 6003, ///< 批量操作无成功结果。  
333 - ERR_TO_USER_INVALID = 6011, ///< 无效接收方。  
334 - ERR_REQUEST_TIMEOUT = 6012, ///< 请求超时。  
335 - ERR_INIT_CORE_FAIL = 6018, ///< INIT CORE 模块失败。  
336 - ERR_EXPIRED_SESSION_NODE = 6020, ///< SessionNode 为 null 。  
337 - ERR_LOGGED_OUT_BEFORE_LOGIN_FINISHED = 6023, ///< 在登录完成前进行了登出(在登录时返回)。  
338 - ERR_TLSSDK_NOT_INITIALIZED = 6024, ///< TLS SDK 未初始化。  
339 - ERR_TLSSDK_USER_NOT_FOUND = 6025, ///< TLS SDK 没有找到相应的用户信息。  
340 - ERR_BIND_FAIL_UNKNOWN = 6100, ///< QALSDK 未知原因BIND失败。  
341 - ERR_BIND_FAIL_NO_SSOTICKET = 6101, ///< 缺少 SSO 票据。  
342 - ERR_BIND_FAIL_REPEATD_BIND = 6102, ///< 重复 BIND。  
343 - ERR_BIND_FAIL_TINYID_NULL = 6103, ///< TinyId 为空。  
344 - ERR_BIND_FAIL_GUID_NULL = 6104, ///< GUID 为空。  
345 - ERR_BIND_FAIL_UNPACK_REGPACK_FAILED = 6105, ///< 解注册包失败。  
346 - ERR_BIND_FAIL_REG_TIMEOUT = 6106, ///< 注册超时。  
347 - ERR_BIND_FAIL_ISBINDING = 6107, ///< 正在 BIND 操作中。  
348 - ERR_PACKET_FAIL_UNKNOWN = 6120, ///< 发包未知错误。  
349 - ERR_PACKET_FAIL_REQ_NO_NET = 6121, ///< 发送请求包时没有网络。  
350 - ERR_PACKET_FAIL_RESP_NO_NET = 6122, ///< 发送回复包时没有网络。  
351 - ERR_PACKET_FAIL_REQ_NO_AUTH = 6123, ///< 发送请求包时没有权限。  
352 - ERR_PACKET_FAIL_SSO_ERR = 6124, ///< SSO 错误。  
353 - ERR_PACKET_FAIL_REQ_TIMEOUT = 6125, ///< 请求超时。  
354 - ERR_PACKET_FAIL_RESP_TIMEOUT = 6126, ///< 回复超时。  
355 - ERR_PACKET_FAIL_REQ_ON_RESEND = 6127, ///< 重发失败。  
356 - ERR_PACKET_FAIL_RESP_NO_RESEND = 6128, ///< 重发时没有真正发送。  
357 - ERR_PACKET_FAIL_FLOW_SAVE_FILTERED = 6129, ///< 保存被过滤。  
358 - ERR_PACKET_FAIL_REQ_OVER_LOAD = 6130, ///< 发送过载。  
359 - ERR_PACKET_FAIL_LOGIC_ERR = 6131, ///< 数据逻辑错误。  
360 - ERR_FRIENDSHIP_PROXY_NOT_SYNCED = 6150, ///< proxy_manager 没有完成服务端数据同步。  
361 - ERR_FRIENDSHIP_PROXY_SYNCING = 6151, ///< proxy_manager 正在进行服务端数据同步。  
362 - ERR_FRIENDSHIP_PROXY_SYNCED_FAIL = 6152, ///< proxy_manager 同步失败。  
363 - ERR_FRIENDSHIP_PROXY_LOCAL_CHECK_ERR = 6153, ///< proxy_manager 请求参数,在本地检查不合法。  
364 - ERR_GROUP_INVALID_FIELD = 6160, ///< Group assistant 请求字段中包含非预设字段。  
365 - ERR_GROUP_STORAGE_DISABLED = 6161, ///< Group assistant 群资料本地存储没有开启。  
366 - ERR_LOADGRPINFO_FAILED = 6162, ///< 加载群资料失败。  
367 - ERR_REQ_NO_NET_ON_REQ = 6200, ///< 请求的时候没有网络。  
368 - ERR_REQ_NO_NET_ON_RSP = 6201, ///< 响应的时候没有网络。  
369 - ERR_SERIVCE_NOT_READY = 6205, ///< QALSDK 服务未就绪。  
370 - ERR_LOGIN_AUTH_FAILED = 6207, ///< 账号认证失败( TinyId 转换失败)。  
371 - ERR_NEVER_CONNECT_AFTER_LAUNCH = 6209, ///< 在应用启动后没有尝试联网。  
372 - ERR_REQ_FAILED = 6210, ///< QALSDK 执行失败。  
373 - ERR_REQ_INVALID_REQ = 6211, ///< 请求非法,toMsgService 非法。  
374 - ERR_REQ_OVERLOADED = 6212, ///< 请求队列满。  
375 - ERR_REQ_KICK_OFF = 6213, ///< 已经被其他终端踢了。  
376 - ERR_REQ_SERVICE_SUSPEND = 6214, ///< 服务被暂停。  
377 - ERR_REQ_INVALID_SIGN = 6215, ///< SSO 签名错误。  
378 - ERR_REQ_INVALID_COOKIE = 6216, ///< SSO cookie 无效。  
379 - ERR_LOGIN_TLS_RSP_PARSE_FAILED = 6217, ///< 登录时 TLS SDK 回包校验,包体长度错误。  
380 - ERR_LOGIN_OPENMSG_TIMEOUT = 6218, ///< 登录时 OPENSTATSVC 向 OPENMSG 上报状态超时。  
381 - ERR_LOGIN_OPENMSG_RSP_PARSE_FAILED = 6219, ///< 登录时 OPENSTATSVC 向 OPENMSG 上报状态时解析回包失败。  
382 - ERR_LOGIN_TLS_DECRYPT_FAILED = 6220, ///< 登录时 TLS SDK 解密失败。  
383 - ERR_WIFI_NEED_AUTH = 6221, ///< WIFI 需要认证。  
384 - ERR_USER_CANCELED = 6222, ///< 用户已取消。  
385 - ERR_REVOKE_TIME_LIMIT_EXCEED = 6223, ///< 消息撤回超过了时间限制(默认2分钟)。  
386 - ERR_LACK_UGC_EXT = 6224, ///< 缺少 UGC 扩展包。  
387 - ERR_AUTOLOGIN_NEED_USERSIG = 6226, ///< 自动登录,本地票据过期,需要 UserSig 手动登录。  
388 - ERR_QAL_NO_SHORT_CONN_AVAILABLE = 6300, ///< 没有可用的短连接 SSO 。  
389 - ERR_REQ_CONTENT_ATTACK = 80101, ///< 消息内容安全打击。  
390 - ERR_LOGIN_SIG_EXPIRE = 70101, ///< 登录返回,票据过期。  
391 - ERR_SDK_HAD_INITIALIZED = 90101, ///< IM SDK 已经初始化无需重复初始化。  
392 - ERR_OPENBDH_BASE = 115000, ///< OpenBDH 错误码基。  
393 - ERR_REQUEST_NO_NET_ONREQ = 6250, ///< 请求时没有网络,请等网络恢复后重试。  
394 - ERR_REQUEST_NO_NET_ONRSP = 6251, ///< 响应时没有网络,请等网络恢复后重试。  
395 - ERR_REQUEST_FAILED = 6252, ///< QALSDK 执行失败。  
396 - ERR_REQUEST_INVALID_REQ = 6253, ///< 请求非法,toMsgService 非法。  
397 - ERR_REQUEST_OVERLOADED = 6254, ///< 请求队列満。  
398 - ERR_REQUEST_KICK_OFF = 6255, ///< 已经被其他终端踢了。  
399 - ERR_REQUEST_SERVICE_SUSPEND = 6256, ///< 服务被暂停。  
400 - ERR_REQUEST_INVALID_SIGN = 6257, ///< SSO 签名错误。  
401 - ERR_REQUEST_INVALID_COOKIE = 6258, ///< SSO cookie 无效。  
402 -  
403 -};  
404 -  
405 -#endif /* TIMErrorCode_h */  
1 -//  
2 -// TIMFriendshipDefine.h  
3 -// imsdk  
4 -//  
5 -// Created by annidyfeng on 2019/3/7.  
6 -// Copyright © 2019年 Tencent. All rights reserved.  
7 -//  
8 -  
9 -#ifndef TIMFriendshipDefine_h  
10 -#define TIMFriendshipDefine_h  
11 -  
12 -#import "ImSDK.h"  
13 -  
14 -@class TIMFriendPendencyResponse;  
15 -@class TIMFriendPendencyItem;  
16 -@class TIMFriendFutureMeta;  
17 -@class TIMFriendGroup;  
18 -  
19 -#pragma mark - 枚举类型  
20 -  
21 -/**  
22 - * 好友操作状态  
23 - *  
24 - * 详细错误码参见 https://cloud.tencent.com/document/product/269/1671#.E5.85.B3.E7.B3.BB.E9.93.BE.E9.94.99.E8.AF.AF.E7.A0.81  
25 - */  
26 -typedef NS_ENUM(NSInteger, TIMFriendStatus) {  
27 - /**  
28 - * 操作成功  
29 - */  
30 - TIM_FRIEND_STATUS_SUCC = 0,  
31 -  
32 - /**  
33 - * 请求参数错误,请根据错误描述检查请求是否正确  
34 - */  
35 - TIM_FRIEND_PARAM_INVALID = 30001,  
36 -  
37 - /**  
38 - * 请求参数错误,SdkAppid 不匹配。  
39 - */  
40 - TIM_FRIEND_SDK_APPID_INVALID = 30002,  
41 -  
42 - /**  
43 - * 请求的用户帐号不存在  
44 - */  
45 - TIM_FRIEND_ID_INVALID = 30003,  
46 -  
47 - /**  
48 - * 请求需要 App 管理员权限  
49 - */  
50 - TIM_FRIEND_NEED_ADMIN_PERMISSON = 30004,  
51 -  
52 - /**  
53 - * 关系链字段中包含敏感词  
54 - */  
55 - TIM_FRIEND_DIRTY_WORD = 30005,  
56 -  
57 - /**  
58 - * 服务器内部错误,请重试  
59 - */  
60 - TIM_FRIEND_SERVER_ERROR = 30006,  
61 -  
62 - /**  
63 - * 网络超时,请稍后重试  
64 - */  
65 - TIM_FRIEND_TIMEOUT = 30007,  
66 -  
67 - /**  
68 - * 并发写导致写冲突,建议使用批量方式  
69 - */  
70 - TIM_FRIEND_WRITE_ERROR = 30008,  
71 -  
72 - /**  
73 - * 后台禁止该用户发起加好友请求  
74 - */  
75 - TIM_ADD_FRIEND_FORBIDEN = 30009,  
76 -  
77 - /**  
78 - * 自己的好友数已达系统上限  
79 - */  
80 - TIM_ADD_FRIEND_STATUS_SELF_FRIEND_FULL = 30010,  
81 -  
82 - /**  
83 - * 分组已达系统上限  
84 - */  
85 - TIM_UPDATE_FRIEND_GROUP_STATUS_MAX_GROUPS_EXCEED = 30011,  
86 -  
87 - /**  
88 - * 未决数已达系统上限。  
89 - */  
90 - TIM_PENDENCY_STATUS_FULL = 30012,  
91 -  
92 - /**  
93 - * 黑名单数已达系统上限  
94 - */  
95 - TIM_ADD_BLACKLIST_STATUS_FULL = 30013,  
96 -  
97 - /**  
98 - * 对方的好友数已达系统上限  
99 - */  
100 - TIM_ADD_FRIEND_STATUS_THEIR_FRIEND_FULL = 30014,  
101 -  
102 - /**  
103 - * 被加好友在自己的黑名单中  
104 - */  
105 - TIM_ADD_FRIEND_STATUS_IN_SELF_BLACK_LIST = 30515,  
106 -  
107 - /**  
108 - * 被加好友设置为禁止加好友  
109 - */  
110 - TIM_ADD_FRIEND_STATUS_FRIEND_SIDE_FORBID_ADD = 30516,  
111 -  
112 - /**  
113 - * 已被被添加好友设置为黑名单  
114 - */  
115 - TIM_ADD_FRIEND_STATUS_IN_OTHER_SIDE_BLACK_LIST = 30525,  
116 -  
117 - /**  
118 - * 等待好友审核同意  
119 - */  
120 - TIM_ADD_FRIEND_STATUS_PENDING = 30539,  
121 -  
122 - /**  
123 - * 添加好友请求被安全策略打击,请勿频繁发起添加好友请求  
124 - */  
125 - TIM_ADD_FRIEND_STATUS_SENSITIVE = 30540,  
126 -  
127 - /**  
128 - * 对方没有申请过好友  
129 - */  
130 - TIM_RESPONSE_FRIEND_STATUS_NO_REQ = 30614,  
131 -  
132 - /**  
133 - * 删除好友请求被安全策略打击,请勿频繁发起删除好友请求  
134 - */  
135 - TIM_DELETE_FRIEND_STATUS_SENSITIVE = 31707,  
136 -};  
137 -  
138 -typedef NS_ENUM(NSInteger, TIMDelFriendType) {  
139 - /**  
140 - * 删除单向好友  
141 - */  
142 - TIM_FRIEND_DEL_SINGLE = 1,  
143 -  
144 - /**  
145 - * 删除双向好友  
146 - */  
147 - TIM_FRIEND_DEL_BOTH = 2,  
148 -};  
149 -  
150 -typedef NS_ENUM(NSInteger, TIMPendencyType) {  
151 - /**  
152 - * 别人发给我的  
153 - */  
154 - TIM_PENDENCY_COME_IN = 1,  
155 -  
156 - /**  
157 - * 我发给别人的  
158 - */  
159 - TIM_PENDENCY_SEND_OUT = 2,  
160 -  
161 - /**  
162 - * 别人发给我的 和 我发给别人的。仅拉取时有效  
163 - */  
164 - TIM_PENDENCY_BOTH = 3,  
165 -};  
166 -  
167 -/**  
168 - * 推荐好友类型  
169 - */  
170 -typedef NS_ENUM(NSInteger, TIMFutureFriendType) {  
171 - /**  
172 - * 收到的未决请求  
173 - */  
174 - TIM_FUTURE_FRIEND_PENDENCY_IN_TYPE = 0x1,  
175 -  
176 - /**  
177 - * 发出去的未决请求  
178 - */  
179 - TIM_FUTURE_FRIEND_PENDENCY_OUT_TYPE = 0x2,  
180 -  
181 - /**  
182 - * 推荐好友  
183 - */  
184 - TIM_FUTURE_FRIEND_RECOMMEND_TYPE = 0x4,  
185 -  
186 - /**  
187 - * 已决好友  
188 - */  
189 - TIM_FUTURE_FRIEND_DECIDE_TYPE = 0x8,  
190 -};  
191 -  
192 -/**  
193 - * 翻页选项  
194 - */  
195 -typedef NS_ENUM(NSInteger, TIMPageDirectionType) {  
196 - /**  
197 - * 向上翻页  
198 - */  
199 - TIM_PAGE_DIRECTION_UP_TYPE = 1,  
200 -  
201 - /**  
202 - * 向下翻页  
203 - */  
204 - TIM_PAGE_DIRECTION_DOWN_TYPE = 2,  
205 -};  
206 -  
207 -/**  
208 - * 好友检查类型  
209 - */  
210 -typedef NS_ENUM(NSInteger,TIMFriendCheckType) {  
211 - /**  
212 - * 单向好友  
213 - */  
214 - TIM_FRIEND_CHECK_TYPE_UNIDIRECTION = 0x1,  
215 - /**  
216 - * 互为好友  
217 - */  
218 - TIM_FRIEND_CHECK_TYPE_BIDIRECTION = 0x2,  
219 -};  
220 -  
221 -/**  
222 - * 好友关系类型  
223 - */  
224 -typedef NS_ENUM(NSInteger,TIMFriendRelationType) {  
225 - /**  
226 - * 不是好友  
227 - */  
228 - TIM_FRIEND_RELATION_TYPE_NONE = 0x0,  
229 - /**  
230 - * 对方在我的好友列表中  
231 - */  
232 - TIM_FRIEND_RELATION_TYPE_MY_UNI = 0x1,  
233 - /**  
234 - * 我在对方的好友列表中  
235 - */  
236 - TIM_FRIEND_RELATION_TYPE_OTHER_UNI = 0x2,  
237 - /**  
238 - * 互为好友  
239 - */  
240 - TIM_FRIEND_RELATION_TYPE_BOTHWAY = 0x3,  
241 -};  
242 -  
243 -typedef NS_ENUM(NSInteger, TIMFriendResponseType) {  
244 - /**  
245 - * 同意加好友(建立单向好友)  
246 - */  
247 - TIM_FRIEND_RESPONSE_AGREE = 0,  
248 -  
249 - /**  
250 - * 同意加好友并加对方为好友(建立双向好友)  
251 - */  
252 - TIM_FRIEND_RESPONSE_AGREE_AND_ADD = 1,  
253 -  
254 - /**  
255 - * 拒绝对方好友请求  
256 - */  
257 - TIM_FRIEND_RESPONSE_REJECT = 2,  
258 -};  
259 -  
260 -/**  
261 - * 好友检查类型  
262 - */  
263 -typedef NS_ENUM(NSInteger,TIMFriendAddType) {  
264 - /**  
265 - * 单向好友  
266 - */  
267 - TIM_FRIEND_ADD_TYPE_SINGLE = 1,  
268 - /**  
269 - * 互为好友  
270 - */  
271 - TIM_FRIEND_ADD_TYPE_BOTH = 2,  
272 -};  
273 -#pragma mark - block回调  
274 -  
275 -/**  
276 - * 获取未决请求列表成功  
277 - *  
278 - * @param pendencyResponse 未决请求元信息  
279 - */  
280 -typedef void (^TIMGetFriendPendencyListSucc)(TIMFriendPendencyResponse *pendencyResponse);  
281 -  
282 -/**  
283 - * 群搜索回调  
284 - *  
285 - * @param totalNum 搜索结果的总数  
286 - * @param users 请求的用户列表片段  
287 - */  
288 -typedef void (^TIMUserSearchSucc)(uint64_t totalNum, NSArray * users);  
289 -  
290 -/**  
291 - * 好友分组列表  
292 - *  
293 - * @param groups 好友分组(TIMFriendGroup*)列表  
294 - */  
295 -typedef void (^TIMFriendGroupArraySucc)(NSArray<TIMFriendGroup *> * groups);  
296 -  
297 -/**  
298 - * 好友关系检查回调  
299 - *  
300 - * @param results TIMCheckFriendResult列表  
301 - */  
302 -typedef void (^TIMFriendCheckSucc)(NSArray* results);  
303 -  
304 -#pragma mark - 基本类型  
305 -  
306 -/**  
307 - * 加好友请求  
308 - */  
309 -@interface TIMFriendRequest : TIMCodingModel  
310 -  
311 -/**  
312 - * 用户identifier(必填)  
313 - */  
314 -@property (nonatomic,strong) NSString* identifier;  
315 -  
316 -/**  
317 - * 备注(备注最大96字节)  
318 - */  
319 -@property (nonatomic,strong) NSString* remark;  
320 -  
321 -/**  
322 - * 请求说明(最大120字节)  
323 - */  
324 -@property (nonatomic,strong) NSString* addWording;  
325 -  
326 -/**  
327 - * 添加来源  
328 - * 来源需要添加“AddSource_Type_”前缀  
329 - */  
330 -@property (nonatomic,strong) NSString* addSource;  
331 -  
332 -/**  
333 - * 分组  
334 - */  
335 -@property (nonatomic,strong) NSString* group;  
336 -  
337 -/**  
338 - * 加好友方式 (可选)  
339 - */  
340 -@property (nonatomic,assign) TIMFriendAddType addType;  
341 -  
342 -@end  
343 -  
344 -/**  
345 - * 未决请求  
346 - */  
347 -@interface TIMFriendPendencyItem : TIMCodingModel  
348 -  
349 -/**  
350 - * 用户标识  
351 - */  
352 -@property(nonatomic,strong) NSString* identifier;  
353 -/**  
354 - * 增加时间  
355 - */  
356 -@property(nonatomic,assign) uint64_t addTime;  
357 -/**  
358 - * 来源  
359 - */  
360 -@property(nonatomic,strong) NSString* addSource;  
361 -/**  
362 - * 加好友附言  
363 - */  
364 -@property(nonatomic,strong) NSString* addWording;  
365 -  
366 -/**  
367 - * 加好友昵称  
368 - */  
369 -@property(nonatomic,strong) NSString* nickname;  
370 -  
371 -/**  
372 - * 未决请求类型  
373 - */  
374 -@property(nonatomic,assign) TIMPendencyType type;  
375 -  
376 -@end  
377 -  
378 -/**  
379 - * 未决推送  
380 - */  
381 -@interface TIMFriendPendencyInfo : TIMCodingModel  
382 -/**  
383 - * 用户标识  
384 - */  
385 -@property(nonatomic,strong) NSString* identifier;  
386 -/**  
387 - * 来源  
388 - */  
389 -@property(nonatomic,strong) NSString* addSource;  
390 -/**  
391 - * 加好友附言  
392 - */  
393 -@property(nonatomic,strong) NSString* addWording;  
394 -  
395 -/**  
396 - * 加好友昵称  
397 - */  
398 -@property(nonatomic,strong) NSString* nickname;  
399 -@end  
400 -  
401 -/**  
402 - * 未决请求信息  
403 - */  
404 -@interface TIMFriendPendencyRequest : TIMCodingModel  
405 -  
406 -/**  
407 - * 序列号,未决列表序列号  
408 - * 建议客户端保存seq和未决列表,请求时填入server返回的seq  
409 - * 如果seq是server最新的,则不返回数据  
410 - */  
411 -@property(nonatomic,assign) uint64_t seq;  
412 -  
413 -/**  
414 - * 翻页时间戳,只用来翻页,server返回0时表示没有更多数据,第一次请求填0  
415 - * 特别注意的是,如果server返回的seq跟填入的seq不同,翻页过程中,需要使用客户端原始seq请求,直到数据请求完毕,才能更新本地seq  
416 - */  
417 -@property(nonatomic,assign) uint64_t timestamp;  
418 -  
419 -/**  
420 - * 每页的数量,即本次请求最多返回多个数据,最大不超过 100,设置太大一次请求回包的时间会过长。默认值100  
421 - * 注意:后台最多只保存100条未决  
422 - */  
423 -@property(nonatomic,assign) uint64_t numPerPage;  
424 -  
425 -/**  
426 - * 未决请求拉取类型  
427 - */  
428 -@property(nonatomic,assign) TIMPendencyType type;  
429 -  
430 -@end  
431 -  
432 -/**  
433 - * 未决返回信息  
434 - */  
435 -@interface TIMFriendPendencyResponse : TIMCodingModel  
436 -  
437 -/**  
438 - * 本次请求的未决列表序列号  
439 - */  
440 -@property(nonatomic,assign) uint64_t seq;  
441 -  
442 -/**  
443 - * 本次请求的翻页时间戳  
444 - */  
445 -@property(nonatomic,assign) uint64_t timestamp;  
446 -  
447 -/**  
448 - * 未决请求未读数量  
449 - */  
450 -@property(nonatomic,assign) uint64_t unreadCnt;  
451 -  
452 -/**  
453 - * 未决数据  
454 - */  
455 -@property NSArray<TIMFriendPendencyItem *> * pendencies;  
456 -  
457 -@end  
458 -  
459 -/**  
460 - * 好友分组信息  
461 - */  
462 -@interface TIMFriendGroup : TIMCodingModel  
463 -/**  
464 - * 好友分组名称  
465 - */  
466 -@property(nonatomic,strong) NSString* name;  
467 -  
468 -/**  
469 - * 分组成员数量  
470 - */  
471 -@property(nonatomic,assign) uint64_t userCnt;  
472 -  
473 -/**  
474 - * 分组成员identifier列表  
475 - */  
476 -@property(nonatomic,strong) NSArray* friends;  
477 -  
478 -@end  
479 -  
480 -/**  
481 - * 好友关系检查  
482 - */  
483 -@interface TIMFriendCheckInfo : NSObject  
484 -/**  
485 - * 检查用户的id列表(NSString*)  
486 - */  
487 -@property(nonatomic,strong) NSArray* users;  
488 -  
489 -/**  
490 - * 检查类型  
491 - */  
492 -@property(nonatomic,assign) TIMFriendCheckType checkType;  
493 -  
494 -@end  
495 -  
496 -@interface TIMCheckFriendResult : NSObject  
497 -/**  
498 - * 用户id  
499 - */  
500 -@property NSString* identifier;  
501 -  
502 -/**  
503 - * 返回码  
504 - */  
505 -@property NSInteger result_code;  
506 -  
507 -/**  
508 - * 返回信息  
509 - */  
510 -@property NSString *result_info;  
511 -  
512 -/**  
513 - * 检查结果  
514 - */  
515 -@property(nonatomic,assign) TIMFriendRelationType resultType;  
516 -  
517 -@end  
518 -  
519 -@interface TIMFriendResult : NSObject  
520 -  
521 -/**  
522 - * 用户Id  
523 - */  
524 -@property NSString* identifier;  
525 -  
526 -/**  
527 - * 返回码  
528 - */  
529 -@property NSInteger result_code;  
530 -  
531 -/**  
532 - * 返回信息  
533 - */  
534 -@property NSString *result_info;  
535 -  
536 -@end  
537 -  
538 -/**  
539 - * 响应好友请求  
540 - */  
541 -@interface TIMFriendResponse : NSObject  
542 -  
543 -/**  
544 - * 响应类型  
545 - */  
546 -@property(nonatomic,assign) TIMFriendResponseType responseType;  
547 -  
548 -/**  
549 - * 用户identifier  
550 - */  
551 -@property(nonatomic,strong) NSString* identifier;  
552 -  
553 -/**  
554 - * 备注好友(可选,如果要加对方为好友)。备注最大96字节  
555 - */  
556 -@property(nonatomic,strong) NSString* remark;  
557 -  
558 -@end  
559 -  
560 -  
561 -/**  
562 - * 好友分组信息扩展  
563 - */  
564 -@interface TIMFriendGroupWithProfiles : TIMFriendGroup  
565 -/**  
566 - * 好友资料(TIMUserProfile*)列表  
567 - */  
568 -@property(nonatomic,strong) NSArray* profiles;  
569 -@end  
570 -  
571 -// 用户资料KEY  
572 -  
573 -/**  
574 - * 昵称  
575 - * 值类型: NSString  
576 - */  
577 -extern NSString *const TIMProfileTypeKey_Nick;  
578 -/**  
579 - * 头像  
580 - * 值类型: NSString  
581 - */  
582 -extern NSString *const TIMProfileTypeKey_FaceUrl;  
583 -/**  
584 - * 好友申请  
585 - * 值类型: NSNumber [TIM_FRIEND_ALLOW_ANY,TIM_FRIEND_NEED_CONFIRM,TIM_FRIEND_DENY_ANY]  
586 - */  
587 -extern NSString *const TIMProfileTypeKey_AllowType;  
588 -/**  
589 - * 性别  
590 - * 值类型: NSNumber [TIM_GENDER_UNKNOWN,TIM_GENDER_MALE,TIM_GENDER_FEMALE]  
591 - */  
592 -extern NSString *const TIMProfileTypeKey_Gender;  
593 -/**  
594 - * 生日  
595 - * 值类型: NSNumber  
596 - */  
597 -extern NSString *const TIMProfileTypeKey_Birthday;  
598 -/**  
599 - * 位置  
600 - * 值类型: NSString  
601 - */  
602 -extern NSString *const TIMProfileTypeKey_Location;  
603 -/**  
604 - * 语言  
605 - * 值类型: NSNumber  
606 - */  
607 -extern NSString *const TIMProfileTypeKey_Language;  
608 -/**  
609 - * 等级  
610 - * 值类型: NSNumber  
611 - */  
612 -extern NSString *const TIMProfileTypeKey_Level;  
613 -/**  
614 - * 角色  
615 - * 值类型: NSNumber  
616 - */  
617 -extern NSString *const TIMProfileTypeKey_Role;  
618 -/**  
619 - * 签名  
620 - * 值类型: NSString  
621 - */  
622 -extern NSString *const TIMProfileTypeKey_SelfSignature;  
623 -/**  
624 - * 自定义字段前缀  
625 - * 值类型: [NSString,NSData|NSNumber]  
626 - * @note 当设置自定义字的值NSString对象时,后台会将其转为UTF8保存在数据库中。由于部分用户迁移资料时可能不是UTF8类型,所以在获取资料时,统一返回NSData类型。  
627 - */  
628 -extern NSString *const TIMProfileTypeKey_Custom_Prefix;  
629 -  
630 -// 好友资料KEY  
631 -  
632 -/**  
633 - * 备注  
634 - * 值类型: NSString  
635 - */  
636 -extern NSString *const TIMFriendTypeKey_Remark;  
637 -/**  
638 - * 分组  
639 - * 值类型: [NSArray]  
640 - */  
641 -extern NSString *const TIMFriendTypeKey_Group;  
642 -/**  
643 - * 自定义字段前缀  
644 - * 值类型: [NSString,NSData|NSNumber]  
645 - */  
646 -extern NSString *const TIMFriendTypeKey_Custom_Prefix;  
647 -#endif /* TIMFriendshipDefine_h */  
648 -  
1 -//  
2 -// TIMFriendshipManager.h  
3 -// imsdk  
4 -//  
5 -// Created by annidyfeng on 2019/3/7.  
6 -// Copyright © 2019年 Tencent. All rights reserved.  
7 -//  
8 -  
9 -#ifndef TIMFriendshipManager_h  
10 -#define TIMFriendshipManager_h  
11 -  
12 -#import "TIMComm.h"  
13 -#import "TIMFriendshipDefine.h"  
14 -  
15 -@interface TIMFriendshipManager : NSObject  
16 -/**  
17 - * 获取好友管理器实例  
18 - *  
19 - * @return 管理器实例  
20 - */  
21 -+ (TIMFriendshipManager*)sharedInstance;  
22 -  
23 -/**  
24 - * 设置自己的资料  
25 - *  
26 - * @param values 需要更新的属性,可一次更新多个字段. 参见 TIMFriendshipDefine.h 的 TIMProfileTypeKey_XXX  
27 - * @param succ 成功回调  
28 - * @param fail 失败回调  
29 - *  
30 - * @return 0 发送请求成功  
31 - */  
32 -- (int)modifySelfProfile:(NSDictionary<NSString *, id> *)values succ:(TIMSucc)succ fail:(TIMFail)fail;  
33 -  
34 -/**  
35 - * 获取自己的资料  
36 - *  
37 - * @param succ 成功回调,返回 TIMUserProfile  
38 - * @param fail 失败回调  
39 - *  
40 - * @return 0 发送请求成功  
41 - */  
42 -- (int)getSelfProfile:(TIMGetProfileSucc)succ fail:(TIMFail)fail;  
43 -  
44 -/**  
45 - * 在缓存中查询自己的资料  
46 - *  
47 - * @return 返回缓存的资料,未找到返回nil  
48 - */  
49 -- (TIMUserProfile *)querySelfProfile;  
50 -  
51 -/**  
52 - * 获取指定用户资料  
53 - *  
54 - * @param identifiers 用户id,非好友的用户也可以  
55 - * @prarm forceUpdate 强制从后台拉取  
56 - * @param succ 成功回调  
57 - * @param fail 失败回调  
58 - *  
59 - * @return 0 发送请求成功  
60 - */  
61 -- (int)getUsersProfile:(NSArray<NSString *> *)identifiers forceUpdate:(BOOL)forceUpdate succ:(TIMUserProfileArraySucc)succ fail:(TIMFail)fail;  
62 -  
63 -/**  
64 - * 在缓存中查询用户的资料  
65 - *  
66 - * @praram identifier 用户id,非好友的用户也可以  
67 - *  
68 - * @return 返回缓存的资料,未找到返回nil  
69 - */  
70 -- (TIMUserProfile *)queryUserProfile:(NSString *)identifier;  
71 -  
72 -/**  
73 - * 获取好友列表  
74 - *  
75 - * @param succ 成功回调,返回好友(TIMFriend)列表  
76 - * @param fail 失败回调  
77 - *  
78 - * @return 0 发送请求成功  
79 - */  
80 --(int)getFriendList:(TIMFriendArraySucc)succ fail:(TIMFail)fail;  
81 -  
82 -  
83 -/**  
84 - * 在缓存中查询用户的关系链数据  
85 - *  
86 - * @praram identifier 用户id  
87 - *  
88 - * @return 返回缓存的关系链数据,未找到返回nil  
89 - * @note 缓存数据来自于上一次调用getFriendList,请确保已调用了获取好友列表方法  
90 - */  
91 -- (TIMFriend *)queryFriend:(NSString *)identifier;  
92 -  
93 -/**  
94 - * 获取缓存中的关系链列表  
95 - *  
96 - * @return 返回缓存的关系链数据  
97 - * @note 缓存数据来自于上一次调用getFriendList,请确保已调用了获取好友列表方法  
98 - */  
99 -- (NSArray<TIMFriend *> *)queryFriendList;  
100 -  
101 -/**  
102 - * 检查指定用户的好友关系  
103 - *  
104 - * @param checkInfo 好友检查信息  
105 - * @param succ 成功回调,返回检查结果  
106 - * @param fail 失败回调  
107 - *  
108 - * @return 0:发送成功;-1:checkInfo->users 参数异常;-2:checkInfo->checkType 参数异常  
109 - */  
110 -- (int)checkFriends:(TIMFriendCheckInfo *)checkInfo succ:(TIMCheckFriendResultArraySucc)succ fail:(TIMFail)fail;  
111 -  
112 -/**  
113 - * 添加好友  
114 - *  
115 - * @param request 添加好友请求  
116 - * @param succ 成功回调(TIMFriendResult)  
117 - * @param fail 失败回调  
118 - *  
119 - * @return 0 发送请求成功  
120 - */  
121 -- (int)addFriend:(TIMFriendRequest *)request succ:(TIMFriendResultSucc)succ fail:(TIMFail)fail;  
122 -  
123 -/**  
124 - * 响应对方好友邀请  
125 - *  
126 - * @param response 响应请求  
127 - * @param succ 成功回调  
128 - * @param fail 失败回调  
129 - *  
130 - * @return 0 发送请求成功  
131 - */  
132 -- (int)doResponse:(TIMFriendResponse *)response succ:(TIMFriendResultSucc)succ fail:(TIMFail)fail;  
133 -  
134 -/**  
135 - * 删除好友  
136 - *  
137 - * @param identifiers 好友id  
138 - * @param delType 删除类型(单向好友、双向好友)  
139 - * @param succ 成功回调([TIMFriendResult])  
140 - * @param fail 失败回调  
141 - *  
142 - * @return 0 发送请求成功  
143 - */  
144 -- (int)deleteFriends:(NSArray *)identifiers delType:(TIMDelFriendType)delType succ:(TIMFriendResultArraySucc)succ fail:(TIMFail)fail;  
145 -  
146 -/**  
147 - * 修改好友  
148 - *  
149 - * @param identifier 好友id  
150 - * @param values 需要更新的属性,可一次更新多个字段. 参见 TIMFriendshipDefine.h 的 TIMFriendTypeKey_XXX  
151 - * @param succ 成功回调  
152 - * @param fail 失败回调  
153 - *  
154 - * @return 0 发送请求成功  
155 - */  
156 -- (int)modifyFriend:(NSString *)identifier values:(NSDictionary<NSString *, id> *)values succ:(TIMSucc)succ fail:(TIMFail)fail;  
157 -  
158 -/**  
159 - * 获取未决列表  
160 - *  
161 - * @param pendencyRequest 请求信息,详细参考TIMFriendPendencyRequest  
162 - * @param succ 成功回调  
163 - * @param fail 失败回调  
164 - *  
165 - * @return 0 发送请求成功  
166 - */  
167 -- (int)getPendencyList:(TIMFriendPendencyRequest *)pendencyRequest succ:(TIMGetFriendPendencyListSucc)succ fail:(TIMFail)fail;  
168 -  
169 -/**  
170 - * 未决删除  
171 - *  
172 - * @param type 未决好友类型  
173 - * @param identifiers 要删除的未决列表  
174 - * @param succ 成功回调  
175 - * @param fail 失败回调  
176 - *  
177 - * @return 0 发送请求成功  
178 - */  
179 -- (int)deletePendency:(TIMPendencyType)type users:(NSArray *)identifiers succ:(TIMSucc)succ fail:(TIMFail)fail;  
180 -  
181 -/**  
182 - * 未决已读上报  
183 - *  
184 - * @param timestamp 已读时间戳,此时间戳以前的消息都将置为已读  
185 - * @param succ 成功回调  
186 - * @param fail 失败回调  
187 - *  
188 - * @return 0 发送请求成功  
189 - */  
190 -- (int)pendencyReport:(uint64_t)timestamp succ:(TIMSucc)succ fail:(TIMFail)fail;  
191 -  
192 -/**  
193 - * 获取黑名单列表  
194 - *  
195 - * @param succ 成功回调,返回NSString*列表  
196 - * @param fail 失败回调  
197 - *  
198 - * @return 0 发送请求成功  
199 - */  
200 -- (int)getBlackList:(TIMFriendArraySucc)succ fail:(TIMFail)fail;  
201 -  
202 -/**  
203 - * 添加用户到黑名单  
204 - *  
205 - * @param identifiers 用户列表  
206 - * @param succ 成功回调  
207 - * @param fail 失败回调  
208 - *  
209 - * @return 0 发送请求成功  
210 - */  
211 -- (int)addBlackList:(NSArray *)identifiers succ:(TIMFriendResultArraySucc)succ fail:(TIMFail)fail;  
212 -  
213 -/**  
214 - * 把用户从黑名单中删除  
215 - *  
216 - * @param identifiers 用户列表  
217 - * @param succ 成功回调  
218 - * @param fail 失败回调  
219 - *  
220 - * @return 0 发送请求成功  
221 - */  
222 -- (int)deleteBlackList:(NSArray *)identifiers succ:(TIMFriendResultArraySucc)succ fail:(TIMFail)fail;  
223 -  
224 -/**  
225 - * 新建好友分组  
226 - *  
227 - * @param groupNames 分组名称列表,必须是当前不存在的分组  
228 - * @param identifiers 要添加到分组中的好友  
229 - * @param succ 成功回调  
230 - * @param fail 失败回调  
231 - *  
232 - * @return 0 发送请求成功  
233 - */  
234 -- (int)createFriendGroup:(NSArray *)groupNames users:(NSArray *)identifiers succ:(TIMFriendResultArraySucc)succ fail:(TIMFail)fail;  
235 -  
236 -/**  
237 - * 获取指定的好友分组信息  
238 - *  
239 - * @param groupNames 要获取信息的好友分组名称列表,传入nil获得所有分组信息  
240 - * @param succ 成功回调,返回 TIMFriendGroup* 列表  
241 - * @param fail 失败回调  
242 - *  
243 - * @return 0 发送请求成功  
244 - */  
245 -- (int)getFriendGroups:(NSArray *)groupNames succ:(TIMFriendGroupArraySucc)succ fail:(TIMFail)fail;  
246 -  
247 -/**  
248 - * 删除好友分组  
249 - *  
250 - * @param groupNames 要删除的好友分组名称列表  
251 - * @param succ 成功回调  
252 - * @param fail 失败回调  
253 - *  
254 - * @return 0 发送请求成功  
255 - */  
256 -- (int)deleteFriendGroup:(NSArray *)groupNames succ:(TIMSucc)succ fail:(TIMFail)fail;  
257 -  
258 -/**  
259 - * 修改好友分组的名称  
260 - *  
261 - * @param oldName 原来的分组名称  
262 - * @param newName 新的分组名称  
263 - * @param succ 成功回调  
264 - * @param fail 失败回调  
265 - *  
266 - * @return 0 发送请求成功  
267 - */  
268 -- (int)renameFriendGroup:(NSString*)oldName newName:(NSString*)newName succ:(TIMSucc)succ fail:(TIMFail)fail;  
269 -  
270 -/**  
271 - * 添加好友到一个好友分组  
272 - *  
273 - * @param groupName 好友分组名称  
274 - * @param identifiers 要添加到分组中的好友  
275 - * @param succ 成功回调  
276 - * @param fail 失败回调  
277 - *  
278 - * @return 0 发送请求成功  
279 - */  
280 -- (int)addFriendsToFriendGroup:(NSString *)groupName users:(NSArray *)identifiers succ:(TIMFriendResultArraySucc)succ fail:(TIMFail)fail;  
281 -  
282 -/**  
283 - * 从好友分组中删除好友  
284 - *  
285 - * @param groupName 好友分组名称  
286 - * @param identifiers 要移出分组的好友  
287 - * @param succ 成功回调  
288 - * @param fail 失败回调  
289 - *  
290 - * @return 0 发送请求成功  
291 - */  
292 -- (int)deleteFriendsFromFriendGroup:(NSString *)groupName users:(NSArray *)identifiers succ:(TIMFriendResultArraySucc)succ fail:(TIMFail)fail;  
293 -@end  
294 -  
295 -#endif /* TIMFriendshipManager_h */  
1 -//  
2 -// TIMGroupManager.h  
3 -// ImSDK  
4 -//  
5 -// Created by bodeng on 17/3/15.  
6 -// Copyright (c) 2015 tencent. All rights reserved.  
7 -//  
8 -  
9 -#ifndef ImSDK_TIMGroupManager_h  
10 -#define ImSDK_TIMGroupManager_h  
11 -  
12 -#import "TIMComm.h"  
13 -  
14 -@interface TIMGroupManager : NSObject  
15 -  
16 -#pragma mark 一,获取群组实例  
17 -/////////////////////////////////////////////////////////////////////////////////  
18 -//  
19 -// (一)获取群组实例  
20 -//  
21 -/////////////////////////////////////////////////////////////////////////////////  
22 -/// @name 获取群组实例  
23 -/// @{  
24 -/**  
25 - * 1.1 获取群管理器实例  
26 - *  
27 - * @return 管理器实例  
28 - */  
29 -+ (TIMGroupManager*)sharedInstance;  
30 -  
31 -///@}  
32 -  
33 -#pragma mark 二,创建/删除/加入/退出群组  
34 -/////////////////////////////////////////////////////////////////////////////////  
35 -//  
36 -// (二)创建/删除/加入/退出群组  
37 -//  
38 -/////////////////////////////////////////////////////////////////////////////////  
39 -/// @name 创建/删除/加入/退出群组  
40 -/// @{  
41 -  
42 -/**  
43 - * 1.1 创建私有群  
44 - *  
45 - * 快速创建私有群,创建者默认加入群组,无需显式指定,群组类型形态请参考官网文档 [群组形态介绍](https://cloud.tencent.com/document/product/269/1502#.E7.BE.A4.E7.BB.84.E5.BD.A2.E6.80.81.E4.BB.8B.E7.BB.8D)  
46 - *  
47 - * @param members 群成员,NSString* 数组  
48 - * @param groupName 群名  
49 - * @param succ 成功回调 groupId  
50 - * @param fail 失败回调  
51 - *  
52 - * @return 0:成功;1:失败  
53 - */  
54 -- (int)createPrivateGroup:(NSArray<NSString *>*)members groupName:(NSString*)groupName succ:(TIMCreateGroupSucc)succ fail:(TIMFail)fail;  
55 -  
56 -/**  
57 - * 1.2 创建公开群  
58 - *  
59 - * 快速创建公开群,创建者默认加入群组,无需显式指定,群组类型形态请参考官网文档 [群组形态介绍](https://cloud.tencent.com/document/product/269/1502#.E7.BE.A4.E7.BB.84.E5.BD.A2.E6.80.81.E4.BB.8B.E7.BB.8D)  
60 - *  
61 - * @param members 群成员,NSString* 数组  
62 - * @param groupName 群名  
63 - * @param succ 成功回调 groupId  
64 - * @param fail 失败回调  
65 - *  
66 - * @return 0:成功;1:失败  
67 - */  
68 -- (int)createPublicGroup:(NSArray<NSString *>*)members groupName:(NSString*)groupName succ:(TIMCreateGroupSucc)succ fail:(TIMFail)fail;  
69 -  
70 -/**  
71 - * 1.3 创建聊天室  
72 - *  
73 - * 快速创建聊天室,创建者默认加入群组,无需显式指定,群组类型形态请参考官网文档 [群组形态介绍](https://cloud.tencent.com/document/product/269/1502#.E7.BE.A4.E7.BB.84.E5.BD.A2.E6.80.81.E4.BB.8B.E7.BB.8D)  
74 - *  
75 - * @param members 群成员,NSString* 数组  
76 - * @param groupName 群名  
77 - * @param succ 成功回调 groupId  
78 - * @param fail 失败回调  
79 - *  
80 - * @return 0:成功;1:失败  
81 - */  
82 -- (int)createChatRoomGroup:(NSArray<NSString *>*)members groupName:(NSString*)groupName succ:(TIMCreateGroupSucc)succ fail:(TIMFail)fail;  
83 -  
84 -/**  
85 - * 1.4 创建音视频聊天室  
86 - *  
87 - * 快速创建音视频聊天室,创建者默认加入群组,无需显式指定,群组类型形态请参考官网文档 [群组形态介绍](https://cloud.tencent.com/document/product/269/1502#.E7.BE.A4.E7.BB.84.E5.BD.A2.E6.80.81.E4.BB.8B.E7.BB.8D)  
88 - *  
89 - * @param groupName 群名  
90 - * @param succ 成功回调 groupId  
91 - * @param fail 失败回调  
92 - *  
93 - * @return 0:成功;1:失败  
94 - */  
95 -- (int)createAVChatRoomGroup:(NSString*)groupName succ:(TIMCreateGroupSucc)succ fail:(TIMFail)fail;  
96 -  
97 -/**  
98 - * 1.5 创建指定类型和 ID 的群组  
99 - *  
100 - * 1. 默认创建群组时,IM 通讯云服务器会生成一个唯一的 ID,该 ID 将以 @TGS# 开头,且保证在 App 中唯一,以便后续操作。  
101 - * 2. 如果用户需要自定义群组 ID,在创建时可指定 ID,自定义群组 ID 必须为可打印 ASCII 字符(0x20-0x7e),最长 48 个字节,且前缀不能为 @TGS#(避免与默认分配的群组 ID 混淆)  
102 - *  
103 - * @param type 群类型,Private,Public,ChatRoom,AVChatRoom  
104 - * @param groupId 自定义群组 ID,为空时系统自动分配  
105 - * @param groupName 群组名称  
106 - * @param succ 成功回调  
107 - * @param fail 失败回调  
108 - *  
109 - * @return 0:成功;1:失败  
110 - */  
111 -- (int)createGroup:(NSString*)type groupId:(NSString*)groupId groupName:(NSString*)groupName succ:(TIMCreateGroupSucc)succ fail:(TIMFail)fail;  
112 -  
113 -/**  
114 - * 1.6 创建自定义群组  
115 - *  
116 - * 在创建群组时,除了设置默认的成员以及群名外,还可以设置如群公告、群简介等字段。  
117 - *  
118 - * @param groupInfo 群组信息,详情请参考 TIMComm+Group.h 里面的 TIMCreateGroupInfo 定义  
119 - * @param succ 成功回调 groupId  
120 - * @param fail 失败回调  
121 - *  
122 - * @return 0:成功;1:失败  
123 - */  
124 -- (int)createGroup:(TIMCreateGroupInfo*)groupInfo succ:(TIMCreateGroupSucc)succ fail:(TIMFail)fail;  
125 -  
126 -/**  
127 - * 1.7 解散群组  
128 - *  
129 - * 1. 私有群:任何人都无法解散群组  
130 - * 2. 公开群、聊天室、直播大群:群主可以解散群组。  
131 - *  
132 - * @param groupId 群组Id  
133 - * @param succ 成功回调  
134 - * @param fail 失败回调  
135 - *  
136 - * @return 0:成功;1:失败  
137 - */  
138 -- (int)deleteGroup:(NSString*)groupId succ:(TIMSucc)succ fail:(TIMFail)fail;  
139 -  
140 -/**  
141 - * 1.8 申请加群  
142 - *  
143 - * 1. 私有群:不能由用户主动申请入群。  
144 - * 2. 公开群、聊天室:可以主动申请进入。  
145 - * 3. 直播大群:可以任意加入群组。  
146 - * 4. 如果群组设置为需要审核,申请入群后管理员和群主会收到申请入群系统消息 TIMGroupSystemElem,判断 TIMGroupSystemElem 的 Type 类型如果是 TIM_GROUP_SYSTEM_ADD_GROUP_REQUEST_TYPE ,这时候调用 getPendencyFromServer 获取群未决列表,调用 TIMGroupPendencyItem 对象调用 accept 接口同意入群,申请人会收到同意入群的消息 TIMGroupSystemElem(Type:TIM_GROUP_SYSTEM_ADD_GROUP_ACCEPT_TYPE),调用 refuse 接口拒绝入群,申请人会收到拒绝入群的消息 TIMGroupSystemElem(Type:TIM_GROUP_SYSTEM_ADD_GROUP_REFUSE_TYPE)。  
147 - * 5. 如果群主设置为任何人可加入,则直接入群成功。  
148 - *  
149 - * @param groupId 申请加入的群组Id  
150 - * @param msg 申请消息  
151 - * @param succ 成功回调(申请成功等待审批)  
152 - * @param fail 失败回调  
153 - *  
154 - * @return 0:成功;1:失败  
155 - */  
156 -- (int)joinGroup:(NSString*)groupId msg:(NSString*)msg succ:(TIMSucc)succ fail:(TIMFail)fail;  
157 -  
158 -/**  
159 - * 1.9 主动退出群组  
160 - *  
161 - * 1. 私有群:全员可退出群组。  
162 - * 2. 公开群、聊天室、直播大群:群主不能退出。  
163 - * 3. 当用户主动退出群组时,该用户会收到退群消息 TIMGroupSystemElem(Type:TIM_GROUP_SYSTEM_QUIT_GROUP_TYPE),只有退群的用户自己可以收到。当用户调用 QuitGroup 时成功回调返回,表示已退出成功,此消息主要为了多终端同步,其他终端可以作为更新群列表的时机,本终端可以选择忽略。  
164 - *  
165 - * @param groupId 群组Id  
166 - * @param succ 成功回调  
167 - * @param fail 失败回调  
168 - *  
169 - * @return 0:成功;1:失败  
170 - */  
171 -- (int)quitGroup:(NSString*)groupId succ:(TIMSucc)succ fail:(TIMFail)fail;  
172 -  
173 -  
174 -///@}  
175 -  
176 -#pragma mark 三,邀请/删除群成员  
177 -/////////////////////////////////////////////////////////////////////////////////  
178 -//  
179 -// (三)邀请/删除群成员  
180 -//  
181 -/////////////////////////////////////////////////////////////////////////////////  
182 -/// @name 邀请/删除群成员  
183 -/// @{  
184 -  
185 -/**  
186 - * 3.1 邀请好友入群  
187 - *  
188 - * 1. 只有私有群可以邀请用户入群  
189 - * 2. 公开群,聊天室不能邀请用户入群,但在创建群时可以直接拉人入群  
190 - * 3. 音视频聊天室不能拉用户入群,也不能在创建群时拉人入群,只能用户主动进群  
191 - *  
192 - * @param groupId 群组Id  
193 - * @param members 要加入的成员列表(NSString* 类型数组)  
194 - * @param succ 成功回调 (TIMGroupMemberResult 列表)  
195 - * @param fail 失败回调  
196 - *  
197 - * @return 0:成功;1:失败  
198 - */  
199 -- (int)inviteGroupMember:(NSString*)groupId members:(NSArray<NSString *>*)members succ:(TIMGroupMemberSucc)succ fail:(TIMFail)fail;  
200 -  
201 -/**  
202 - * 3.2 删除群成员  
203 - *  
204 - * 1. 私有群:只有创建者可删除群组成员。  
205 - * 2. 公开群、聊天室:只有管理员和群主可以踢人。  
206 - * 3. 对于直播大群:不能踢人。  
207 - *  
208 - * @param groupId 群组Id  
209 - * @param reason 删除原因  
210 - * @param members 要删除的成员列表  
211 - * @param succ 成功回调 (TIMGroupMemberResult 列表)  
212 - * @param fail 失败回调  
213 - *  
214 - * @return 0:成功;1:失败  
215 - */  
216 -- (int)deleteGroupMemberWithReason:(NSString*)groupId reason:(NSString*)reason members:(NSArray<NSString *>*)members succ:(TIMGroupMemberSucc)succ fail:(TIMFail)fail;  
217 -  
218 -///@}  
219 -  
220 -#pragma mark 四,获取群信息  
221 -/////////////////////////////////////////////////////////////////////////////////  
222 -//  
223 -// (四)获取群信息  
224 -//  
225 -/////////////////////////////////////////////////////////////////////////////////  
226 -/// @name 获取群信息  
227 -/// @{  
228 -  
229 -/**  
230 - * 4.1 获取群列表  
231 - *  
232 - * 获取自己所加入的群列表。  
233 - *  
234 - * @param succ 成功回调,NSArray 列表为 TIMGroupInfo,结构体只包含 group|groupName|groupType|faceUrl|allShutup|selfInfo 信息  
235 - * @param fail 失败回调  
236 - *  
237 - * @return 0:成功;1:失败  
238 - */  
239 -- (int)getGroupList:(TIMGroupListSucc)succ fail:(TIMFail)fail;  
240 -  
241 -/**  
242 - * 4.2 获取服务器存储的群组信息  
243 - *  
244 - * 1. 无论是公开群还是私有群,群成员均可以拉到群组信息。  
245 - * 2. 如果是公开群,非群组成员可以拉到 group|groupName|owner|groupType|createTime|maxMemberNum|memberNum|introduction|faceURL|addOpt|onlineMemberNum|customInfo 这些字段信息。如果是私有群,非群组成员拉取不到群组信息。  
246 - *  
247 - * @param succ 成功回调,NSArray 列表为 TIMGroupInfoResult,不包含 selfInfo 信息  
248 - * @param fail 失败回调  
249 - *  
250 - * @return 0:成功;1:失败  
251 - */  
252 -- (int)getGroupInfo:(NSArray*)groups succ:(TIMGroupListSucc)succ fail:(TIMFail)fail;  
253 -  
254 -/**  
255 - * 4.3 获取本地存储的群组信息  
256 - *  
257 - * 1. 无论是公开群还是私有群,群成员均可以拉到群组信息。  
258 - * 2. 如果是公开群,非群组成员可以拉到 group|groupName|owner|groupType|createTime|maxMemberNum|memberNum|introduction|faceURL|addOpt|onlineMemberNum|customInfo 这些字段信息。如果是私有群,非群组成员拉取不到群组信息。  
259 - *  
260 - * @param groupId 群组Id  
261 - *  
262 - * @return 群组信息  
263 - */  
264 -- (TIMGroupInfo *)queryGroupInfo:(NSString *)groupId;  
265 -  
266 -/**  
267 - * 4.4 获取群成员列表  
268 - *  
269 - * @param groupId 群组Id  
270 - * @param succ 成功回调 (TIMGroupMemberInfo 列表)  
271 - * @param fail 失败回调  
272 - *  
273 - * @return 0:成功;1:失败  
274 - */  
275 -- (int)getGroupMembers:(NSString*)groupId succ:(TIMGroupMemberSucc)succ fail:(TIMFail)fail;  
276 -  
277 -/**  
278 - * 4.5 获取本人在群组内的成员信息  
279 - *  
280 - * @param groupId 群组Id  
281 - * @param succ 成功回调,返回信息  
282 - * @param fail 失败回调  
283 - *  
284 - * @return 0:成功;1:失败  
285 - */  
286 -- (int)getGroupSelfInfo:(NSString*)groupId succ:(TIMGroupSelfSucc)succ fail:(TIMFail)fail;  
287 -  
288 -/**  
289 - * 4.6 获取群组指定成员的信息  
290 - *  
291 - * 获取群组指定成员的信息,需要设置群成员 members,其他限制参考 getGroupMembers  
292 - *  
293 - * @param groupId 群组Id  
294 - * @param members 成员Id(NSString*)列表  
295 - * @param succ 成功回调 (TIMGroupMemberInfo 列表)  
296 - * @param fail 失败回调  
297 - *  
298 - * @return 0:成功;1:失败  
299 - */  
300 -- (int)getGroupMembersInfo:(NSString*)groupId members:(NSArray<NSString *>*)members succ:(TIMGroupMemberSucc)succ fail:(TIMFail)fail;  
301 -  
302 -/**  
303 - * 4.7 获取指定类型的成员列表(支持按字段拉取,分页)  
304 - *  
305 - * @param groupId 群组Id  
306 - * @param filter 群成员角色过滤方式  
307 - * @param flags 拉取资料标志  
308 - * @param custom 要获取的自定义key(NSString*)列表  
309 - * @param nextSeq 分页拉取标志,第一次拉取填0,回调成功如果 nextSeq 不为零,需要分页,传入再次拉取,直至为0  
310 - * @param succ 成功回调  
311 - * @param fail 失败回调  
312 - * @return 0:成功;1:失败  
313 - */  
314 -- (int)getGroupMembers:(NSString*)groupId ByFilter:(TIMGroupMemberFilter)filter flags:(TIMGetGroupMemInfoFlag)flags custom:(NSArray<NSString *>*)custom nextSeq:(uint64_t)nextSeq succ:(TIMGroupMemberSuccV2)succ fail:(TIMFail)fail;  
315 -  
316 -/**  
317 - * 4.8 获取接受消息选项  
318 - *  
319 - * @param groupId 群组Id  
320 - * @param succ 成功回调, TIMGroupReceiveMessageOpt 0:接收消息;1:不接收消息,服务器不进行转发;2:接受消息,不进行 iOS APNs 推送  
321 - * @param fail 失败回调  
322 - *  
323 - * @return 0:成功;1:失败  
324 - */  
325 -- (int)getReciveMessageOpt:(NSString*)groupId succ:(TIMGroupReciveMessageOptSucc)succ fail:(TIMFail)fail;  
326 -  
327 -///@}  
328 -  
329 -#pragma mark 五,修改群信息  
330 -/////////////////////////////////////////////////////////////////////////////////  
331 -//  
332 -// (五)修改群信息  
333 -//  
334 -/////////////////////////////////////////////////////////////////////////////////  
335 -/// @name 修改群信息  
336 -/// @{  
337 -  
338 -/**  
339 - * 5.1 修改群名  
340 - *  
341 - * 1. 公开群、聊天室和直播大群:只有群主或者管理员可以修改群名。  
342 - * 2. 私有群:任何人可修改群名。  
343 - *  
344 - * @param groupId 群组Id  
345 - * @param groupName 新群名  
346 - * @param succ 成功回调  
347 - * @param fail 失败回调  
348 - *  
349 - * @return 0:成功;1:失败  
350 - */  
351 -- (int)modifyGroupName:(NSString*)groupId groupName:(NSString*)groupName succ:(TIMSucc)succ fail:(TIMFail)fail;  
352 -  
353 -/**  
354 - * 5.2 修改群简介  
355 - *  
356 - * 1. 公开群、聊天室、直播大群:只有群主或者管理员可以修改群简介。  
357 - * 2. 私有群:任何人可修改群简介。  
358 - *  
359 - * @param groupId 群组Id  
360 - * @param introduction 群简介(最长120字节)  
361 - * @param succ 成功回调  
362 - * @param fail 失败回调  
363 - *  
364 - * @return 0:成功;1:失败  
365 - */  
366 -- (int)modifyGroupIntroduction:(NSString*)groupId introduction:(NSString*)introduction succ:(TIMSucc)succ fail:(TIMFail)fail;  
367 -  
368 -/**  
369 - * 5.3 修改群公告  
370 - *  
371 - * 1. 公开群、聊天室、直播大群:只有群主或者管理员可以修改群公告。  
372 - * 2. 私有群:任何人可修改群公告。  
373 - *  
374 - * @param groupId 群组Id  
375 - * @param notification 群公告(最长150字节)  
376 - * @param succ 成功回调  
377 - * @param fail 失败回调  
378 - *  
379 - * @return 0:成功;1:失败  
380 - */  
381 -- (int)modifyGroupNotification:(NSString*)groupId notification:(NSString*)notification succ:(TIMSucc)succ fail:(TIMFail)fail;  
382 -  
383 -/**  
384 - * 5.4 修改群头像  
385 - *  
386 - * 1. 公开群、聊天室、直播大群:只有群主或者管理员可以修改群头像。  
387 - * 2. 私有群:任何人可修改群头像。  
388 - *  
389 - * @param groupId 群组Id  
390 - * @param url 群头像地址(最长100字节)  
391 - * @param succ 成功回调  
392 - * @param fail 失败回调  
393 - *  
394 - * @return 0:成功;1:失败  
395 - */  
396 -- (int)modifyGroupFaceUrl:(NSString*)groupId url:(NSString*)url succ:(TIMSucc)succ fail:(TIMFail)fail;  
397 -  
398 -/**  
399 - * 5.5 修改加群选项  
400 - *  
401 - * 1. 公开群、聊天室、直播大群:只有群主或者管理员可以修改加群选项。  
402 - * 2. 私有群:只能通过邀请加入群组,不能主动申请加入某个群组。  
403 - *  
404 - * @param groupId 群组Id  
405 - * @param opt 加群选项,详见 TIMGroupAddOpt  
406 - * @param succ 成功回调  
407 - * @param fail 失败回调  
408 - *  
409 - * @return 0:成功;1:失败  
410 - */  
411 -- (int)modifyGroupAddOpt:(NSString*)groupId opt:(TIMGroupAddOpt)opt succ:(TIMSucc)succ fail:(TIMFail)fail;  
412 -  
413 -/**  
414 - * 5.6 修改群组是否可被搜索属性  
415 - *  
416 - * @param groupId 群组Id  
417 - * @param searchable 是否能被搜索  
418 - * @param succ 成功回调  
419 - * @param fail 失败回调  
420 - *  
421 - * @return 0:成功;1:失败  
422 - */  
423 -- (int)modifyGroupSearchable:(NSString*)groupId searchable:(BOOL)searchable succ:(TIMSucc)succ fail:(TIMFail)fail;  
424 -  
425 -/**  
426 - * 5.8 修改群组全员禁言属性  
427 - *  
428 - * 1. 群主、管理员:有权限进行全员禁言的操作。  
429 - * 2. 所有群组类型:都支持全员禁言的操作。  
430 - *  
431 - * @param groupId 群组Id  
432 - * @param shutup 是否禁言  
433 - * @param succ 成功回调  
434 - * @param fail 失败回调  
435 - *  
436 - * @return 0:成功;1:失败  
437 - */  
438 -- (int)modifyGroupAllShutup:(NSString*)groupId shutup:(BOOL)shutup succ:(TIMSucc)succ fail:(TIMFail)fail;  
439 -  
440 -/**  
441 - * 5.9 修改群自定义字段集合  
442 - *  
443 - * 通过 [IM 控制台](https://console.cloud.tencent.com/avc) -> 功能配置 -> 群维度自定义字段 配置相关的 key 和权限。  
444 - *  
445 - *  
446 - * @param groupId 群组Id  
447 - * @param customInfo 自定义字段集合,key 是 NSString* 类型,value 是 NSData* 类型,value 长度不超过 512 字节  
448 - * @param succ 成功回调  
449 - * @param fail 失败回调  
450 - *  
451 - * @return 0:成功;1:失败  
452 - */  
453 -- (int)modifyGroupCustomInfo:(NSString*)groupId customInfo:(NSDictionary<NSString *,NSData *>*)customInfo succ:(TIMSucc)succ fail:(TIMFail)fail;  
454 -  
455 -/**  
456 - * 5.10 转让群给新群主  
457 - *  
458 - * 1. 只有群主才有权限进行群转让操作。  
459 - * 2. 直播大群不能进行群转让操作。  
460 - *  
461 - * @param groupId 群组Id  
462 - * @param identifier 新的群主Id  
463 - * @param succ 成功回调  
464 - * @param fail 失败回调  
465 - *  
466 - * @return 0:成功;1:失败  
467 - */  
468 -- (int)modifyGroupOwner:(NSString*)groupId user:(NSString*)identifier succ:(TIMSucc)succ fail:(TIMFail)fail;  
469 -  
470 -///@}  
471 -  
472 -#pragma mark 六,修改群成员信息  
473 -/////////////////////////////////////////////////////////////////////////////////  
474 -//  
475 -// (六)修改群成员信息  
476 -//  
477 -/////////////////////////////////////////////////////////////////////////////////  
478 -/// @name 修改群成员信息  
479 -/// @{  
480 -  
481 -/**  
482 - * 6.1 修改群成员名片  
483 - *  
484 - * 只有本人、管理员或群主能够调用  
485 - *  
486 - * @param groupId 群组Id  
487 - * @param identifier 被操作用户identifier  
488 - * @param nameCard 群名片  
489 - * @param succ 成功回调  
490 - * @param fail 失败回调  
491 - *  
492 - * @return 0:成功;1:失败  
493 - */  
494 -- (int)modifyGroupMemberInfoSetNameCard:(NSString*)groupId user:(NSString*)identifier nameCard:(NSString*)nameCard succ:(TIMSucc)succ fail:(TIMFail)fail;  
495 -  
496 -/**  
497 - * 6.2 修改群成员角色  
498 - *  
499 - * 1. 群主、管理员:可以进行对群成员的身份进行修改。  
500 - * 2. 直播大群:不支持修改用户群内身份。  
501 - *  
502 - * @param groupId 群组Id  
503 - * @param identifier 被修改角色的用户identifier  
504 - * @param role 角色(注意:不能修改为群主),详见 TIMGroupMemberRole  
505 - * @param succ 成功回调  
506 - * @param fail 失败回调  
507 - *  
508 - * @return 0:成功;1:失败  
509 - */  
510 -- (int)modifyGroupMemberInfoSetRole:(NSString*)groupId user:(NSString*)identifier role:(TIMGroupMemberRole)role succ:(TIMSucc)succ fail:(TIMFail)fail;  
511 -  
512 -/**  
513 - * 6.3 修改群组成员是否可见属性  
514 - *  
515 - * @param groupId 群组Id  
516 - * @param visible 是否可见  
517 - * @param succ 成功回调  
518 - * @param fail 失败回调  
519 - *  
520 - * @return 0:成功;1:失败  
521 - */  
522 -- (int)modifyGroupMemberVisible:(NSString*)groupId visible:(BOOL)visible succ:(TIMSucc)succ fail:(TIMFail)fail;  
523 -  
524 -/**  
525 - * 6.4 禁言用户  
526 - *  
527 - * 只有管理员或群主能够调用  
528 - *  
529 - * @param groupId 群组Id  
530 - * @param identifier 被禁言的用户identifier  
531 - * @param stime 禁言时间  
532 - * @param succ 成功回调  
533 - * @param fail 失败回调  
534 - *  
535 - * @return 0:成功;1:失败  
536 - */  
537 -- (int)modifyGroupMemberInfoSetSilence:(NSString*)groupId user:(NSString*)identifier stime:(uint32_t)stime succ:(TIMSucc)succ fail:(TIMFail)fail;  
538 -  
539 -/**  
540 - * 5.7 修改个人接受消息选项  
541 - *  
542 - * 默认情况下,公开群和私有群是接收并离线推送群消息,聊天室和直播大群是接收但不离线推送群消息。  
543 - *  
544 - * @param groupId 群组Id  
545 - * @param opt 接受消息选项,详见 TIMGroupReceiveMessageOpt  
546 - * @param succ 成功回调  
547 - * @param fail 失败回调  
548 - *  
549 - * @return 0:成功;1:失败  
550 - */  
551 -- (int)modifyReceiveMessageOpt:(NSString*)groupId opt:(TIMGroupReceiveMessageOpt)opt succ:(TIMSucc)succ fail:(TIMFail)fail;  
552 -  
553 -/**  
554 - * 6.5 修改群成员自定义字段集合  
555 - *  
556 - * 通过 [IM 控制台](https://console.cloud.tencent.com/avc) -> 功能配置 -> 群成员维度自定义字段 配置相关的 key 和权限。  
557 - *  
558 - * @param groupId 群组 Id  
559 - * @param identifier 被操作用户 identifier  
560 - * @param customInfo 自定义字段集合,key 是 NSString* 类型,value 是 NSData* 类型,value 长度不超过 64 字节  
561 - * @param succ 成功回调  
562 - * @param fail 失败回调  
563 - *  
564 - * @return 0:成功;1:失败  
565 - */  
566 -- (int)modifyGroupMemberInfoSetCustomInfo:(NSString*)groupId user:(NSString*)identifier customInfo:(NSDictionary<NSString*,NSData*> *)customInfo succ:(TIMSucc)succ fail:(TIMFail)fail;  
567 -  
568 -///@}  
569 -  
570 -#pragma mark 七,群未决逻辑  
571 -/////////////////////////////////////////////////////////////////////////////////  
572 -//  
573 -// (七)群未处理请求逻辑  
574 -//  
575 -/////////////////////////////////////////////////////////////////////////////////  
576 -/// @name 群未处理请求逻辑  
577 -/// @{  
578 -  
579 -/**  
580 - * 7.1 获取群组未处理请求列表  
581 - *  
582 - * 1. 群未处理请求泛指所有需要审批的群相关的操作(例如:加群待审批,拉人入群待审批等等)。即便审核通过或者拒绝后,该条信息也可通过此接口拉回,拉回的信息中有已处理标志  
583 - * 2. 审批人:有权限拉取相关信息,如果 UserA 申请加入群 GroupA,则群管理员可获取此未处理相关信息,UserA 因为没有审批权限,不需要拉取未处理信息。如果 AdminA 拉 UserA 进去 GroupA,则 UserA 可以拉取此未处理相关信息,因为该未处理信息待 UserA 审批。  
584 - *  
585 - * @param option 拉取群未处理请求参数配置,详情请参考 TIMComm.h -> TIMGroupPendencyOption  
586 - * @param succ 成功回调,返回未决列表  
587 - * @param fail 失败回调  
588 - *  
589 - * @return 0:成功;1:失败  
590 - */  
591 -- (int)getPendencyFromServer:(TIMGroupPendencyOption*)option succ:(TIMGetGroupPendencyListSucc)succ fail:(TIMFail)fail;  
592 -  
593 -/**  
594 - * 7.2 群未处理列表已读上报  
595 - *  
596 - * 对于未处理信息,SDK 可对其和之前的所有未处理请求上报已读。上报已读后,仍然可以拉取到这些未决信息,但可通过对已读时戳的判断判定未决信息是否已读。  
597 - *  
598 - * @param timestamp 上报已读时间戳  
599 - * @param succ 成功回调  
600 - * @param fail 失败回调  
601 - *  
602 - * @return 0:成功;1:失败  
603 - */  
604 -- (int)pendencyReport:(uint64_t)timestamp succ:(TIMSucc)succ fail:(TIMFail)fail;  
605 -  
606 -///@}  
607 -  
608 -@end  
609 -#endif  
1 -/////////////////////////////////////////////////////////////////////  
2 -//  
3 -// 腾讯云通信服务 IMSDK  
4 -//  
5 -// 模块名称:TIMManager + MsgExt  
6 -//  
7 -// 模块功能:此处主要存放待废弃的 API 函数,建议您使用 TIMManager.h 内部声明的接口函数  
8 -//  
9 -/////////////////////////////////////////////////////////////////////  
10 -  
11 -#ifndef TIMManager_MsgExt_h  
12 -#define TIMManager_MsgExt_h  
13 -  
14 -#import "TIMManager.h"  
15 -  
16 -/**  
17 - * IMSDK 扩展类,此处主要存放待废弃的 API 函数,建议您使用 TIMManager.h 内部声明的接口函数  
18 - */  
19 -@interface TIMManager (MsgExt)  
20 -  
21 -/**  
22 - * 获取群管理器  
23 - *  
24 - * 此函数待废弃,请直接使用 TIMGroupManager 的 sharedInstance 函数  
25 - *  
26 - * @return 群管理器,详情请参考 TIMGroupManager.h 中的 TIMGroupManager 定义  
27 - */  
28 -- (TIMGroupManager*)groupManager;  
29 -  
30 -  
31 -/**  
32 - * 获取好友管理器  
33 - *  
34 - * 此函数待废弃,请直接使用 TIMFriendshipManager 的 sharedInstance 函数  
35 - *  
36 - * @return 好友管理器,详情请参考 TIMFriendshipManager.h 中的 TIMFriendshipManager 定义  
37 - */  
38 -- (TIMFriendshipManager*)friendshipManager;  
39 -  
40 -/**  
41 - * 获取会话数量  
42 - *  
43 - * @return 会话数量  
44 - */  
45 -- (int)conversationCount;  
46 -  
47 -/**  
48 - * 发送消息给多个用户  
49 - *  
50 - * @param msg 发送的消息  
51 - * @param users 目标用户的id列表  
52 - * @param succ 成功回调  
53 - * @param fail 失败回调  
54 - *  
55 - * @return 0 发送成功  
56 - */  
57 -- (int)sendMessage:(TIMMessage*)msg toUsers:(NSArray*)users succ:(TIMSucc)succ fail:(TIMSendToUsersFail)fail;  
58 -  
59 -/**  
60 - * 自定义版本号  
61 - *  
62 - * @param version 版本号  
63 - * @note setCustomVersion() 要在 initSdk() 之前调用。  
64 - */  
65 -- (void)setCustomVersion:(NSString *)version;  
66 -  
67 -/**  
68 - * 删除未读消息的时候减少会话的未读数  
69 - *  
70 - * 不建议客户使用,删除消息和减少未读数是本地操作,没有和服务器做同步,在程序卸载或则多端同步中会出现未读数不一致的问题。  
71 - *  
72 - * @note reduceUnreadNumberWhenRemoveMessage 要在 initSdk() 之前调用。  
73 - */  
74 -- (void)reduceUnreadNumberWhenRemoveMessage;  
75 -  
76 -@end  
77 -  
78 -  
79 -#endif /* TIMManager_MsgExt_h */  
1 -/////////////////////////////////////////////////////////////////////  
2 -//  
3 -// 腾讯云通信服务 IMSDK  
4 -//  
5 -// 模块名称:TIMManager  
6 -//  
7 -// 模块功能:IMSDK 主核心模块,负责 IMSDK 的初始化、登录、创建会话、管理推送等功能。  
8 -//  
9 -// (1) 初始化:初始化是使用 TIMSDK 的前提,任何其它 API 的调用都应该在 initSdk 接口之后被调用。  
10 -//  
11 -// (2) 登录:需要设置 SDKAppID,userID 和 userSig 才能使用腾讯云服务。  
12 -//  
13 -// (3) 会话:一个会话对应一个聊天窗口,比如跟一个好友的 C2C 聊天,或者一个聊天群,都是一个会话。  
14 -//  
15 -// (4) 推送:管理和设置 APNS 的相关功能,包括 token 和开关等。  
16 -//  
17 -/////////////////////////////////////////////////////////////////////  
18 -  
19 -  
20 -#ifndef ImSDK_TIMManager_h  
21 -#define ImSDK_TIMManager_h  
22 -  
23 -#import "TIMComm.h"  
24 -#import "TIMCallback.h"  
25 -  
26 -@class TIMGroupManager;  
27 -@class TIMFriendshipManager;  
28 -  
29 -  
30 -/**  
31 - * IMSDK 主核心类,负责 IMSDK 的初始化、登录、创建会话、管理推送等功能。  
32 - */  
33 -@interface TIMManager : NSObject  
34 -  
35 -#pragma mark 一,初始化相关接口函数  
36 -  
37 -/////////////////////////////////////////////////////////////////////////////////  
38 -//  
39 -// (一)初始化相关接口函数  
40 -//  
41 -/////////////////////////////////////////////////////////////////////////////////  
42 -  
43 -/// @name 初始化相关接口  
44 -/// @{  
45 -  
46 -/**  
47 - * 1.1 获取管理器实例 TIMManager  
48 - *  
49 - * @return 管理器实例  
50 - */  
51 -+ (TIMManager*)sharedInstance;  
52 -  
53 -/**  
54 - * 1.2 初始化 SDK,设置全局配置信息  
55 - *  
56 - * 初始化 SDK 需要设置 TIMSdkConfig 信息,TIMSdkConfig 主要包含 sdkAppId 设置、Log 相关逻辑设置、数据库存储路径设置、网络监听设置等,  
57 - * 其中 sdkAppId 的获取请参考官网文档 [跑通Demo(iOS与Mac)](https://cloud.tencent.com/document/product/269/32674)。  
58 - *  
59 - * @param globalConfig 配置信息,全局有效,详情请参考 TIMComm.h 中的 TIMSdkConfig 定义。  
60 - * @return 0:成功;1:失败,config 为 nil  
61 - */  
62 -- (int)initSdk:(TIMSdkConfig*)globalConfig;  
63 -  
64 -/**  
65 - * 1.3 反初始化  
66 - */  
67 -- (void)unInit;  
68 -  
69 -/**  
70 - * 1.4 获取全局配置信息  
71 - *  
72 - * @return 全局配置,详情请参考 TIMComm.h 中的 TIMSdkConfig 定义  
73 - */  
74 -- (TIMSdkConfig*)getGlobalConfig;  
75 -  
76 -/**  
77 - * 1.5 设置用户配置信息  
78 - *  
79 - * 主要用来开启/关闭自动已读上报和已读回执,设置默认拉取的群组资料,群成员资料字段,监听用户登录状态、会话刷新、消息已读回执、文件上传进度、群组事件通知。  
80 - *  
81 - * 1. disableAutoReport 是否开启多终端同步未读提醒,这个选项主要影响多终端登录时的未读消息提醒逻辑。  
82 - * YES:只有当一个终端调用 setReadMessage() 将消息标记为已读,另一个终端再登录时才不会收到未读提醒;  
83 - * NO:消息一旦被一个终端接收,另一个终端都不会再次提醒。同理,卸载 APP 再安装也无法再次收到这些未读消息。  
84 - * 2. enableReadReceipt 是否开启被阅回执,接收端设置,发送端才会生效。  
85 - * YES:接收者查看消息(setReadMessage)后,消息的发送者会收到 TIMMessageReceiptListener 的回调提醒;  
86 - * NO: 不开启被阅回执,默认不开启。  
87 - * 3. groupInfoOpt 设置拉取群资料中的自定义字段。  
88 - * 4. groupMemberInfoOpt 设置拉群成员资料中的自定义字段。  
89 - *  
90 - * @note setUserConfig() 要在 initSdk() 之后 和 login() 之前调用。  
91 - *  
92 - * @param config 配置信息,对当前 TIMManager 有效,详情请参考 TIMComm.h 中的 TIMUserConfig 定义  
93 - * @return 0:成功;1:失败,config 为 nil  
94 - */  
95 -- (int)setUserConfig:(TIMUserConfig*)config;  
96 -  
97 -/**  
98 - * 1.6 获取用户配置信息  
99 - *  
100 - * @return 当前 manager 绑定用户的配置,详情请参考 TIMComm.h 中的 TIMUserConfig 定义  
101 - */  
102 -- (TIMUserConfig*)getUserConfig;  
103 -  
104 -/**  
105 - * 1.7 新消息接收监听  
106 - *  
107 - * 添加消息监听后,会在 TIMMessageListener 的 onNewMessage 收到回调消息,消息内容通过参数 TIMMessage 传递。  
108 - * 消息的解析可参阅 [消息解析](https://cloud.tencent.com/document/product/269/9150#.E6.B6.88.E6.81.AF.E8.A7.A3.E6.9E.90) 。  
109 - *  
110 - * @param listener 回调,详情请参考 TIMCallback.h 中的 TIMMessageListener 定义  
111 - * @return 0:成功;1:失败,listener 为 nil  
112 - */  
113 -- (int)addMessageListener:(id<TIMMessageListener>)listener;  
114 -  
115 -/**  
116 - * 1.8 移除消息监听  
117 - *  
118 - * @param listener 回调,详情请参考 TIMCallback.h 中的 TIMMessageListener 定义  
119 - * @return 0:成功;1:失败,listener 为 nil  
120 - */  
121 -- (int)removeMessageListener:(id<TIMMessageListener>)listener;  
122 -  
123 -/// @}  
124 -  
125 -#pragma mark 二,登录相关接口  
126 -/////////////////////////////////////////////////////////////////////////////////  
127 -//  
128 -// (二)登录相关接口  
129 -//  
130 -/////////////////////////////////////////////////////////////////////////////////  
131 -  
132 -/// @name 登录相关接口  
133 -/// @{  
134 -/**  
135 - * 2.1 登录  
136 - *  
137 - * 1. 登录需要设置用户名 userID 和用户签名 userSig,userSig 生成请参 [UserSig 后台 API](https://cloud.tencent.com/document/product/269/32688)。  
138 - * 2. 如果 userSig 过期,登录会返回 ERR_USER_SIG_EXPIRED:6206 错误码,收到错误码后请生成新的 userSig 重新登录。  
139 - * 3. 用户在线情况下被踢,会在 TIMUserConfig 里面配置的 TIMUserStatusListener 监听器获取 onForceOffline 回调,收到回调后可以选择重新登录。  
140 - * 4. 用户离线状态下被踢,会在用户重新登录时收到 (ERR_IMSDK_KICKED_BY_OTHERS:6208) 错误码,此时需要再次调用 login() 强制上线。  
141 - * 5. 如果当前是登录中,则本次登录无效,本次回调不会有任何返回,登录结果会通过第一次登录的回调返回,可以通过 getLoginStatus() 获取登录状态。  
142 - *  
143 - * 更多详情请参考 [用户状态变更](https://cloud.tencent.com/document/product/269/9148#5.-.E7.94.A8.E6.88.B7.E7.8A.B6.E6.80.81.E5.8F.98.E6.9B.B4)。  
144 - *  
145 - * @param param 登录参数,详情请参考 TIMComm.h 中的 TIMLoginParam 定义  
146 - * @param succ 成功回调,详情请参考 TIMComm.h 中的 TIMLoginSucc 定义  
147 - * @param fail 失败回调,详情请参考 TIMComm.h 中的 TIMFail 定义  
148 - *  
149 - * @return 0:成功;1:失败,请检查 param 参数是否正常  
150 - */  
151 -- (int)login: (TIMLoginParam*)param succ:(TIMLoginSucc)succ fail:(TIMFail)fail;  
152 -  
153 -/**  
154 - * 2.2 自动登录  
155 - *  
156 - * 自动登录类似“记住密码”的功能,如果上一次已经成功登录,那么一段时间内都只需要传入用户名就可以完成登录。  
157 - * 相比于普通的 login(TIMLoginParam) 接口,该接口可以减少 IM SDK 向您的服务器索要 UserSig 的频率,  
158 - * 既可以加快登录速度,又能减少你的 UserSig 服务器压力,也在一定程度上降低了 UserSig 泄漏的风险。  
159 - *  
160 - * 1. 首次登录之后,SDK 会把登录信息存在在本地,下次登录即可调用自动登录  
161 - * 2. 如果用户之前没有登录过,或则 APP 被卸载过,自动登录会报 ERR_NO_PREVIOUS_LOGIN:6026 错误,这个时候请调用 login 接口重新登录。  
162 - *  
163 - * @param userID 自动登录用户名  
164 - * @param succ 成功回调,详情请参考 TIMComm.h 中的 TIMLoginSucc 定义  
165 - * @param fail 失败回调,详情请参考 TIMComm.h 中的 TIMFail 定义  
166 - *  
167 - * @return 0:成功;1:失败,请检查 param 参数是否正常  
168 - */  
169 -- (int)autoLogin:(NSString*)userID succ:(TIMLoginSucc)succ fail:(TIMFail)fail;  
170 -  
171 -/**  
172 - * 2.3 登出  
173 - *  
174 - * 退出登录,如果切换账号,需要 logout 回调成功或者失败后才能再次 login,否则 login 可能会失败。  
175 - *  
176 - * @param succ 成功回调,登出成功  
177 - * @param fail 失败回调,返回错误码和错误信息  
178 - *  
179 - * @return 0:发送登出包成功,等待回调;1:失败  
180 - */  
181 -- (int)logout:(TIMLoginSucc)succ fail:(TIMFail)fail;  
182 -  
183 -/**  
184 - * 2.4 获取当前登录的用户  
185 - *  
186 - * @return 如果登录返回用户的 userID,如果未登录返回 nil  
187 - */  
188 -- (NSString*)getLoginUser;  
189 -  
190 -/**  
191 - * 2.5 获取当前登录状态  
192 - *  
193 - * @return 登录状态,详情请参考 TIMComm.h 中的 TIMLoginStatus 定义  
194 - */  
195 -- (TIMLoginStatus)getLoginStatus;  
196 -  
197 -/// @}  
198 -  
199 -#pragma mark 三,会话管理器  
200 -/////////////////////////////////////////////////////////////////////////////////  
201 -//  
202 -// (三)会话管理器  
203 -//  
204 -/////////////////////////////////////////////////////////////////////////////////  
205 -/// @name 会话管理器  
206 -/// @{  
207 -  
208 -/**  
209 - * 3.1 获取会话列表  
210 - *  
211 - * 一个会话对应一个聊天窗口,比如跟一个好友的 1v1 聊天,或者一个聊天群,都是一个会话。  
212 - *  
213 - * @return 会话列表  
214 - */  
215 -- (NSArray<TIMConversation *>*)getConversationList;  
216 -  
217 -/**  
218 - * 3.2 获取单个会话  
219 - *  
220 - * TIMConversation 负责会话相关操作,包含发送消息、获取会话消息缓存、获取未读计数等。  
221 - *  
222 - * @param type 详情请参考 TIMComm.h 里面的 TIMConversationType 定义  
223 - * @param conversationId 会话 ID  
224 - 单聊类型(C2C) :为对方 userID;  
225 - 群组类型(GROUP) :为群组 groupId;  
226 - 系统类型(SYSTEM):为 @""  
227 - *  
228 - * @return 会话对象,详情请参考 TIMConversation.h 里面的 TIMConversation 定义  
229 - */  
230 -- (TIMConversation*)getConversation:(TIMConversationType)type receiver:(NSString*)conversationId;  
231 -  
232 -/**  
233 - * 3.3 删除单个会话  
234 - *  
235 - * @param type 会话类型,详情请参考 TIMComm.h 里面的 TIMConversationType 定义  
236 - * @param conversationId 会话 Id  
237 - * 单聊类型(C2C) :为对方 userID;  
238 - * 群组类型(GROUP) :为群组 groupId;  
239 - * 系统类型(SYSTEM):为 @""  
240 - *  
241 - * @return YES:删除成功;NO:删除失败  
242 - */  
243 -- (BOOL)deleteConversation:(TIMConversationType)type receiver:(NSString*)conversationId;  
244 -  
245 -/**  
246 - * 3.4 删除单个会话和对应的会话消息  
247 - *  
248 - * 本接口与 deleteConversation() 的差异在于,deleteConversation() 只是删除单个会话,而本接口会额外把本地缓存的消息记录也一并删除掉。  
249 - *  
250 - * @note 本接口只能删除本地缓存的历史消息,无法删除云端保存的历史消息。  
251 - * @param type 会话类型,详情请参考 TIMComm.h 里面的 TIMConversationType 定义  
252 - * @param conversationId 会话 Id  
253 - * 单聊类型(C2C) :为对方 userID;  
254 - * 群组类型(GROUP) :为群组 groupId;  
255 - * 系统类型(SYSTEM):为 @""  
256 - *  
257 - * @return YES:删除成功;NO:删除失败  
258 - */  
259 -- (BOOL)deleteConversationAndMessages:(TIMConversationType)type receiver:(NSString*)conversationId;  
260 -  
261 -/// @}  
262 -  
263 -#pragma mark 四,设置 APNs 推送  
264 -/////////////////////////////////////////////////////////////////////////////////  
265 -//  
266 -// (四)设置 APNs 推送  
267 -//  
268 -/////////////////////////////////////////////////////////////////////////////////  
269 -/// @name 设置 APNs 推送  
270 -/// @{  
271 -  
272 -/**  
273 - * 4.1. 设置客户端 Token 和证书 busiId  
274 - *  
275 - * token 是苹果后台对客户端的唯一标识,需要主动调用系统 API 向苹果请求获取,请求成功后,  
276 - * 可以在 didRegisterForRemoteNotificationsWithDeviceToken 回调收到对应的 token 信息。  
277 - * 具体实现见下面代码示例:  
278 - *  
279 - * <pre>  
280 - *  
281 - * //获取 token 代码示例  
282 - * if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0) {  
283 - * [[UIApplication sharedApplication] registerUserNotificationSettings:  
284 - * [UIUserNotificationSettings settingsForTypes:  
285 - * (UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge) categories:nil]];  
286 - * [[UIApplication sharedApplication] registerForRemoteNotifications];  
287 - * }  
288 - * else{  
289 - * [[UIApplication sharedApplication] registerForRemoteNotificationTypes:  
290 - * (UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert)];  
291 - * }  
292 - *  
293 - * //收到 token 代码示例  
294 - * -(void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {  
295 - * //回调的 deviceToken 就是需要的 token 信息  
296 - * }  
297 - *  
298 - * </pre>  
299 - *  
300 - * busiId 是推送证书 ID,是向 IM 控制台上传 iOS 证书(p.12)生成的,  
301 - * 具体步骤请参考 [离线推送](https://cloud.tencent.com/document/product/269/9154)。  
302 - *  
303 - * @param token 详情请参考 TIMComm.h 中的 TIMTokenParam 定义  
304 - * @param succ 成功回调,详情请参考 TIMComm.h 中的 TIMSucc 定义  
305 - * @param fail 失败回调,详情请参考 TIMComm.h 中的 TIMFail 定义  
306 - *  
307 - * @return 0:成功;1:失败,token 参数异常  
308 - */  
309 -- (int)setToken:(TIMTokenParam*)token succ:(TIMSucc)succ fail:(TIMFail)fail;  
310 -  
311 -/**  
312 - * 4.2. 设置 APNS  
313 - *  
314 - * 设置 APNS,可设置单聊、群组推送声音,也可以设置是否开启推送。  
315 - *  
316 - * @param config APNS 配置,详情请参考 TIMComm.h 中的 TIMAPNSConfig 定义  
317 - * @param succ 成功回调,详情请参考 TIMComm.h 中的 TIMSucc 定义  
318 - * @param fail 失败回调,详情请参考 TIMComm.h 中的 TIMFail 定义  
319 - *  
320 - * @return 0:成功;1:失败,config 参数异常  
321 - */  
322 -- (int)setAPNS:(TIMAPNSConfig*)config succ:(TIMSucc)succ fail:(TIMFail)fail;  
323 -  
324 -/**  
325 - * 4.3. 获取 APNS 配置  
326 - *  
327 - * @param succ 成功回调,返回配置信息,详情请参考 TIMComm.h 中的 TIMAPNSConfigSucc 定义  
328 - * @param fail 失败回调,详情请参考 TIMComm.h 中的 TIMFail 定义  
329 - *  
330 - * @return 0:成功;1:失败  
331 - */  
332 -- (int)getAPNSConfig:(TIMAPNSConfigSucc)succ fail:(TIMFail)fail;  
333 -  
334 -/**  
335 - * 4.4. APP 进后台  
336 - *  
337 - * APP 进后台的时候需要主动调用 doBackground ,这个时候后台知道 APP 的状态,之后的消息会下发推送通知。  
338 - *  
339 - * <pre>  
340 - *  
341 - * - (void)applicationDidEnterBackground:(UIApplication *)application {  
342 - * TIMBackgroundParam *param = [[TIMBackgroundParam alloc] init];  
343 - * [param setC2cUnread:unReadCount];  
344 - * [[TIMManager sharedInstance] doBackground:param succ:^() {  
345 - * // to do  
346 - * } fail:^(int code, NSString * err) {  
347 - * // to do  
348 - * }];  
349 - * }  
350 - *  
351 - * </pre>  
352 - *  
353 - * @param param 上报参数,详情请参考 TIMComm.h 中的 TIMBackgroundParam 定义  
354 - * @param succ 成功时回调,详情请参考 TIMComm.h 中的 TIMSucc 定义  
355 - * @param fail 失败时回调,详情请参考 TIMComm.h 中的 TIMFail 定义  
356 - *  
357 - * @return 0:成功;1:失败  
358 - */  
359 -- (int)doBackground:(TIMBackgroundParam*)param succ:(TIMSucc)succ fail:(TIMFail)fail;  
360 -  
361 -  
362 -/**  
363 - * 4.5. APP 进前台  
364 - *  
365 - * APP 进前台的时候需要主动调用 doForeground,这个时候后台知道 APP 的状态,之后的消息不会下发推送通知。  
366 - *  
367 - * <pre>  
368 - *  
369 - * - (void)applicationDidBecomeActive:(UIApplication *)application {  
370 - * [[TIMManager sharedInstance] doForeground:^() {  
371 - * //to do  
372 - * } fail:^(int code, NSString * err) {  
373 - * //to do  
374 - * }];  
375 - * }  
376 - *  
377 - * </pre>  
378 - *  
379 - * @param succ 成功时回调,详情请参考 TIMComm.h 中的 TIMSucc 定义  
380 - * @param fail 失败时回调,详情请参考 TIMComm.h 中的 TIMFail 定义  
381 - *  
382 - * @return 0:成功;1:失败  
383 - */  
384 -- (int)doForeground:(TIMSucc)succ fail:(TIMFail)fail;  
385 -  
386 -/// @}  
387 -  
388 -#pragma mark 五,未登录查看本地会话和消息  
389 -/////////////////////////////////////////////////////////////////////////////////  
390 -//  
391 -// (五)未登录查看本地会话和消息  
392 -//  
393 -/////////////////////////////////////////////////////////////////////////////////  
394 -/// @name 未登录查看本地会话和消息  
395 -/// @{  
396 -  
397 -/**  
398 - * 5.1 在未登录的情况下加载本地存储  
399 - *  
400 - * 该接口相当于 login() 函数的无网络版本,适用于在用户没有网络(未登录)的情况下查看用户的本地会话和消息。  
401 - *  
402 - * @note 如过已经 login() 成功,请不要调用此函数,否则会导致各种异常问题。  
403 - *  
404 - * @param userID 用户名  
405 - * @param succ 成功回调,收到回调时,可以获取会话列表和消息  
406 - * @param fail 失败回调  
407 - * @return 0:加载成功;1:请求失败  
408 - */  
409 -- (int)initStorage:(NSString*)userID succ:(TIMLoginSucc)succ fail:(TIMFail)fail;  
410 -  
411 -///@}  
412 -  
413 -#pragma mark 六,调试相关接口  
414 -/////////////////////////////////////////////////////////////////////////////////  
415 -//  
416 -// (六)调试相关接口  
417 -//  
418 -/////////////////////////////////////////////////////////////////////////////////  
419 -/// @name 调试相关接口  
420 -/// @{  
421 -  
422 -/**  
423 - * 6.1 获取版本号  
424 - *  
425 - * @return 返回版本号,字符串表示,例如 v1.1.1  
426 - */  
427 -- (NSString*)GetVersion;  
428 -  
429 -/**  
430 - * 6.2 打印日志  
431 - *  
432 - * 通过 ImSDK 提供的日志功能打印日志  
433 - *  
434 - * @param level 日志级别,详情请参考 TIMComm.h 中的 TIMLogLevel 定义  
435 - * @param tag 模块 tag  
436 - * @param msg 要输出的日志内容  
437 - */  
438 -- (void)log:(TIMLogLevel)level tag:(NSString*)tag msg:(NSString*)msg;  
439 -  
440 -/**  
441 - * 6.3 获取日志文件路径  
442 - */  
443 -- (NSString*)getLogPath;  
444 -  
445 -/**  
446 - * 6.4 获取日志打印开启状态  
447 - *  
448 - * 您可以在 initSdk -> TIMSdkConfig -> disableLogPrint 设置日志是否打印  
449 - *  
450 - * @return YES:允许 log 打印;NO:不允许 log 打印  
451 - */  
452 -- (BOOL)getIsLogPrintEnabled;  
453 -  
454 -/**  
455 - * 6.5 获取日志级别  
456 - *  
457 - * @return 返回日志级别,详情请参考 TIMComm.h 中的 TIMLogLevel 定义  
458 - */  
459 --(TIMLogLevel) getLogLevel;  
460 -  
461 -///@}  
462 -  
463 -@end  
464 -#endif