SDKDef.h 11 KB

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