微博开放平台
微连接
移动应用
网站接入
电商服务商
电商商家
数据服务
数据服务
合作伙伴
微博支付
轻应用
粉丝服务
文档
推广
我的应用
登录
weibo
开发文档
首页
平台政策与指引
概述
平台公约
新手指南
开发者协议
应用运营管理规范
微连接分级管理办法
应用审核产品指南
应用安全开发注意事项
平台应用设计规范
微服务接入指南
微博登录接入
用微博帐号登录
授权机制
移动应用接入
移动应用介绍
移动应用SSO授权
微博Deep Link
媒体接入平台
头条文章开放接口
视频上传开放接口
电商接入平台
电商服务商接入
电商商家端接入
电商平台能力接口
粉丝服务平台
粉丝服务平台
新手接入指南
微信开发者迁移指南
接收消息
发送消息
自定义菜单
用户管理
生成带参数的二维码
Fans Service Platform
商业接口
商业数据接入指南
订阅服务手册(中文版)
订阅服务手册(英文版)
商业接口-REST API
商业数据常见问题
网站接入
网站接入介绍
微博API
微博API
接口访问频次权限
资源下载
SDK
微博标识下载
常见问题
联系我们
工具箱
链入页面
链出更改
特殊页面
查看源代码
跳转到:
导航
,
搜索
根据下列原因,你没有权限编辑本页:
您刚才请求的操作只有这个用户组中的用户才能使用:
用户
您可以查看并复制此页面的源代码:
{{api_desc2| uri=statuses/upload| desc=发表带图片的微博。必须用POST方式提交pic参数,且Content-Type必须设置为multipart/form-data。图片大小<5M。| format=XML/JSON| httpMethod=POST| needAuth=true| rateLimit=true| params={{api_args|status|true|string|要发布的微博文本内容。}} {{api_args|pic|true|binary|要上传的图片数据。仅支持JPEG、GIF、PNG格式,为空返回400错误。图片大小<5M。 }} {{api_args|lat|false|float|纬度。有效范围:-90.0到+90.0,+表示北纬。}} {{api_args|long|false|float|经度。有效范围:-180.0到+180.0,+表示东经。}} {{api_args_colspan|1=<font style="color:#ee6666">注意:lat和long参数需配合使用,用于标记发表微博消息时所在的地理位置,只有用户设置中geo_enabled=true时候地理位置信息才有效。</font>}}| getParam=| postParam=-F "pic=@1.png" -F "status=分享图片"| result= ===XML示例=== <pre> <?xml version="1.0" encoding="UTF-8"?> <status> <created_at>Thu Dec 02 17:02:42 +0800 2010</created_at> <id>4022982531</id> <text>abc</text> <source> <a href="http://open.t.sina.com.cn">微博开放平台接口</a> </source> <favorited>false</favorited> <truncated>false</truncated> <geo/> <in_reply_to_status_id></in_reply_to_status_id> <in_reply_to_user_id></in_reply_to_user_id> <in_reply_to_screen_name></in_reply_to_screen_name> <thumbnail_pic>http://ww3.sinaimg.cn/thumbnail/6b8527b3jw6dbydoikpzuj.jpg</thumbnail_pic> <bmiddle_pic>http://ww3.sinaimg.cn/bmiddle/6b8527b3jw6dbydoikpzuj.jpg</bmiddle_pic> <original_pic>http://ww3.sinaimg.cn/large/6b8527b3jw6dbydoikpzuj.jpg</original_pic> <user> <id>1803888563</id> <screen_name>LoopC</screen_name> <name>LoopC</name> <province>11</province> <city>8</city> <location>北京 海淀区</location> <description></description> <url></url> <profile_image_url>http://tp4.sinaimg.cn/1803888563/50/0</profile_image_url> <domain></domain> <gender>m</gender> <followers_count>1</followers_count> <friends_count>1</friends_count> <statuses_count>2</statuses_count> <favourites_count>0</favourites_count> <created_at>Fri Aug 27 00:00:00 +0800 2010</created_at> <following>false</following> <verified>false</verified> <allow_all_act_msg>false</allow_all_act_msg> <geo_enabled>true</geo_enabled> </user> </status> </pre> ===JSON示例=== <pre> { "created_at": "Thu Dec 02 17:06:40 +0800 2010", "id": 4023064087, "text": "abc", "source": "微博开放平台接口", "favorited": false, "truncated": false, "in_reply_to_status_id": "", "in_reply_to_user_id": "", "in_reply_to_screen_name": "", "thumbnail_pic": "http://ww2.sinaimg.cn/thumbnail/6b85067djw6dbydsnam1xj.jpg", "bmiddle_pic": "http://ww2.sinaimg.cn/bmiddle/6b85067djw6dbydsnam1xj.jpg", "original_pic": "http://ww2.sinaimg.cn/large/6b85067djw6dbydsnam1xj.jpg", "geo": { "type": "Point", "coordinates": [ 39.8765, 119.5678 ] }, "user":{ "id": 1803880061, "screen_name": "LoopB", "name": "LoopB", "province": "11", "city": "8", "location": "北京 海淀区", "description": "", "url": "", "profile_image_url": "http://tp2.sinaimg.cn/1803880061/50/0/0", "domain": "", "gender": "f", "followers_count": 1, "friends_count": 1, "statuses_count": 14, "favourites_count": 4, "created_at": "Fri Aug 27 00:00:00 +0800 2010", "following": false, "allow_all_act_msg": false, "geo_enabled": true, "verified": false } } </pre>| useAge= * 上传图片需要采用multipart/form-data方式提交pic参数,并且放在POST请求的body里。另外,只有以oauth_开头的参数才需要参加OAuth的签名。可以参考: [http://www.ietf.org/rfc/rfc1867.txt Form-based File Upload in HTML] 第6段: Examples *如果不确定如何在发送POST请求中签名,可以参考下面的示例:| otherInfo= ===Java示例=== 请从 [[SDK | 微博SDK开发包下载]] 下载Java SDK 参看 examples/OauthUpload.java, 运行 java OauthUpload accesstoken accesstoken_secret filepath 代码示意如下 <pre> public static void main(String[] args) { try { if (args.length < 3) { System.out.println( "Usage: java weibo4j.examples.OAuthUploadByFile token tokenSecret filePath"); System.exit( -1); } System.setProperty("weibo4j.oauth.consumerKey", Weibo.CONSUMER_KEY); System.setProperty("weibo4j.oauth.consumerSecret", Weibo.CONSUMER_SECRET); Weibo weibo = new Weibo(); /* * 此处需要填写AccessToken的key和Secret */ weibo.setToken(args[0], args[1]); try { File file=new File(args[2]); String msg = URLEncoder.encode("中文内容", "UTF-8"); Status status = weibo.uploadStatus(msg, file); System.out.println("Successfully upload the status to [" + status.getText() + "]."); } catch (Exception e1) { e1.printStackTrace(); } } catch (Exception ioe) { System.out.println("Failed to read the system input."); } } </pre> ===PHP示例=== 请从 [[SDK | 微博SDK开发包下载]] 处下载PHP SDK(支持OAuth验证之版本)<br> 代码示例如下: <?php $boundary = uniqid('------------------'); $MPboundary = '--'.$boundary; $endMPboundary = $MPboundary. '--'; // 需要上传的图片所在路径 $filename = '/tmp/wiki.png'; $file = file_get_contents($filename); $multipartbody .= $MPboundary . "\r\n"; $multipartbody .= 'Content-Disposition: form-data; name="pic"; filename="wiki.png"'. "\r\n"; $multipartbody .= 'Content-Type: image/png'. "\r\n\r\n"; $multipartbody .= $file. "\r\n"; $k = "source"; // 这里改成 appkey $v = "appkey"; $multipartbody .= $MPboundary . "\r\n"; $multipartbody.='content-disposition: form-data; name="'.$k."\"\r\n\r\n"; $multipartbody.=$v."\r\n"; $k = "status"; $v = "要上传的文件,这里是描述文字"; $multipartbody .= $MPboundary . "\r\n"; $multipartbody.='content-disposition: form-data; name="'.$k."\"\r\n\r\n"; $multipartbody.=$v."\r\n"; $multipartbody .= "\r\n". $endMPboundary; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'http://api.t.sina.com.cn/statuses/upload.xml' ); curl_setopt($ch , CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS,$multipartbody ); curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: multipart/form-data; boundary=$boundary")); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // 修改成当前用户名及密码 curl_setopt($ch, CURLOPT_USERPWD, "username:password"); $msg = curl_exec($ch); //echo $multipartbody; echo 'ok.'; ?> ===其他语言=== 可参考以下测试方式,将以下代码存成HTML,在微博登录的情况下用浏览器打开此页面可以上传图片,通过比较浏览器的调用参数来调整你的程序。(可以使用HttpWatch, FireBug等工具监测HTTP传送数据)。注意将下面代码中appkey改成真实值。 <html><head><meta http-equiv="Content-Type" content="text/html;charset=utf8"></head><body> <form name="uploadForm" method="POST" action="http://api.t.sina.com.cn/statuses/upload.xml" enctype="multipart/form-data" > <input type="text" name="status" value="填写要发表的文字" /> <input type="file" name="pic" value="浏览文件" /> <input type="submit" value="上传"/> <input type="hidden" name="source" value="改成你的appkey" /> </form></body></html> }}
该页面使用的模板:
模板:Api args
(
查看源代码
)
模板:Api args colspan
(
查看源代码
)
模板:Api desc2
(
查看源代码
)
返回到
Statuses/upload
。
反馈
分享
顶部