lipengwei
2020-04-09 5f1e4088ab75c264ead4347a7dc8c2e142023990
commit | author | age
5f1e40 1 ///
L 2 /// \file sdkdef.h
3 /// \brief SDK中相关常量定义
4 ///
5 /// Created by Tencent on 12-12-25.
6 /// Copyright (c) 2012年 Tencent. All rights reserved.
7 ///
8
9 #import <Foundation/Foundation.h>
10 #import <UIKit/UIKit.h>
11
12 /**
13  * \brief 设置sdk的log等级
14  */
15 typedef enum {
16     TCOLogLevel_Disabled = -1,   // 关闭所有log
17     TCOLogLevel_Error = 0,
18     TCOLogLevel_Warning,
19     TCOLogLevel_Info,
20     TCOLogLevel_Debug,
21 } TCOLogLevel;
22
23 /**
24  * \breif 授权/分享 方式
25  */
26 typedef enum TencentAuthShareType {
27     AuthShareType_QQ,
28     AuthShareType_TIM,
29 }TencentAuthShareType;
30
31 /**
32  * \brief APIResponse.retCode可能的枚举常量
33  */
34 typedef enum
35 {
36     URLREQUEST_SUCCEED = 0, /**< 网络请求成功发送至服务器,并且服务器返回数据格式正确
37                              * \note 这里包括所请求业务操作失败的情况,例如没有授权等原因导致
38                              */
39     
40     URLREQUEST_FAILED = 1,  /**< 网络异常,或服务器返回的数据格式不正确导致无法解析 */
41 } REPONSE_RESULT;
42
43 /**
44  * \brief 增量授权失败原因
45  *
46  * \note 增量授权失败不影响原token的有效性(原token已失效的情况除外)
47  */
48 typedef enum
49 {
50     kUpdateFailUnknown = 1,  ///< 未知原因
51     kUpdateFailUserCancel,   ///< 用户取消
52     kUpdateFailNetwork,      ///< 网络问题
53 } UpdateFailType;
54
55 /**
56  * \brief 封装服务器返回的结果
57  *
58  * APIResponse用于封装所有请求的返回结果,包括错误码、错误信息、原始返回数据以及返回数据的json格式字典
59  */
60 @interface APIResponse : NSObject<NSCoding> {
61     int      _detailRetCode;
62     int         _retCode;
63     int         _seq;
64     NSString *_errorMsg;
65     NSDictionary *_jsonResponse;
66     NSString *_message;
67     id       _userData;
68 }
69
70 /**
71  * 新增的详细错误码\n
72  * detailRetCode主要用于区分不同的错误情况,参见\ref OpenSDKError
73  */
74 @property (nonatomic, assign) int detailRetCode;
75
76 /**
77  * 网络请求是否成功送达服务器,以及服务器返回的数据格式是否正确\n
78  * retCode具体取值可参考\ref REPONSE_RESULT
79  */
80 @property (nonatomic, assign) int retCode;
81
82 /**
83  * 网络请求对应的递增序列号,方便内部管理
84  */
85 @property (nonatomic, assign) int seq;
86
87 /**
88  * 错误提示语
89  */
90 @property (nonatomic, retain) NSString *errorMsg;
91
92 /**
93  * 服务器返回数据的json格式字典\n
94  * 字典内具体参数的命名和含义请参考\ref api_spec
95  */
96 @property (nonatomic, retain) NSDictionary *jsonResponse;
97
98 /**
99  * 服务器返回的原始数据字符串
100  */
101 @property (nonatomic, retain) NSString *message;
102
103 /**
104  * 用户保留数据
105  */
106 @property (nonatomic, retain) id userData;
107
108 @end
109
110
111 /**
112  * 用户自定义的保留字段
113  */
114 FOUNDATION_EXTERN NSString * const PARAM_USER_DATA;
115
116 /**
117  * \name 应用邀请参数字段定义
118  */
119 ///@{
120
121 /** 应用邀请展示图片url的key */
122 FOUNDATION_EXTERN NSString * const PARAM_APP_ICON;
123
124 /** 应用邀请描述文本的key */
125 FOUNDATION_EXTERN NSString * const PARAM_APP_DESC;
126
127 /** 应用邀请好友列表的key */
128 FOUNDATION_EXTERN NSString * const PARAM_APP_INVITED_OPENIDS;
129
130 ///@}
131
132 /**
133  * \name sendStory新分享参数字段定义
134  */
135 ///@{
136
137 /** 预填入接受人列表的key */
138 FOUNDATION_EXTERN NSString * const PARAM_SENDSTORY_RECEIVER;
139
140 /** 分享feeds标题的key */
141 FOUNDATION_EXTERN NSString * const PARAM_SENDSTORY_TITLE;
142
143 /** 分享feeds评论内容的key */
144 FOUNDATION_EXTERN NSString * const PARAM_SENDSTORY_COMMENT;
145
146 /** 分享feeds摘要的key */
147 FOUNDATION_EXTERN NSString * const PARAM_SENDSTORY_SUMMARY;
148
149 /** 分享feeds展示图片url的key */
150 FOUNDATION_EXTERN NSString * const PARAM_SENDSTORY_IMAGE;
151
152 /** 分享feeds跳转链接url的key */
153 FOUNDATION_EXTERN NSString * const PARAM_SENDSTORY_URL;
154
155 /** 分享feeds点击操作默认行为的key */
156 FOUNDATION_EXTERN NSString * const PARAM_SENDSTORY_ACT;
157
158 ///@}
159
160 /**
161  * \name 设置头像参数字段定义
162  */
163 ///@{
164
165 /** 头像图片数据的key */
166 FOUNDATION_EXTERN NSString * const PARAM_SETUSERHEAD_PIC;
167
168 /** 头像图片文件名的key */
169 FOUNDATION_EXTERN NSString * const PARAM_SETUSERHEAD_FILENAME;
170
171 ///@}
172
173 /**
174  * \name 服务器返回数据的参数字段定义
175  */
176 ///@{
177
178 /** 服务器返回码的key */
179 FOUNDATION_EXTERN NSString * const PARAM_RETCODE;
180
181 /** 服务器返回错误信息的key */
182 FOUNDATION_EXTERN NSString * const PARAM_MESSAGE;
183
184 /** 服务器返回额外数据的key */
185 FOUNDATION_EXTERN NSString * const PARAM_DATA;
186
187 ///@}
188
189 /**
190  * \name 错误信息相关常量定义
191  */
192 ///@{
193
194 /** 详细错误信息字典中额外信息的key */
195 FOUNDATION_EXTERN NSString * const TCOpenSDKErrorKeyExtraInfo;
196
197 /** 详细错误信息字典中返回码的key */
198 FOUNDATION_EXTERN NSString * const TCOpenSDKErrorKeyRetCode;
199
200 /** 详细错误信息字典中错误语句的key */
201 FOUNDATION_EXTERN NSString * const TCOpenSDKErrorKeyMsg;
202
203 /** 不支持的接口 */
204 FOUNDATION_EXTERN NSString * const TCOpenSDKErrorMsgUnsupportedAPI;
205
206 /** 操作成功 */
207 FOUNDATION_EXTERN NSString * const TCOpenSDKErrorMsgSuccess;
208
209 /** 未知错误 */
210 FOUNDATION_EXTERN NSString * const TCOpenSDKErrorMsgUnknown;
211
212 /** 用户取消 */
213 FOUNDATION_EXTERN NSString * const TCOpenSDKErrorMsgUserCancel;
214
215 /** 请重新登录 */
216 FOUNDATION_EXTERN NSString * const TCOpenSDKErrorMsgReLogin;
217
218 /** 应用没有操作权限 */
219 FOUNDATION_EXTERN NSString * const TCOpenSDKErrorMsgOperationDeny;
220
221 /** 网络异常或没有网络 */
222 FOUNDATION_EXTERN NSString * const TCOpenSDKErrorMsgNetwork;
223
224 /** URL格式或协议错误 */
225 FOUNDATION_EXTERN NSString * const TCOpenSDKErrorMsgURL;
226
227 /** 解析数据出错 */
228 FOUNDATION_EXTERN NSString * const TCOpenSDKErrorMsgDataParse;
229
230 /** 传入参数有误 */
231 FOUNDATION_EXTERN NSString * const TCOpenSDKErrorMsgParam;
232
233 /** 连接超时 */
234 FOUNDATION_EXTERN NSString * const TCOpenSDKErrorMsgTimeout;
235
236 /** 安全问题 */
237 FOUNDATION_EXTERN NSString * const TCOpenSDKErrorMsgSecurity;
238
239 /** 文件读写错误 */
240 FOUNDATION_EXTERN NSString * const TCOpenSDKErrorMsgIO;
241
242 /** 服务器端错误 */
243 FOUNDATION_EXTERN NSString * const TCOpenSDKErrorMsgServer;
244
245 /** 页面错误 */
246 FOUNDATION_EXTERN NSString * const TCOpenSDKErrorMsgWebPage;
247
248 /** 设置头像图片过大 */
249 FOUNDATION_EXTERN NSString * const TCOpenSDKErrorMsgUserHeadPicLarge;
250
251 ///@}
252
253 /**
254  * \brief SDK新增详细错误常量
255  */
256 typedef enum
257 {
258     kOpenSDKInvalid = -1,                       ///< 无效的错误码
259     kOpenSDKErrorUnsupportedAPI = -2,                ///< 不支持的接口
260     
261     /**
262      * \name CommonErrorCode
263      * 公共错误码
264      */
265     ///@{
266     kOpenSDKErrorSuccess = 0,                   ///< 成功
267     kOpenSDKErrorUnknown,                       ///< 未知错误
268     kOpenSDKErrorUserCancel,                    ///< 用户取消
269     kOpenSDKErrorReLogin,                       ///< token无效或用户未授权相应权限需要重新登录
270     kOpenSDKErrorOperationDeny,                 ///< 第三方应用没有该api操作的权限
271     ///@}
272     
273     /**
274      * \name NetworkRelatedErrorCode
275      * 网络相关错误码
276      */
277     ///@{
278     kOpenSDKErrorNetwork,                       ///< 网络错误,网络不通或连接不到服务器
279     kOpenSDKErrorURL,                           ///< URL格式或协议错误
280     kOpenSDKErrorDataParse,                     ///< 数据解析错误,服务器返回的数据解析出错
281     kOpenSDKErrorParam,                         ///< 传入参数错误
282     kOpenSDKErrorConnTimeout,                   ///< http连接超时
283     kOpenSDKErrorSecurity,                      ///< 安全问题
284     kOpenSDKErrorIO,                            ///< 下载和文件IO错误
285     kOpenSDKErrorServer,                        ///< 服务器端错误
286     ///@}
287     
288     /**
289      * \name WebViewRelatedError
290      * webview特有错误
291      */
292     ///@{
293     kOpenSDKErrorWebPage,                       ///< 页面错误
294     ///@}
295     
296     /**
297      * \name SetUserHeadRelatedErrorCode
298      * 设置头像自定义错误码段
299      */
300     ///@{
301     kOpenSDKErrorUserHeadPicLarge = 0x010000,   ///< 图片过大 设置头像自定义错误码
302     ///@}
303 } OpenSDKError;
304
305 /**
306  * \name SDK版本(v1.3)支持的授权列表常量
307  */
308 ///@{
309
310 /** 发表一条说说到QQ空间(<b>需要申请权限</b>) */
311 FOUNDATION_EXTERN NSString *const kOPEN_PERMISSION_ADD_TOPIC;
312
313 /** 创建一个QQ空间相册(<b>需要申请权限</b>) */
314 FOUNDATION_EXTERN NSString *const kOPEN_PERMISSION_ADD_ALBUM;
315
316 /** 上传一张照片到QQ空间相册(<b>需要申请权限</b>) */
317 FOUNDATION_EXTERN NSString *const kOPEN_PERMISSION_UPLOAD_PIC;
318
319 /** 获取用户QQ空间相册列表(<b>需要申请权限</b>) */
320 FOUNDATION_EXTERN NSString *const kOPEN_PERMISSION_LIST_ALBUM;
321
322 /** 验证是否认证空间粉丝 */
323 FOUNDATION_EXTERN NSString *const kOPEN_PERMISSION_CHECK_PAGE_FANS;
324
325 /** 获取登录用户自己的详细信息 */
326 FOUNDATION_EXTERN NSString *const kOPEN_PERMISSION_GET_INFO;
327
328 /** 获取其他用户的详细信息 */
329 FOUNDATION_EXTERN NSString *const kOPEN_PERMISSION_GET_OTHER_INFO;
330
331 /** 获取会员用户基本信息 */
332 FOUNDATION_EXTERN NSString *const kOPEN_PERMISSION_GET_VIP_INFO;
333
334 /** 获取会员用户详细信息 */
335 FOUNDATION_EXTERN NSString *const kOPEN_PERMISSION_GET_VIP_RICH_INFO;
336
337 /** 获取用户信息 */
338 FOUNDATION_EXTERN NSString *const kOPEN_PERMISSION_GET_USER_INFO;
339
340 /** 移动端获取用户信息 */
341 FOUNDATION_EXTERN NSString *const kOPEN_PERMISSION_GET_SIMPLE_USER_INFO;
342 ///@}
343
344
345 /**
346  * \name CGI接口相关参数类型定义
347  */
348
349 /** 必填的字符串类型参数 */
350 typedef NSString *TCRequiredStr;
351
352 /** 必填的UIImage类型参数 */
353 typedef UIImage *TCRequiredImage;
354
355 /** 必填的整型参数 */
356 typedef NSInteger TCRequiredInt;
357
358 /** 必填的数字类型 */
359 typedef NSNumber *TCRequiredNumber;
360
361 /** 必填的NSData参数 */
362 typedef NSData *TCRequiredData;
363
364 /** 可选的字符串类型参数 */
365 typedef NSString *TCOptionalStr;
366
367 /** 可选的UIImage类型参数 */
368 typedef UIImage *TCOptionalImage;
369
370 /** 可选的整型参数 */
371 typedef NSInteger TCOptionalInt;
372
373 /** 可选的数字类型 */
374 typedef NSNumber *TCOptionalNumber;
375
376 /** 可选的不定类型参数 */
377 typedef id TCRequiredId;
378 ///@}
379
380
381 /**
382  * \brief CGI请求的参数字典封装辅助基类
383  *
384  * 将相应属性的值以key-value的形式保存到参数字典中
385  */
386 @interface TCAPIRequest : NSMutableDictionary
387
388 /** CGI请求的URL地址 */
389 @property (nonatomic, readonly) NSURL *apiURL;
390
391 /** CGI请求方式:"GET","POST" */
392 @property (nonatomic, readonly) NSString *method;
393
394 /**
395  * API参数中的保留字段,可以塞入任意字典支持的类型,再调用完成后会带回给调用方
396  */
397 @property (nonatomic, retain) TCRequiredId paramUserData;
398
399 /**
400  * APIResponse,API的返回结果
401  */
402 @property (nonatomic, readonly) APIResponse *response;
403
404 /** 取消相应的CGI请求任务 */
405 - (void)cancel;
406
407 @end
408
409 @protocol TCAPIRequestDelegate <NSObject>
410 @optional
411 - (void)cgiRequest:(TCAPIRequest *)request didResponse:(APIResponse *)response;
412
413 @end
414