码迷,mamicode.com
首页 > 移动开发 > 详细

[iOS微博项目 - 3.2] - 发送微博

时间:2015-02-09 00:41:15      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:

 
A.使用微博API发送微博
1.需求
学习发送微博API
发送文字微博
发送带有图片的微博
 
2.思路
直接按照微博API的文档指示使用
技术分享
 
这里测试上传带图片微博
技术分享
 
3.实现
在“发微博”界面,点击右上角发送就调用API
 
技术分享
 
 1 //  HVWComposeViewController.m
 2 /** 发送微博 */
 3 - (void) sendWeibo {
 4     if (self.composeView.text.length == 0) {
 5         [MBProgressHUD showError:@"你好像忘记了内容..."];
 6         return;
 7     }
 8    
 9     [MBProgressHUD showMessage:@"发送微博中..."];
10    
11     if (self.imageDisplayView.images.count) { // 发送的时带图片的微博
12         [self sendWeiboWithTextNImage];
13     } else { // 发送的是纯文字微博
14         [self sendWeiboWithText];
15     }
16 }
17 
18 /** 发送文字微博 */
19 - (void) sendWeiboWithText {
20     // 创建http操作管理者
21     AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
22    
23     // 设置参数
24     NSMutableDictionary *param = [NSMutableDictionary dictionary];
25     // 访问令牌
26     HVWAccountInfo *accountInfo = [HVWAccountInfoTool accountInfo];
27     param[@"access_token"] = accountInfo.access_token;
28     // 微博文本
29     param[@"status"] = self.composeView.text;
30    
31     // 发送请求
32     [manager POST:@"https://api.weibo.com/2/statuses/update.json" parameters:param success:^(AFHTTPRequestOperation *operation, id responseObject) {
33         [MBProgressHUD hideHUD];
34         [MBProgressHUD showSuccess:@"发送成功!"];
35     } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
36         HVWLog(@"发送微博失败, error:%@", error);
37         [MBProgressHUD hideHUD];
38         [MBProgressHUD showError:@"发送失败!error"];
39     }];
40 }
41 
42 /** 发送图文微博 */
43 - (void) sendWeiboWithTextNImage {
44     if (self.imageDisplayView.images.count == 0) {
45         [MBProgressHUD hideHUD];
46         [MBProgressHUD showError:@"懵了,找不到图儿!"];
47         return;
48     }
49    
50     // 创建http操作管理者
51     AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
52    
53     // 设置参数
54     NSMutableDictionary *param = [NSMutableDictionary dictionary];
55     // 访问令牌
56     HVWAccountInfo *accountInfo = [HVWAccountInfoTool accountInfo];
57     param[@"access_token"] = accountInfo.access_token;
58     // 微博文本
59     param[@"status"] = self.composeView.text;
60    
61     // 发送请求
62     [manager POST:@"https://upload.api.weibo.com/2/statuses/upload.json" parameters:param constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
63        
64         // 发送的图片数据,其实现在开放的API只允许上传一张图片
65         UIImage *image  = [self.imageDisplayView.images firstObject];
66         if (image) {
67             NSData *imageData = UIImagePNGRepresentation(image);
68             [formData appendPartWithFileData:imageData name:@"pic" fileName:@"statusPic" mimeType:@"image/png"];
69         }
70     } success:^(AFHTTPRequestOperation *operation, id responseObject) {
71         [MBProgressHUD hideHUD];
72         [MBProgressHUD showSuccess:@"发送成功!"];
73     } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
74         HVWLog(@"发送微博失败, error:%@", error);
75         [MBProgressHUD hideHUD];
76         [MBProgressHUD showError:@"发送失败!"];
77     }];
78 }

 

 
发送成功:
技术分享
 
 
#mark:
发送微博失败的原因有:
1.没有文本内容
2.使用发送纯文本API,却上传图片
3.使用发送图文API,却没有上传图片
 
注意:新浪开放的API一次只能上传一张图片,选择多张的时候会使用最后一张
 

[iOS微博项目 - 3.2] - 发送微博

标签:

原文地址:http://www.cnblogs.com/hellovoidworld/p/4280739.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!