·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> app软件开发 >> IOS开发 >> [iOS微博项目-3.2]-发送微博

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

作者:佚名      IOS开发编辑:admin      更新时间:2022-07-23
github: https://github.com/hellovoidworld/HVWWeibo   A.使用微博API发送微博 1.需求 学习发送微博API 发送文字微博 发送带有图片的微博   2.思路 直接按照微博API的文档指示使用 Image(120)   这里测试上传带图片微博 Image(121)   3.实现 在“发微博”界面,点击右上角发送就调用API   Image(122)  
 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 }

 

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