QQApiInterfaceObject.h 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632
  1. ///
  2. /// \file QQApiInterfaceObject.h
  3. /// \brief QQApiInterface所依赖的请求及应答消息对象封装帮助类
  4. ///
  5. /// Created by Tencent on 12-5-15.
  6. /// Copyright (c) 2012年 Tencent. All rights reserved.
  7. ///
  8. #ifndef QQApiInterface_QQAPIOBJECT_h
  9. #define QQApiInterface_QQAPIOBJECT_h
  10. #import <Foundation/Foundation.h>
  11. typedef enum
  12. {
  13. EQQAPISENDSUCESS = 0,
  14. EQQAPIQQNOTINSTALLED = 1,
  15. EQQAPIQQNOTSUPPORTAPI = 2,
  16. EQQAPIMESSAGETYPEINVALID = 3,
  17. EQQAPIMESSAGECONTENTNULL = 4,
  18. EQQAPIMESSAGECONTENTINVALID = 5,
  19. EQQAPIAPPNOTREGISTED = 6,
  20. EQQAPIAPPSHAREASYNC = 7,
  21. EQQAPIQQNOTSUPPORTAPI_WITH_ERRORSHOW = 8,
  22. EQQAPISENDFAILD = -1,
  23. EQQAPISHAREDESTUNKNOWN = -2, //未指定分享到QQ或TIM
  24. EQQAPITIMNOTINSTALLED = 11, //TIM未安装
  25. EQQAPITIMNOTSUPPORTAPI = 12, // TIM api不支持
  26. //qzone分享不支持text类型分享
  27. EQQAPIQZONENOTSUPPORTTEXT = 10000,
  28. //qzone分享不支持image类型分享
  29. EQQAPIQZONENOTSUPPORTIMAGE = 10001,
  30. //当前QQ版本太低,需要更新至新版本才可以支持
  31. EQQAPIVERSIONNEEDUPDATE = 10002,
  32. ETIMAPIVERSIONNEEDUPDATE = 10004,
  33. } QQApiSendResultCode;
  34. #pragma mark - QQApiObject(分享对象类型)
  35. // QQApiObject control flags
  36. enum
  37. {
  38. kQQAPICtrlFlagQZoneShareOnStart = 0x01,
  39. kQQAPICtrlFlagQZoneShareForbid = 0x02,
  40. kQQAPICtrlFlagQQShare = 0x04,
  41. kQQAPICtrlFlagQQShareFavorites = 0x08, //收藏
  42. kQQAPICtrlFlagQQShareDataline = 0x10, //数据线
  43. };
  44. // 分享到QQ或TIM
  45. typedef enum ShareDestType {
  46. ShareDestTypeQQ,
  47. ShareDestTypeTIM,
  48. }ShareDestType;
  49. // QQApiObject
  50. /** \brief 所有在QQ及插件间发送的数据对象的根类。
  51. */
  52. __attribute__((visibility("default"))) @interface QQApiObject : NSObject
  53. @property(nonatomic,retain) NSString* title; ///< 标题,最长128个字符
  54. @property(nonatomic,retain) NSString* description; ///<简要描述,最长512个字符
  55. @property (nonatomic, assign) uint64_t cflag;
  56. @property (nonatomic, assign) ShareDestType shareDestType; //分享到QQ或TIM,必须指定
  57. @end
  58. // QQApiResultObject
  59. /** \brief 用于请求回应的数据类型。
  60. <h3>可能错误码及描述如下:</h3>
  61. <TABLE>
  62. <TR><TD>error</TD><TD>errorDescription</TD><TD>注释</TD></TR>
  63. <TR><TD>0</TD><TD>nil</TD><TD>成功</TD></TR>
  64. <TR><TD>-1</TD><TD>param error</TD><TD>参数错误</TD></TR>
  65. <TR><TD>-2</TD><TD>group code is invalid</TD><TD>该群不在自己的群列表里面</TD></TR>
  66. <TR><TD>-3</TD><TD>upload photo failed</TD><TD>上传图片失败</TD></TR>
  67. <TR><TD>-4</TD><TD>user give up the current operation</TD><TD>用户放弃当前操作</TD></TR>
  68. <TR><TD>-5</TD><TD>client internal error</TD><TD>客户端内部处理错误</TD></TR>
  69. </TABLE>
  70. */
  71. __attribute__((visibility("default"))) @interface QQApiResultObject : QQApiObject
  72. @property(nonatomic,retain) NSString* error; ///<错误
  73. @property(nonatomic,retain) NSString* errorDescription; ///<错误描述
  74. @property(nonatomic,retain) NSString* extendInfo; ///<扩展信息
  75. @end
  76. // QQApiTextObject
  77. /** \brief 文本对象
  78. */
  79. @interface QQApiTextObject : QQApiObject
  80. @property(nonatomic,retain)NSString* text; ///<文本内容,必填,最长1536个字符
  81. -(id)initWithText:(NSString*)text; ///<初始化方法
  82. +(id)objectWithText:(NSString*)text;///<工厂方法,获取一个QQApiTextObject对象.
  83. @end
  84. // QQApiURLObject
  85. typedef enum QQApiURLTargetType{
  86. QQApiURLTargetTypeNotSpecified = 0x00,
  87. QQApiURLTargetTypeAudio = 0x01,
  88. QQApiURLTargetTypeVideo = 0x02,
  89. QQApiURLTargetTypeNews = 0x03
  90. }QQApiURLTargetType;
  91. /** @brief URL对象类型。
  92. 包括URL地址,URL地址所指向的目标类型及预览图像。
  93. */
  94. __attribute__((visibility("default"))) @interface QQApiURLObject : QQApiObject
  95. /**
  96. URL地址所指向的目标类型.
  97. @note 参见QQApi.h 中的 QQApiURLTargetType 定义.
  98. */
  99. @property(nonatomic)QQApiURLTargetType targetContentType;
  100. @property(nonatomic,retain)NSURL* url; ///<URL地址,必填,最长512个字符
  101. @property(nonatomic,retain)NSData* previewImageData;///<预览图像数据,最大1M字节
  102. @property(nonatomic, retain) NSURL *previewImageURL; ///<预览图像URL **预览图像数据与预览图像URL可二选一
  103. /**
  104. 初始化方法
  105. */
  106. -(id)initWithURL:(NSURL*)url title:(NSString*)title description:(NSString*)description previewImageData:(NSData*)data targetContentType:(QQApiURLTargetType)targetContentType;
  107. -(id)initWithURL:(NSURL*)url title:(NSString*)title description:(NSString*)description previewImageURL:(NSURL*)previewURL targetContentType:(QQApiURLTargetType)targetContentType;
  108. /**
  109. 工厂方法,获取一个QQApiURLObject对象
  110. */
  111. +(id)objectWithURL:(NSURL*)url title:(NSString*)title description:(NSString*)description previewImageData:(NSData*)data targetContentType:(QQApiURLTargetType)targetContentType;
  112. +(id)objectWithURL:(NSURL*)url title:(NSString*)title description:(NSString*)description previewImageURL:(NSURL*)previewURL targetContentType:(QQApiURLTargetType)targetContentType;
  113. @end
  114. // QQApiExtendObject
  115. /** @brief 扩展数据类型
  116. */
  117. @interface QQApiExtendObject : QQApiObject
  118. @property(nonatomic,retain) NSData* data;///<具体数据内容,必填,最大5M字节
  119. @property(nonatomic,retain) NSData* previewImageData;///<预览图像,最大1M字节
  120. @property(nonatomic,retain) NSArray* imageDataArray;///图片数组(多图暂只支持分享到手机QQ收藏功能)
  121. /**
  122. 初始化方法
  123. @param data 数据内容
  124. @param previewImageData 用于预览的图片
  125. @param title 标题
  126. @param description 此对象,分享的描述
  127. */
  128. - (id)initWithData:(NSData*)data previewImageData:(NSData*)previewImageData title:(NSString*)title description:(NSString*)description;
  129. /**
  130. 初始化方法
  131. @param data 数据内容
  132. @param title 标题
  133. @param description 此对象,分享的描述
  134. @param imageDataArray 发送的多张图片队列
  135. */
  136. - (id)initWithData:(NSData *)data previewImageData:(NSData*)previewImageData title:(NSString *)title description:(NSString *)description imageDataArray:(NSArray *)imageDataArray;
  137. /**
  138. helper方法获取一个autorelease的<code>QQApiExtendObject</code>对象
  139. @param data 数据内容
  140. @param previewImageData 用于预览的图片
  141. @param title 标题
  142. @param description 此对象,分享的描述
  143. @return
  144. 一个自动释放的<code>QQApiExtendObject</code>实例
  145. */
  146. + (id)objectWithData:(NSData*)data previewImageData:(NSData*)previewImageData title:(NSString*)title description:(NSString*)description;
  147. /**
  148. helper方法获取一个autorelease的<code>QQApiExtendObject</code>对象
  149. @param data 数据内容
  150. @param previewImageData 用于预览的图片
  151. @param title 标题
  152. @param description 此对象,分享的描述
  153. @param imageDataArray 发送的多张图片队列
  154. @return
  155. 一个自动释放的<code>QQApiExtendObject</code>实例
  156. */
  157. + (id)objectWithData:(NSData*)data previewImageData:(NSData*)previewImageData title:(NSString*)title description:(NSString*)description imageDataArray:(NSArray*)imageDataArray;
  158. @end
  159. // QQApiImageObject
  160. /** @brief 图片对象
  161. 用于分享图片内容的对象,是一个指定为图片类型的<code>QQApiExtendObject</code>
  162. */
  163. @interface QQApiImageObject : QQApiExtendObject
  164. @end
  165. // QQApiImageArrayForQZoneObject
  166. /** @brief 图片对象
  167. 用于分享图片到空间,走写说说路径,是一个指定为图片类型的,当图片数组为空时,默认走文本写说说<code>QQApiObject</code>
  168. */
  169. @interface QQApiImageArrayForQZoneObject : QQApiObject
  170. @property(nonatomic,retain) NSArray* imageDataArray;///图片数组
  171. @property(nonatomic,retain) NSDictionary* extMap; // 扩展字段
  172. /**
  173. 初始化方法
  174. @param imageDataArray 图片数组
  175. @param title 写说说的内容,可以为空
  176. @param extMap 扩展字段
  177. */
  178. - (id)initWithImageArrayData:(NSArray*)imageDataArray title:(NSString*)title extMap:(NSDictionary *)extMap;
  179. /**
  180. helper方法获取一个autorelease的<code>QQApiExtendObject</code>对象
  181. @param title 写说说的内容,可以为空
  182. @param imageDataArray 发送的多张图片队列
  183. @param extMap 扩展字段
  184. @return
  185. 一个自动释放的<code>QQApiExtendObject</code>实例
  186. */
  187. + (id)objectWithimageDataArray:(NSArray*)imageDataArray title:(NSString*)title extMap:(NSDictionary *)extMap;
  188. @end
  189. // QQApiVideoForQZoneObject
  190. /** @brief 视频对象
  191. 用于分享视频到空间,走写说说路径<code>QQApiObject</code>
  192. assetURL可传ALAsset的ALAssetPropertyAssetURL,或者PHAsset的localIdentifier
  193. @param extMap 扩展字段
  194. */
  195. @interface QQApiVideoForQZoneObject : QQApiObject
  196. @property(nonatomic, retain) NSString *assetURL;
  197. @property(nonatomic,retain) NSDictionary* extMap; // 扩展字段
  198. - (id)initWithAssetURL:(NSString*)assetURL title:(NSString*)title extMap:(NSDictionary *)extMap;
  199. + (id)objectWithAssetURL:(NSString*)assetURL title:(NSString*)title extMap:(NSDictionary *)extMap;
  200. @end
  201. // QQApiWebImageObject
  202. /** @brief 图片对象
  203. 用于分享网络图片内容的对象,是一个指定网络图片url的: 该类型只在2.9.0的h5分享中才支持,
  204. 原有的手q分享是不支持该类型的。
  205. */
  206. @interface QQApiWebImageObject : QQApiObject
  207. @property(nonatomic, retain) NSURL *previewImageURL; ///<预览图像URL
  208. /**
  209. 初始化方法
  210. @param previewImageURL 用于预览的图片
  211. @param title 标题
  212. @param description 此对象,分享的描述
  213. */
  214. - (id)initWithPreviewImageURL:(NSURL*)previewImageURL title:(NSString*)title description:(NSString*)description;
  215. /**
  216. helper方法获取一个autorelease的<code>QQApiWebImageObject</code>对象
  217. @param previewImageURL 用于预览的图片
  218. @param title 标题
  219. @param description 此对象,分享的描述
  220. */
  221. + (id)objectWithPreviewImageURL:(NSURL*)previewImageURL title:(NSString*)title description:(NSString*)description;
  222. @end
  223. // QQApiGroupTribeImageObject
  224. /** @brief 群部落图片对象
  225. 用于分享图片内容的对象,是一个指定为图片类型的 可以指定一些其他的附加数据<code>QQApiExtendObject</code>
  226. */
  227. @interface QQApiGroupTribeImageObject : QQApiImageObject
  228. {
  229. NSString *_bid;
  230. NSString *_bname;
  231. }
  232. // 群部落id
  233. @property (nonatomic, retain)NSString* bid;
  234. // 群部落名称
  235. @property (nonatomic, retain)NSString* bname;
  236. @end
  237. //QQApiFileObject
  238. /** @brief 本地文件对象(暂只支持分享到手机QQ数据线功能)
  239. 用于分享文件内容的对象,是一个指定为文件类型的<code>QQApiExtendObject</code>
  240. */
  241. @interface QQApiFileObject : QQApiExtendObject
  242. {
  243. NSString* _fileName;
  244. }
  245. @property(nonatomic, retain)NSString* fileName;
  246. @end
  247. // QQApiAudioObject
  248. /** @brief 音频URL对象
  249. 用于分享目标内容为音频的URL的对象
  250. */
  251. @interface QQApiAudioObject : QQApiURLObject
  252. @property (nonatomic, retain) NSURL *flashURL; ///<音频URL地址,最长512个字符
  253. /**
  254. 获取一个autorelease的<code>QQApiAudioObject</code>
  255. @param url 音频内容的目标URL
  256. @param title 分享内容的标题
  257. @param description 分享内容的描述
  258. @param data 分享内容的预览图像
  259. @note 如果url为空,调用<code>QQApi#sendMessage:</code>时将返回FALSE
  260. */
  261. +(id)objectWithURL:(NSURL*)url title:(NSString*)title description:(NSString*)description previewImageData:(NSData*)data;
  262. /**
  263. 获取一个autorelease的<code>QQApiAudioObject</code>
  264. @param url 音频内容的目标URL
  265. @param title 分享内容的标题
  266. @param description 分享内容的描述
  267. @param previewURL 分享内容的预览图像URL
  268. @note 如果url为空,调用<code>QQApi#sendMessage:</code>时将返回FALSE
  269. */
  270. +(id)objectWithURL:(NSURL*)url title:(NSString*)title description:(NSString*)description previewImageURL:(NSURL*)previewURL;
  271. @end
  272. // QQApiVideoObject
  273. /** @brief 视频URL对象
  274. 用于分享目标内容为视频的URL的对象
  275. QQApiVideoObject类型的分享,目前在Android和PC QQ上接收消息时,展现有待完善,待手机QQ版本以后更新支持
  276. 目前如果要分享视频,推荐使用 QQApiNewsObject 类型
  277. */
  278. @interface QQApiVideoObject : QQApiURLObject
  279. @property (nonatomic, retain) NSURL *flashURL; ///<视频URL地址,最长512个字符
  280. /**
  281. 获取一个autorelease的<code>QQApiVideoObject</code>
  282. @param url 视频内容的目标URL
  283. @param title 分享内容的标题
  284. @param description 分享内容的描述
  285. @param data 分享内容的预览图像
  286. @note 如果url为空,调用<code>QQApi#sendMessage:</code>时将返回FALSE
  287. */
  288. +(id)objectWithURL:(NSURL*)url title:(NSString*)title description:(NSString*)description previewImageData:(NSData*)data;
  289. /**
  290. 获取一个autorelease的<code>QQApiVideoObject</code>
  291. @param url 视频内容的目标URL
  292. @param title 分享内容的标题
  293. @param description 分享内容的描述
  294. @param previewURL 分享内容的预览图像URL
  295. @note 如果url为空,调用<code>QQApi#sendMessage:</code>时将返回FALSE
  296. */
  297. +(id)objectWithURL:(NSURL*)url title:(NSString*)title description:(NSString*)description previewImageURL:(NSURL*)previewURL;
  298. @end
  299. // QQApiNewsObject
  300. /** @brief 新闻URL对象
  301. 用于分享目标内容为新闻的URL的对象
  302. */
  303. @interface QQApiNewsObject : QQApiURLObject
  304. /**
  305. 获取一个autorelease的<code>QQApiNewsObject</code>
  306. @param url 视频内容的目标URL
  307. @param title 分享内容的标题
  308. @param description 分享内容的描述
  309. @param data 分享内容的预览图像
  310. @note 如果url为空,调用<code>QQApi#sendMessage:</code>时将返回FALSE
  311. */
  312. +(id)objectWithURL:(NSURL*)url title:(NSString*)title description:(NSString*)description previewImageData:(NSData*)data;
  313. /**
  314. 获取一个autorelease的<code>QQApiNewsObject</code>
  315. @param url 视频内容的目标URL
  316. @param title 分享内容的标题
  317. @param description 分享内容的描述
  318. @param previewURL 分享内容的预览图像URL
  319. @note 如果url为空,调用<code>QQApi#sendMessage:</code>时将返回FALSE
  320. */
  321. +(id)objectWithURL:(NSURL*)url title:(NSString*)title description:(NSString*)description previewImageURL:(NSURL*)previewURL;
  322. @end
  323. // QQApiPayObject
  324. /** \brief 支付对象
  325. */
  326. @interface QQApiPayObject : QQApiObject
  327. @property(nonatomic,retain)NSString* OrderNo; ///<支付订单号,必填
  328. @property(nonatomic,retain)NSString* AppInfo; ///<支付来源信息,必填
  329. -(id)initWithOrderNo:(NSString*)OrderNo AppInfo:(NSString*)AppInfo; ///<初始化方法
  330. +(id)objectWithOrderNo:(NSString*)OrderNo AppInfo:(NSString*)AppInfo;///<工厂方法,获取一个QQApiPayObject对象.
  331. @end
  332. // QQApiCommonContentObject;
  333. /** @brief 通用模板类型对象
  334. 用于分享一个固定显示模板的图文混排对象
  335. @note 图片列表和文本列表不能同时为空
  336. */
  337. @interface QQApiCommonContentObject : QQApiObject
  338. /**
  339. 预定义的界面布局类型
  340. */
  341. @property(nonatomic,assign) unsigned int layoutType;
  342. @property(nonatomic,assign) NSData* previewImageData;///<预览图
  343. @property(nonatomic,retain) NSArray* textArray;///<文本列表
  344. @property(nonatomic,retain) NSArray* pictureDataArray;///<图片列表
  345. +(id)objectWithLayoutType:(int)layoutType textArray:(NSArray*)textArray pictureArray:(NSArray*)pictureArray previewImageData:(NSData*)data;
  346. /**
  347. 将一个NSDictionary对象转化为QQApiCommomContentObject,如果无法转换,则返回空
  348. */
  349. +(id)objectWithDictionary:(NSDictionary*)dic;
  350. -(NSDictionary*)toDictionary;
  351. @end
  352. ////////////////////////////////////////////////////////////////////////////////////////////////////////////
  353. // Ad item object definition
  354. ////////////////////////////////////////////////////////////////////////////////////////////////////////////
  355. /** @brief 广告数据对象
  356. */
  357. @interface QQApiAdItem : NSObject
  358. @property(nonatomic,retain) NSString* title; ///<名称
  359. @property(nonatomic,retain) NSString* description;///<描述
  360. @property(nonatomic,retain) NSData* imageData;///<广告图片
  361. @property(nonatomic,retain) NSURL* target;///<广告目标链接
  362. @end
  363. // QQApiWPAObject
  364. /** \brief 发起WPA对象
  365. */
  366. @interface QQApiWPAObject : QQApiObject
  367. @property(nonatomic,retain)NSString* uin; ///<想要对话的QQ号
  368. -(id)initWithUin:(NSString*)uin; ///<初始化方法
  369. +(id)objectWithUin:(NSString*)uin;///<工厂方法,获取一个QQApiWPAObject对象.
  370. @end
  371. // QQApiAddFriendObject
  372. /** \brief 添加好友
  373. */
  374. @interface QQApiAddFriendObject : QQApiObject
  375. @property (nonatomic,retain)NSString* openID;
  376. @property (nonatomic,retain)NSString* subID;
  377. @property (nonatomic,retain)NSString* remark;
  378. -(id)initWithOpenID:(NSString*)openID; ///<初始化方法
  379. +(id)objecWithOpenID:(NSString*)openID; ///<工厂方法,获取一个QQApiAddFriendObject对象.
  380. @end
  381. // QQApiGameConsortiumBindingGroupObject
  382. /** \brief 游戏公会绑定群
  383. */
  384. @interface QQApiGameConsortiumBindingGroupObject : QQApiObject
  385. @property (nonatomic,retain)NSString* signature;
  386. @property (nonatomic,retain)NSString* unionid;
  387. @property (nonatomic,retain)NSString* zoneID;
  388. @property (nonatomic,retain)NSString* appDisplayName;
  389. -(id)initWithGameConsortium:(NSString*)signature unionid:(NSString*)unionid zoneID:(NSString*)zoneID appDisplayName:(NSString*)appDisplayName; ///<初始化方法
  390. +(id)objectWithGameConsortium:(NSString*)signature unionid:(NSString*)unionid zoneID:(NSString*)zoneID appDisplayName:(NSString*)appDisplayName; ///<工厂方法,获取一个QQApiAddFriendObject对象.
  391. @end
  392. // QQApiGameConsortiumBindingGroupObject
  393. /** \brief 加入群
  394. */
  395. @interface QQApiJoinGroupObject : QQApiObject
  396. @property (nonatomic,retain)NSString* groupUin;
  397. @property (nonatomic,retain)NSString* groupKey;
  398. - (id)initWithGroupInfo:(NSString*)groupUin key:(NSString*)groupKey; ///<初始化方法
  399. + (id)objectWithGroupInfo:(NSString*)groupUin key:(NSString*)groupKey; ///<同时提供群号和群KEY 工厂方法,获取一个QQApiAddFriendObject对象.
  400. + (id)objectWithGroupKey:(NSString*)groupKey; ///<只需要群的KEY 工厂方法,获取一个QQApiAddFriendObject对象.
  401. @end
  402. // QQApiGroupChatObject
  403. /** \brief 发起群会话对象
  404. */
  405. @interface QQApiGroupChatObject : QQApiObject
  406. @property(nonatomic,retain)NSString* groupID; ///<想要对话的群号
  407. -(id)initWithGroup:(NSString*)groupID; ///<初始化方法
  408. +(id)objectWithGroup:(NSString*)groupID;///<工厂方法,获取一个QQApiGroupChatObject对象.
  409. @end
  410. #pragma mark - QQApi请求消息类型
  411. /**
  412. QQApi请求消息类型
  413. */
  414. enum QQApiInterfaceReqType
  415. {
  416. EGETMESSAGEFROMQQREQTYPE = 0, ///< 手Q -> 第三方应用,请求第三方应用向手Q发送消息
  417. ESENDMESSAGETOQQREQTYPE = 1, ///< 第三方应用 -> 手Q,第三方应用向手Q分享消息
  418. ESHOWMESSAGEFROMQQREQTYPE = 2 ///< 手Q -> 第三方应用,请求第三方应用展现消息中的数据
  419. };
  420. /**
  421. QQApi应答消息类型
  422. */
  423. enum QQApiInterfaceRespType
  424. {
  425. ESHOWMESSAGEFROMQQRESPTYPE = 0, ///< 第三方应用 -> 手Q,第三方应用应答消息展现结果
  426. EGETMESSAGEFROMQQRESPTYPE = 1, ///< 第三方应用 -> 手Q,第三方应用回应发往手Q的消息
  427. ESENDMESSAGETOQQRESPTYPE = 2 ///< 手Q -> 第三方应用,手Q应答处理分享消息的结果
  428. };
  429. /**
  430. QQApi请求消息基类
  431. */
  432. @interface QQBaseReq : NSObject
  433. /** 请求消息类型,参见\ref QQApiInterfaceReqType */
  434. @property (nonatomic, assign) int type;
  435. @end
  436. /**
  437. QQApi应答消息基类
  438. */
  439. @interface QQBaseResp : NSObject
  440. /** 请求处理结果 */
  441. @property (nonatomic, copy) NSString* result;
  442. /** 具体错误描述信息 */
  443. @property (nonatomic, copy) NSString* errorDescription;
  444. /** 应答消息类型,参见\ref QQApiInterfaceRespType */
  445. @property (nonatomic, assign) int type;
  446. /** 扩展信息 */
  447. @property (nonatomic, assign) NSString* extendInfo;
  448. @end
  449. /**
  450. GetMessageFromQQReq请求帮助类
  451. */
  452. @interface GetMessageFromQQReq : QQBaseReq
  453. /**
  454. 创建一个GetMessageFromQQReq请求实例
  455. */
  456. + (GetMessageFromQQReq *)req;
  457. @end
  458. /**
  459. GetMessageFromQQResp应答帮助类
  460. */
  461. @interface GetMessageFromQQResp : QQBaseResp
  462. /**
  463. 创建一个GetMessageFromQQResp应答实例
  464. \param message 具体分享消息实例
  465. \return 新创建的GetMessageFromQQResp应答实例
  466. */
  467. + (GetMessageFromQQResp *)respWithContent:(QQApiObject *)message;
  468. /** 具体分享消息 */
  469. @property (nonatomic, retain) QQApiObject *message;
  470. @end
  471. /**
  472. SendMessageToQQReq请求帮助类
  473. */
  474. @interface SendMessageToQQReq : QQBaseReq
  475. /**
  476. 创建一个SendMessageToQQReq请求实例
  477. \param message 具体分享消息实例
  478. \return 新创建的SendMessageToQQReq请求实例
  479. */
  480. + (SendMessageToQQReq *)reqWithContent:(QQApiObject *)message;
  481. /** 具体分享消息 */
  482. @property (nonatomic, retain) QQApiObject *message;
  483. @end
  484. /**
  485. SendMessageToQQResp应答帮助类
  486. */
  487. @interface SendMessageToQQResp : QQBaseResp
  488. /**
  489. 创建一个SendMessageToQQResp应答实例
  490. \param result 请求处理结果
  491. \param errDesp 具体错误描述信息
  492. \param extendInfo 扩展信息
  493. \return 新创建的SendMessageToQQResp应答实例
  494. */
  495. + (SendMessageToQQResp *)respWithResult:(NSString *)result errorDescription:(NSString *)errDesp extendInfo:(NSString*)extendInfo;
  496. @end
  497. /**
  498. ShowMessageFromQQReq请求帮助类
  499. */
  500. @interface ShowMessageFromQQReq : QQBaseReq
  501. /**
  502. 创建一个ShowMessageFromQQReq请求实例
  503. \param message 具体待展现消息实例
  504. \return 新创建的ShowMessageFromQQReq请求实例
  505. */
  506. + (ShowMessageFromQQReq *)reqWithContent:(QQApiObject *)message;
  507. /** 具体待展现消息 */
  508. @property (nonatomic, retain) QQApiObject *message;
  509. @end
  510. /**
  511. ShowMessageFromQQResp应答帮助类
  512. */
  513. @interface ShowMessageFromQQResp : QQBaseResp
  514. /**
  515. 创建一个ShowMessageFromQQResp应答实例
  516. \param result 展现消息结果
  517. \param errDesp 具体错误描述信息
  518. \return 新创建的ShowMessageFromQQResp应答实例
  519. */
  520. + (ShowMessageFromQQResp *)respWithResult:(NSString *)result errorDescription:(NSString *)errDesp;
  521. @end
  522. #endif