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] - 发送微博的更多相关文章

  1. AJ学IOS 之微博项目实战(13)发送微博调用相机里面的图片以及调用相机

    AJ分享,必须精品 一:效果 二:代码 相机部分就简单多了,几行代码调用而已,但是如果你要是想实现更多丰富的功能,需要自己写.利用AssetsLibrary.framework,利用这个框架可以获得手 ...

  2. AJ学IOS 之微博项目实战(12)发送微博自定义工具条代理实现点击事件

    AJ分享,必须精品 一:效果 二:封装好的工具条 NYComposeToolbar.h 带代理方法 #import <UIKit/UIKit.h> typedef enum { NYCom ...

  3. AJ学IOS 之微博项目实战(11)发送微博自定义TextView实现带占位文字

    AJ分享,必须精品 一:效果 二:代码: 由于系统自带的UITextField:和UITextView:不能满足我们的需求,所以我们需要自己设计一个. UITextField: 1.文字永远是一行,不 ...

  4. QQ登入(6)腾讯微博-获取微博用户信息,发送微博

    1.1获取weibo用户信息 //先登入授权,可以参考QQ登入(1) Weibo mWeibo = new Weibo(this, mQQAuth.getQQToken()); mWeibo.getW ...

  5. [iOS微博项目 - 2.6] - 获取微博数据

    github: https://github.com/hellovoidworld/HVWWeibo   A.新浪获取微博API 1.读取微博API     2.“statuses/home_time ...

  6. [iOS微博项目 - 4.0] - 自定义微博cell

    github: https://github.com/hellovoidworld/HVWWeibo A.自定义微博cell基本结构 1.需求 创建自定义cell的雏形 cell包含:内容.工具条 内 ...

  7. [iOS微博项目 - 3.1] - 发微博界面

    github: https://github.com/hellovoidworld/HVWWeibo   A.发微博界面:自定义UITextView 1.需求 用UITextView做一个编写微博的输 ...

  8. 使用新版SDK不想跳转微博客户端能否直接发送微博分享?

    如题啊如题! 新版本中没有StatusesAPI?????

  9. Android应用内使用新浪微博SDK发送微博(不调用微博客户端)

    需求 手头的一个应用需要添加分享到新浪微博的功能,这个功能在现在的应用上是非常的普遍的了. 分享到新浪微博,其实就是发送一条特定内容的微博,所以需要用到新浪微博SDK了. 微博SDK SDK的下载地址 ...

随机推荐

  1. Android Studio 配置使用百度api (附带简单样例)

    还是和同学开发的那个课程作业项目的app, 要使用到百度地图的api 但是,官方文档貌似只有Eclipse的例子,对Android Studio似乎没有说明.  难道,是因为后者是 "Doo ...

  2. HDU 1158 Employment Planning

    又一次看题解. 万事开头难,我想DP也是这样的. 呵呵,不过还是有进步的. 比如说我一开始也是打算用dp[i][j]表示第i个月份雇j个员工的最低花费,不过后面的思路就完全错了.. 不过这里还有个问题 ...

  3. Android 系统 reboot

    /*********************************************************************** * Android 系统 reboot * 说明: * ...

  4. hihoCoder #1179 : 永恒游戏 (暴力枚举)

    题意: 给出一个有n个点的无向图,每个点上有石头数个,现在的游戏规则是,设置某个点A的度数为d,如果A点的石子数大于等于d,则可以从A点给每个邻接点发一个石子.如果游戏可以玩10万次以上,输出INF, ...

  5. 使用dev http client调试restful API开发

    安装chrome 插件:dev http client, 使用VPN打开 google网站,

  6. [转] gc tips(2)

    原文地址:http://kevincao.com/2011/08/actionscript-garbage-collection-1/ 谈谈ActionScript垃圾回收(上) 在<给AS程序 ...

  7. Linux下ll命令与ls -l

    还大三Linux课的债. 1.ll命令用于显示当前文件下非隐藏文件的详情 查询结果分为7栏: 1)如' -rw-r--r--' 表示三种用户对该文件的不同权限: r:可读:w:可写:x:可执行 其中第 ...

  8. Solr部署准备

    ---恢复内容开始--- 1.配置安装JDK1.7以上的版本 2.下载solr包 http://archive.apache.org/dist/lucene/solr/4.9.0/ 3.安装web容器 ...

  9. jQuery和CSS 3定制HTML 5视频播放器

    目前,随着越来越多的浏览器开始支持更多的HTML5新特性,开发者也逐渐关注HTML5的开发.在众多HTML5的新特性中,视频方面的新特性是 很值得开发者和用户关注的.现在,只需要有支持HTML5的浏览 ...

  10. sqlite3使用简介(内含解决sqlite内存的方法)

    一.使用流程 要使用sqlite,需要从sqlite官网下载到三个文件,分别为sqlite3.lib,sqlite3.dll,sqlite3.h,然后再在自己的工程中配置好头文件和库文件,同时将dll ...