Statuses/upload
第17行: | 第17行: | ||
<pre> | <pre> | ||
<?xml version="1.0" encoding="UTF-8"?> | <?xml version="1.0" encoding="UTF-8"?> | ||
− | <status> | + | <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/> | |
− | <id> | + | <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> | |
− | </status> | + | <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> | </pre> | ||
===JSON示例=== | ===JSON示例=== |
2010年12月2日 (四) 17:04的版本
目录 |
statuses/upload
发表图片微博消息。请求必须用POST方式提交。目前上传图片大小限制为<5M。
URL
http://api.t.sina.com.cn/statuses/upload.(json%7Cxml)
支持格式
XML/JSON
HTTP请求方式
POST
是否需要登录
true
关于授权机制,参见授权机制声明
请求数限制
true
关于请求数限制,参见接口访问权限说明
请求参数
必选 | 类型及范围 | 说明 | |
---|---|---|---|
source | true | string | 申请应用时分配的AppKey,调用接口时候代表应用的唯一身份。(采用OAuth授权方式不需要此参数) |
status | true | string | 要发布的微博消息文本内容 |
pic | true | binary | 要上传的图片。仅支持JPEG,GIF,PNG图片,为空返回400错误。目前上传图片大小限制为<5M。 |
lat | false | float | 纬度。有效范围:-90.0到+90.0,+表示北纬。 |
long | false | float | 经度。有效范围:-180.0到+180.0,+表示东经。 |
注意:lat和long参数需配合使用,用于标记发表微博消息时所在的地理位置,只有用户设置中geo_enabled=true时候地理位置信息才有效。 |
注意事项
- 采用multipart/form-data编码方式提交,可以参考: Form-based File Upload in HTML
- 如果使用的Oauth认证,图片参数pic不参与签名。
返回结果
XML示例
<?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>
JSON示例
{"created_at":"Thu Jan 07 10:51:19 +0800 2010", "id":142296, "text":"http://sinaurl.cn/hi4sD", "source":"<a id=\"0\" href=\"http://t.sina.com.cn/\" rel=\"nofollow\">Web</a>", "favorited":false, "truncated":false, "in_reply_to_status_id":"", "in_reply_to_user_id":"", "in_reply_to_screen_name":"", "thumbnail_pic":"http://static12.photo.sina.com.cn/thumbnail/5219ba9d072da9d51f7bb", "bmiddle_pic":"http://static12.photo.sina.com.cn/bmiddle/5219ba9d072da9d51f7bb", "original_pic":"http://static12.photo.sina.com.cn/orignal/5219ba9d072da9d51f7bb", "geo":null, "user": {"id":11075, "screen_name":"name_11075", "name":"name_11075", "province":"0", "city":"0", "location":"", "description":"", "url":"", "profile_image_url":"http://tp4.sinaimg.cn/11075/50/0", "domain":"11075", "followers_count":28, "friends_count":50, "statuses_count":0, "favourites_count":29, "created_at":"Thu Jan 01 08:00:00 +0800 1970", "following":false, "geo_enabled":false, "verified":true} }
其他
Java示例
请从 微博SDK开发包下载 下载Java SDK 参看 examples/OauthUpload.java, 运行 java OauthUpload accesstoken accesstoken_secret filepath 代码示意如下
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."); } }
PHP示例
请从 微博SDK开发包下载 处下载PHP SDK(支持OAuth验证之版本)
代码示例如下:
<?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改成真实值。