Sin descripción

WeiboSDK.h 21KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786
  1. //
  2. // WeiboSDKHeaders.h
  3. // WeiboSDKDemo
  4. //
  5. // Created by Wade Cheng on 4/3/13.
  6. // Copyright (c) 2013 SINA iOS Team. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. #import <UIKit/UIKit.h>
  10. #import "WBHttpRequest.h"
  11. #import "WBHttpRequest+WeiboUser.h"
  12. #import "WBHttpRequest+WeiboShare.h"
  13. #import "WBHttpRequest+WeiboToken.h"
  14. #import "WBHttpRequest+WeiboGame.h"
  15. #import "WBSDKRelationshipButton.h"
  16. #import "WBSDKCommentButton.h"
  17. typedef NS_ENUM(NSInteger, WeiboSDKResponseStatusCode)
  18. {
  19. WeiboSDKResponseStatusCodeSuccess = 0,//成功
  20. WeiboSDKResponseStatusCodeUserCancel = -1,//用户取消发送
  21. WeiboSDKResponseStatusCodeSentFail = -2,//发送失败
  22. WeiboSDKResponseStatusCodeAuthDeny = -3,//授权失败
  23. WeiboSDKResponseStatusCodeUserCancelInstall = -4,//用户取消安装微博客户端
  24. WeiboSDKResponseStatusCodePayFail = -5,//支付失败
  25. WeiboSDKResponseStatusCodeShareInSDKFailed = -8,//分享失败 详情见response UserInfo
  26. WeiboSDKResponseStatusCodeUnsupport = -99,//不支持的请求
  27. WeiboSDKResponseStatusCodeUnknown = -100,
  28. };
  29. @protocol WeiboSDKDelegate;
  30. @protocol WBHttpRequestDelegate;
  31. @class WBBaseRequest;
  32. @class WBBaseResponse;
  33. @class WBMessageObject;
  34. @class WBImageObject;
  35. @class WBBaseMediaObject;
  36. @class WBHttpRequest;
  37. @class WBOrderObject;
  38. /**
  39. 微博SDK接口类
  40. */
  41. @interface WeiboSDK : NSObject
  42. /**
  43. 检查用户是否安装了微博客户端程序
  44. @return 已安装返回YES,未安装返回NO
  45. */
  46. + (BOOL)isWeiboAppInstalled;
  47. /**
  48. 检查用户是否可以通过微博客户端进行分享
  49. @return 可以使用返回YES,不可以使用返回NO
  50. */
  51. + (BOOL)isCanShareInWeiboAPP;
  52. /**
  53. 检查用户是否可以使用微博客户端进行SSO授权
  54. @return 可以使用返回YES,不可以使用返回NO
  55. */
  56. + (BOOL)isCanSSOInWeiboApp;
  57. /**
  58. 打开微博客户端程序
  59. @return 成功打开返回YES,失败返回NO
  60. */
  61. + (BOOL)openWeiboApp;
  62. /**
  63. 获取微博客户端程序的itunes安装地址
  64. @return 微博客户端程序的itunes安装地址
  65. */
  66. + (NSString *)getWeiboAppInstallUrl;
  67. /**
  68. 获取当前微博客户端程序所支持的SDK最高版本
  69. @return 当前微博客户端程序所支持的SDK最高版本号,返回 nil 表示未安装微博客户端
  70. */
  71. + (NSString *)getWeiboAppSupportMaxSDKVersion __attribute__((deprecated));
  72. /**
  73. 获取当前微博SDK的版本号
  74. @return 当前微博SDK的版本号
  75. */
  76. + (NSString *)getSDKVersion;
  77. extern NSString * const WeiboSDKGetAidSucessNotification;
  78. extern NSString * const WeiboSDKGetAidFailNotification;
  79. /**
  80. 获取当前微博SDK的aid
  81. 返回的aid值可能为 nil ,当值为 nil 时会尝试获取 aid 值。
  82. 当获取成功( aid 值变为有效值)时,SDK会发出名为 WeiboSDKGetAidSucessNotification 的通知,通知中带有 aid 值。
  83. 当获取失败时,SDK会发出名为 WeiboSDKGetAidFailNotification 的通知,通知中带有 NSError 对象。
  84. @return aid 用于广告的与设备信息相关的标识符
  85. */
  86. + (NSString *)getWeiboAid;
  87. /**
  88. 向微博客户端程序注册第三方应用
  89. @param appKey 微博开放平台第三方应用appKey
  90. @return 注册成功返回YES,失败返回NO
  91. */
  92. + (BOOL)registerApp:(NSString *)appKey;
  93. /**
  94. 处理微博客户端程序通过URL启动第三方应用时传递的数据
  95. 需要在 application:openURL:sourceApplication:annotation:或者application:handleOpenURL中调用
  96. @param url 启动第三方应用的URL
  97. @param delegate WeiboSDKDelegate对象,用于接收微博触发的消息
  98. @see WeiboSDKDelegate
  99. */
  100. + (BOOL)handleOpenURL:(NSURL *)url delegate:(id<WeiboSDKDelegate>)delegate;
  101. /**
  102. 发送请求给微博客户端程序,并切换到微博
  103. 请求发送给微博客户端程序之后,微博客户端程序会进行相关的处理,处理完成之后一定会调用 [WeiboSDKDelegate didReceiveWeiboResponse:] 方法将处理结果返回给第三方应用
  104. @param request 具体的发送请求
  105. @see [WeiboSDKDelegate didReceiveWeiboResponse:]
  106. @see WBBaseResponse
  107. */
  108. + (BOOL)sendRequest:(WBBaseRequest *)request;
  109. /**
  110. 收到微博客户端程序的请求后,发送对应的应答给微博客户端端程序,并切换到微博
  111. 第三方应用收到微博的请求后,异步处理该请求,完成后必须调用该函数将应答返回给微博
  112. @param response 具体的应答内容
  113. @see WBBaseRequest
  114. */
  115. + (BOOL)sendResponse:(WBBaseResponse *)response;
  116. /**
  117. 设置WeiboSDK的调试模式
  118. 当开启调试模式时,WeiboSDK会在控制台输出详细的日志信息,开发者可以据此调试自己的程序。默认为 NO
  119. @param enabled 开启或关闭WeiboSDK的调试模式
  120. */
  121. + (void)enableDebugMode:(BOOL)enabled;
  122. /**
  123. 取消授权,登出接口
  124. 调用此接口后,token将失效
  125. @param token 第三方应用之前申请的Token
  126. @param delegate WBHttpRequestDelegate对象,用于接收微博SDK对于发起的接口请求的请求的响应
  127. @param tag 用户自定义TAG,将通过回调WBHttpRequest实例的tag属性返回
  128. */
  129. + (void)logOutWithToken:(NSString *)token delegate:(id<WBHttpRequestDelegate>)delegate withTag:(NSString*)tag;
  130. /**
  131. 邀请好友使用应用
  132. 调用此接口后,将发送私信至好友,成功将返回微博标准私信结构
  133. @param data 邀请数据。必须为json字串的形式,必须做URLEncode,采用UTF-8编码。
  134. data参数支持的参数:
  135. 参数名称 值的类型 是否必填 说明描述
  136. text string true 要回复的私信文本内容。文本大小必须小于300个汉字。
  137. url string false 邀请点击后跳转链接。默认为当前应用地址。
  138. invite_logo string false 邀请Card展示时的图标地址,大小必须为80px X 80px,仅支持PNG、JPG格式。默认为当前应用logo地址。
  139. @param uid 被邀请人,需为当前用户互粉好友。
  140. @param access_token 第三方应用之前申请的Token
  141. @param delegate WBHttpRequestDelegate对象,用于接收微博SDK对于发起的接口请求的请求的响应
  142. @param tag 用户自定义TAG,将通过回调WBHttpRequest实例的tag属性返回
  143. */
  144. + (void)inviteFriend:(NSString* )data withUid:(NSString *)uid withToken:(NSString *)access_token delegate:(id<WBHttpRequestDelegate>)delegate withTag:(NSString*)tag;
  145. /*
  146. 第三方调用微博短信注册或者登陆
  147. @param navTitle 为登陆页navigationBar的title,如果为空的话,默认为“验证码登陆”
  148. */
  149. + (void)messageRegister:(NSString *)navTitle;
  150. @end
  151. /**
  152. 接收并处理来至微博客户端程序的事件消息
  153. */
  154. @protocol WeiboSDKDelegate <NSObject>
  155. /**
  156. 收到一个来自微博客户端程序的请求
  157. 收到微博的请求后,第三方应用应该按照请求类型进行处理,处理完后必须通过 [WeiboSDK sendResponse:] 将结果回传给微博
  158. @param request 具体的请求对象
  159. */
  160. - (void)didReceiveWeiboRequest:(WBBaseRequest *)request;
  161. /**
  162. 收到一个来自微博客户端程序的响应
  163. 收到微博的响应后,第三方应用可以通过响应类型、响应的数据和 WBBaseResponse.userInfo 中的数据完成自己的功能
  164. @param response 具体的响应对象
  165. */
  166. - (void)didReceiveWeiboResponse:(WBBaseResponse *)response;
  167. @end
  168. #pragma mark - DataTransferObject and Base Request/Response
  169. /**
  170. 微博客户端程序和第三方应用之间传输数据信息的基类
  171. */
  172. @interface WBDataTransferObject : NSObject
  173. /**
  174. 自定义信息字典,用于数据传输过程中存储相关的上下文环境数据
  175. 第三方应用给微博客户端程序发送 request 时,可以在 userInfo 中存储请求相关的信息。
  176. @warning userInfo中的数据必须是实现了 `NSCoding` 协议的对象,必须保证能序列化和反序列化
  177. @warning 序列化后的数据不能大于10M
  178. */
  179. @property (nonatomic, strong) NSDictionary *userInfo;
  180. /**
  181. 发送该数据对象的SDK版本号
  182. 如果数据对象是自己生成的,则sdkVersion为当前SDK的版本号;如果是接收到的数据对象,则sdkVersion为数据发送方SDK版本号
  183. */
  184. @property (strong, nonatomic, readonly) NSString *sdkVersion;
  185. /**
  186. 当用户没有安装微博客户端程序时是否提示用户打开微博安装页面
  187. 如果设置为YES,当用户未安装微博时会弹出Alert询问用户是否要打开微博App的安装页面。默认为YES
  188. */
  189. @property (nonatomic, assign) BOOL shouldOpenWeiboAppInstallPageIfNotInstalled;
  190. @end
  191. /**
  192. 微博SDK所有请求类的基类
  193. */
  194. @interface WBBaseRequest : WBDataTransferObject
  195. /**
  196. 返回一个 WBBaseRequest 对象
  197. @return 返回一个*自动释放的*WBBaseRequest对象
  198. */
  199. + (id)request;
  200. @end
  201. /**
  202. 微博SDK所有响应类的基类
  203. */
  204. @interface WBBaseResponse : WBDataTransferObject
  205. /**
  206. 对应的 request 中的自定义信息字典
  207. 如果当前 response 是由微博客户端响应给第三方应用的,则 requestUserInfo 中会包含原 request.userInfo 中的所有数据
  208. @see WBBaseRequest.userInfo
  209. */
  210. @property (strong, nonatomic, readonly) NSDictionary *requestUserInfo;
  211. /**
  212. 响应状态码
  213. 第三方应用可以通过statusCode判断请求的处理结果
  214. */
  215. @property (nonatomic, assign) WeiboSDKResponseStatusCode statusCode;
  216. /**
  217. 返回一个 WBBaseResponse 对象
  218. @return 返回一个*自动释放的*WBBaseResponse对象
  219. */
  220. + (id)response;
  221. @end
  222. #pragma mark - Authorize Request/Response
  223. /**
  224. 第三方应用向微博客户端请求认证的消息结构
  225. 第三方应用向微博客户端申请认证时,需要调用 [WeiboSDK sendRequest:] 函数, 向微博客户端发送一个 WBAuthorizeRequest 的消息结构。
  226. 微博客户端处理完后会向第三方应用发送一个结构为 WBAuthorizeResponse 的处理结果。
  227. */
  228. @interface WBAuthorizeRequest : WBBaseRequest
  229. /**
  230. 微博开放平台第三方应用授权回调页地址,默认为`http://`
  231. 参考 http://open.weibo.com/wiki/%E6%8E%88%E6%9D%83%E6%9C%BA%E5%88%B6%E8%AF%B4%E6%98%8E#.E5.AE.A2.E6.88.B7.E7.AB.AF.E9.BB.98.E8.AE.A4.E5.9B.9E.E8.B0.83.E9.A1.B5
  232. @warning 必须保证和在微博开放平台应用管理界面配置的“授权回调页”地址一致,如未进行配置则默认为`http://`
  233. @warning 不能为空,长度小于1K
  234. */
  235. @property (nonatomic, strong) NSString *redirectURI;
  236. /**
  237. 微博开放平台第三方应用scope,多个scrope用逗号分隔
  238. 参考 http://open.weibo.com/wiki/%E6%8E%88%E6%9D%83%E6%9C%BA%E5%88%B6%E8%AF%B4%E6%98%8E#scope
  239. @warning 长度小于1K
  240. */
  241. @property (nonatomic, strong) NSString *scope;
  242. /**
  243. 当用户没有安装微博客户端或微博客户端过低无法支持SSO的时候是否弹出SDK自带的Webview进行授权
  244. 如果设置为YES,当用户没有安装微博客户端或微博客户端过低无法支持SSO的时候会自动弹出SDK自带的Webview进行授权。
  245. 如果设置为NO,会根据 shouldOpenWeiboAppInstallPageIfNotInstalled 属性判断是否弹出安装/更新微博的对话框
  246. 默认为YES
  247. */
  248. @property (nonatomic, assign) BOOL shouldShowWebViewForAuthIfCannotSSO;
  249. @end
  250. /**
  251. 微博客户端处理完第三方应用的认证申请后向第三方应用回送的处理结果
  252. WBAuthorizeResponse 结构中仅包含常用的 userID 、accessToken 和 expirationDate 信息,其他的认证信息(比如部分应用可以获取的 refresh_token 信息)会统一存放到 userInfo 中
  253. */
  254. @interface WBAuthorizeResponse : WBBaseResponse
  255. /**
  256. 用户ID
  257. */
  258. @property (nonatomic, strong) NSString *userID;
  259. /**
  260. 认证口令
  261. */
  262. @property (nonatomic, strong) NSString *accessToken;
  263. /**
  264. 认证过期时间
  265. */
  266. @property (nonatomic, strong) NSDate *expirationDate;
  267. /**
  268. 当认证口令过期时用于换取认证口令的更新口令
  269. */
  270. @property (nonatomic, strong) NSString *refreshToken;
  271. @end
  272. #pragma mark - ProvideMessageForWeibo Request/Response
  273. /**
  274. 微博客户端向第三方程序请求提供内容的消息结构
  275. */
  276. @interface WBProvideMessageForWeiboRequest : WBBaseRequest
  277. @end
  278. /**
  279. 微博客户端向第三方应用请求提供内容,第三方应用向微博客户端返回的消息结构
  280. */
  281. @interface WBProvideMessageForWeiboResponse : WBBaseResponse
  282. /**
  283. 提供给微博客户端的消息
  284. */
  285. @property (nonatomic, strong) WBMessageObject *message;
  286. /**
  287. 返回一个 WBProvideMessageForWeiboResponse 对象
  288. @param message 需要回送给微博客户端程序的消息对象
  289. @return 返回一个*自动释放的*WBProvideMessageForWeiboResponse对象
  290. */
  291. + (id)responseWithMessage:(WBMessageObject *)message;
  292. @end
  293. #pragma mark - SendMessageToWeibo Request/Response
  294. /**
  295. 第三方应用发送消息至微博客户端程序的消息结构体
  296. */
  297. @interface WBSendMessageToWeiboRequest : WBBaseRequest
  298. /**
  299. 发送给微博客户端的消息
  300. */
  301. @property (nonatomic, strong) WBMessageObject *message;
  302. /**
  303. 返回一个 WBSendMessageToWeiboRequest 对象
  304. 此方法生成对象被[WeiboSDK sendRequest:]会唤起微博客户端的发布器进行分享,如果未安装微博客户端或客户端版本太低
  305. 会根据 shouldOpenWeiboAppInstallPageIfNotInstalled 属性判断是否弹出安装/更新微博的对话框
  306. @param message 需要发送给微博客户端的消息对象
  307. @return 返回一个*自动释放的*WBSendMessageToWeiboRequest对象
  308. */
  309. + (id)requestWithMessage:(WBMessageObject *)message;
  310. /**
  311. 返回一个 WBSendMessageToWeiboRequest 对象
  312. 当用户安装了可以支持微博客户端內分享的微博客户端时,会自动唤起微博并分享
  313. 当用户没有安装微博客户端或微博客户端过低无法支持通过客户端內分享的时候会自动唤起SDK內微博发布器
  314. @param message 需要发送给微博的消息对象
  315. @param authRequest 授权相关信息,与access_token二者至少有一个不为空,当access_token为空并且需要弹出SDK內发布器时会通过此信息先进行授权后再分享
  316. @param access_token 第三方应用之前申请的Token,当此值不为空并且无法通过客户端分享的时候,会使用此token进行分享。
  317. @return 返回一个*自动释放的*WBSendMessageToWeiboRequest对象
  318. */
  319. + (id)requestWithMessage:(WBMessageObject *)message
  320. authInfo:(WBAuthorizeRequest *)authRequest
  321. access_token:(NSString *)access_token;
  322. @end
  323. /**
  324. WBSendMessageToWeiboResponse
  325. */
  326. @interface WBSendMessageToWeiboResponse : WBBaseResponse
  327. /**
  328. 可能在分享过程中用户进行了授权操作,当此值不为空时,为用户相应授权信息
  329. */
  330. @property (nonatomic,strong) WBAuthorizeResponse *authResponse;
  331. @end
  332. #pragma mark - ShareMessageToContact Request/Response
  333. /**
  334. 第三方应用分享链接到私信
  335. */
  336. @interface WBShareMessageToContactRequest : WBBaseRequest
  337. /**
  338. 分享链接的消息
  339. */
  340. @property (nonatomic, strong) WBMessageObject *message;
  341. /**
  342. 返回一个 WBShareMessageToContactRequest 对象
  343. 此方法生成对象被[WeiboSDK sendRequest:]会唤起微博客户端的发布器进行分享
  344. @param message 需要发送给微博客户端的消息对象
  345. @return 返回一个*自动释放的*WBSendMessageToWeiboRequest对象
  346. */
  347. + (id)requestWithMessage:(WBMessageObject *)message;
  348. @end
  349. /**
  350. WBSendMessageToWeiboResponse
  351. */
  352. @interface WBShareMessageToContactResponse : WBBaseResponse
  353. /**
  354. 可能在分享过程中用户进行了授权操作,当此值不为空时,为用户相应授权信息
  355. */
  356. @property (nonatomic,strong) WBAuthorizeResponse *authResponse;
  357. @end
  358. #pragma mark - AppRecomend Request/Response
  359. /**
  360. 第三方应用私信好友推荐app的请求
  361. */
  362. @interface WBSDKAppRecommendRequest : WBBaseRequest
  363. /**
  364. 返回一个 WBSDKAppRecommendRequest 对象
  365. @param uids 为推荐的好友列表,为空时跳转到用户自选的页面
  366. @param access_token 第三方应用之前申请的Token,当此值不为空并且无法通过客户端分享的时候,会使用此token私信。
  367. @return 返回一个*自动释放的*WBSDKAppRecommendRequest对象
  368. */
  369. + (id)requestWithUIDs:(NSArray *)uids access_token:(NSString *)access_token;
  370. /**
  371. 私信对象列表
  372. */
  373. @property (nonatomic, strong) NSArray* uids;
  374. /**
  375. 用于认证的Token
  376. */
  377. @property (nonatomic, strong) NSString *access_token;
  378. @end
  379. /**
  380. 第三方应用私信好友推荐app的响应
  381. WBSDKAppRecommendResponse 结构中仅包含常用的 userID 、accessToken 和 expirationDate 信息,其他的认证信息(比如部分应用可以获取的 refresh_token 信息)会统一存放到 userInfo 中
  382. */
  383. @interface WBSDKAppRecommendResponse : WBBaseResponse
  384. @property (nonatomic,strong) WBAuthorizeResponse *authResponse;
  385. /**
  386. 用户ID
  387. */
  388. @property (nonatomic, strong) NSString *userID;
  389. /**
  390. 认证口令
  391. */
  392. @property (nonatomic, strong) NSString *accessToken;
  393. /**
  394. 认证过期时间
  395. */
  396. @property (nonatomic, strong) NSDate *expirationDate;
  397. /**
  398. 当认证口令过期时用于换取认证口令的更新口令
  399. */
  400. @property (nonatomic, strong) NSString *refreshToken;
  401. @end
  402. #pragma mark - Payment Request/Response
  403. /**
  404. 第三方应用发送消息至微博客户端程序的消息结构体
  405. */
  406. @interface WBPaymentRequest : WBBaseRequest
  407. /**
  408. 发送给微博客户端的订单
  409. */
  410. @property (nonatomic, strong) WBOrderObject *order;
  411. /**
  412. 返回一个 WBPaymentRequest 对象
  413. @param message 需要发送给微博客户端程序的消息对象
  414. @return 返回一个*自动释放的*WBSendMessageToWeiboRequest对象
  415. */
  416. + (id)requestWithOrder:(WBOrderObject *)order;
  417. @end
  418. /**
  419. WBPaymentResponse
  420. */
  421. @interface WBPaymentResponse : WBBaseResponse
  422. /**
  423. 支付返回状态码
  424. */
  425. @property (nonatomic, strong) NSString *payStatusCode;
  426. /**
  427. 支付返回状态信息
  428. */
  429. @property (nonatomic, strong) NSString *payStatusMessage;
  430. @end
  431. #pragma mark - MessageObject / ImageObject
  432. /**
  433. 微博客户端程序和第三方应用之间传递的消息结构
  434. 一个消息结构由三部分组成:文字、图片和多媒体数据。三部分内容中至少有一项不为空,图片和多媒体数据不能共存。
  435. */
  436. @interface WBMessageObject : NSObject
  437. /**
  438. 消息的文本内容
  439. @warning 长度小于140个汉字
  440. */
  441. @property (nonatomic, strong) NSString *text;
  442. /**
  443. 消息的图片内容
  444. @see WBImageObject
  445. */
  446. @property (nonatomic, strong) WBImageObject *imageObject;
  447. /**
  448. 消息的多媒体内容
  449. @see WBBaseMediaObject
  450. */
  451. @property (nonatomic, strong) WBBaseMediaObject *mediaObject;
  452. /**
  453. 返回一个 WBMessageObject 对象
  454. @return 返回一个*自动释放的*WBMessageObject对象
  455. */
  456. + (id)message;
  457. @end
  458. /**
  459. 消息中包含的图片数据对象
  460. */
  461. @interface WBImageObject : NSObject
  462. /**
  463. 图片真实数据内容
  464. @warning 大小不能超过10M
  465. */
  466. @property (nonatomic, strong) NSData *imageData;
  467. /**
  468. 返回一个 WBImageObject 对象
  469. @return 返回一个*自动释放的*WBImageObject对象
  470. */
  471. + (id)object;
  472. /**
  473. 返回一个 UIImage 对象
  474. @return 返回一个*自动释放的*UIImage对象
  475. */
  476. - (UIImage *)image;
  477. @end
  478. #pragma mark - Message Media Objects
  479. /**
  480. 消息中包含的多媒体数据对象基类
  481. */
  482. @interface WBBaseMediaObject : NSObject
  483. /**
  484. 对象唯一ID,用于唯一标识一个多媒体内容
  485. 当第三方应用分享多媒体内容到微博时,应该将此参数设置为被分享的内容在自己的系统中的唯一标识
  486. @warning 不能为空,长度小于255
  487. */
  488. @property (nonatomic, strong) NSString *objectID;
  489. /**
  490. 多媒体内容标题
  491. @warning 不能为空且长度小于1k
  492. */
  493. @property (nonatomic, strong) NSString *title;
  494. /**
  495. 多媒体内容描述
  496. @warning 长度小于1k
  497. */
  498. @property (nonatomic, strong) NSString *description;
  499. /**
  500. 多媒体内容缩略图
  501. @warning 大小小于32k
  502. */
  503. @property (nonatomic, strong) NSData *thumbnailData;
  504. /**
  505. 点击多媒体内容之后呼起第三方应用特定页面的scheme
  506. @warning 长度小于255
  507. */
  508. @property (nonatomic, strong) NSString *scheme;
  509. /**
  510. 返回一个 WBBaseMediaObject 对象
  511. @return 返回一个*自动释放的*WBBaseMediaObject对象
  512. */
  513. + (id)object;
  514. @end
  515. #pragma mark - Message Video Objects
  516. /**
  517. 消息中包含的视频数据对象
  518. */
  519. @interface WBVideoObject : WBBaseMediaObject
  520. /**
  521. 视频网页的url
  522. @warning 不能为空且长度不能超过255
  523. */
  524. @property (nonatomic, strong) NSString *videoUrl;
  525. /**
  526. 视频lowband网页的url
  527. @warning 长度不能超过255
  528. */
  529. @property (nonatomic, strong) NSString *videoLowBandUrl;
  530. /**
  531. 视频数据流url
  532. @warning 长度不能超过255
  533. */
  534. @property (nonatomic, strong) NSString *videoStreamUrl;
  535. /**
  536. 视频lowband数据流url
  537. @warning 长度不能超过255
  538. */
  539. @property (nonatomic, strong) NSString *videoLowBandStreamUrl;
  540. @end
  541. #pragma mark - Message Music Objects
  542. /**
  543. 消息中包含的音乐数据对象
  544. */
  545. @interface WBMusicObject : WBBaseMediaObject
  546. /**
  547. 音乐网页url地址
  548. @warning 不能为空且长度不能超过255
  549. */
  550. @property (nonatomic, strong) NSString *musicUrl;
  551. /**
  552. 音乐lowband网页url地址
  553. @warning 长度不能超过255
  554. */
  555. @property (nonatomic, strong) NSString *musicLowBandUrl;
  556. /**
  557. 音乐数据流url
  558. @warning 长度不能超过255
  559. */
  560. @property (nonatomic, strong) NSString *musicStreamUrl;
  561. /**
  562. 音乐lowband数据流url
  563. @warning 长度不能超过255
  564. */
  565. @property (nonatomic, strong) NSString *musicLowBandStreamUrl;
  566. @end
  567. #pragma mark - Message WebPage Objects
  568. /**
  569. 消息中包含的网页数据对象
  570. */
  571. @interface WBWebpageObject : WBBaseMediaObject
  572. /**
  573. 网页的url地址
  574. @warning 不能为空且长度不能超过255
  575. */
  576. @property (nonatomic, strong) NSString *webpageUrl;
  577. @end
  578. #pragma mark - OrderObject
  579. /**
  580. 微博客户端程序和第三方应用之间传递的订单结构
  581. */
  582. @interface WBOrderObject : NSObject
  583. /**
  584. 订单编号
  585. */
  586. @property (nonatomic, strong) NSString *orderString;
  587. /**
  588. 返回一个 WBOrderObject 对象
  589. @return 返回一个*自动释放的*WBOrderObject对象
  590. */
  591. + (id)order;
  592. @end