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. HDU 2176 (Nim博弈 先手取胜方案) 取(m堆)石子游戏

    切切水题,放松心情:-D #include <cstdio> + ; int a[maxn]; int main() { //freopen("in.txt", &qu ...

  2. mysql免安装版安装

    MySQL是一个小巧玲珑但功能强大的数据库,目前十分流行.但是官网给出的安装包有两种格式,一个是msi格式,一个是zip格式的.很多人下了zip格式的解压发现没有setup.exe,面对一堆文件一头雾 ...

  3. 使用phantomjs生成网站快照

    http://phantomjs.org/ 昨天(2013/08/12)在代码区看到一个生成站点快照的代码,看了半天才发现,作者仅仅贴出来业务代码,最核心的生成快照图片的代码反而没有给出来. 以前记得 ...

  4. web服务器的相关资料 ngix

    OpenResty:官方网站  http://openresty.org/cn/index.html 利用nginx+lua+memcache实现灰度发布 http://www.cnblogs.com ...

  5. python练习程序(c100经典例21)

    题目: 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个.以后每天早上都吃了前一天剩下的一半零一个.到第10天早上想再吃时,见只 ...

  6. wxWidgets简单的多线程

    #include <wx/wx.h> #include <wx/thread.h> #include <wx/event.h> #include <wx/pr ...

  7. 【英语】Bingo口语笔记(33) - 面部器官系列

    to play by ear Play就是玩的意思.可是,play by ear的意思并不是“玩耳朵”.这个词汇的来源和音乐有关系.它原来指的是那些会弹钢琴或某种乐器,但是却不会看五线谱的人.每当他们 ...

  8. 【转】NSArray排序方法

    原文网址:http://www.cnblogs.com/xiaobaizhu/archive/2013/06/05/3119983.html 从网上查的,非常方便的排序api,功能也很强大 1.sor ...

  9. Ubuntu跬步之图片管理digiKam

    Ubuntu下自带了Image Viewer,具备基本的图片浏览功能. 偶尔有些图片需要分组,添加标注,幻灯片浏览等,所以找了款图片管理软件digiKam. 安装 Ubuntu Software Ce ...

  10. 嵌入式 Linux进程含义知多少

    理想情况下,您应该明白在您的系统中运行的每一个进程.要获得所有进程的列表,可以执行命令 ps -ef(POSIX 风格)或 ps ax(BSD 风格).进程名有方括号的是内核级的进程,执行辅助功能(比 ...