Statuses/update
(→PHP示例) |
(→返回结果) |
||
第103行: | 第103行: | ||
"verified":false} | "verified":false} | ||
} | } | ||
+ | {{Param_status}} | ||
+ | {{Param_user}} | ||
=== 使用示例=== | === 使用示例=== |
2010年9月2日 (四) 13:48的版本
目录 |
statuses/update
发布一条微博信息。请求必须用POST方式提交。为防止重复,发布的信息与当前最新信息一样话,将会被忽略。
URL
http://api.t.sina.com.cn/statuses/update.format
格式
xml, json
HTTP请求方式
POST
是否需要身份验证
true
请求数限制
true
请求参数
- status. 必填参数, 要更新的微博信息。必须做URLEncode,信息内容部超过140个汉字,为空返回400错误。
- in_reply_to_status_id. 可选参数,@ 需要回复的微博信息ID, 这个参数只有在微博内容以 @username 开头才有意义。(即将推出)。
- lat. 可选参数,纬度,发表当前微博所在的地理位置,有效范围 -90.0到+90.0, +表示北纬。只有用户设置中geo_enabled=true时候地理位置才有效。(仅对受邀请的合作开发者开放)
- long. 可选参数,经度。有效范围-180.0到+180.0, +表示东经。(仅对受邀请的合作开发者开放)
使用说明
- 如果没有登录或超过发布上限,将返回403错误
- 如果in_reply_to_status_id不存在,将返回500错误
- 系统将忽略重复发布的信息。每次发布将比较最后一条发布消息,如果一样将被忽略。因此用户不能连续提交相同信息。
返回结果
注意geo信息仅对有地理位置的微博才有返回 XML示例:
<?xml version="1.0" encoding="UTF-8"?> <status> <created_at>Tue Dec 15 13:08:23 +0800 2009</created_at> <id>2</id> <text>莱斯科特头上有个月牙型的伤疤,要是他去扮演包公的话可以省去一笔包装费</text> <source> <a href="http://t.sina.com.cn">Web</a> </source> <favorited>false</favorited> <truncated>false</truncated> <geo xmlns:georss="http://www.georss.org/georss"> <georss:point>23.12 -122.39697</georss:point> </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> <user> <id>135272</id> <screen_name>bbb</screen_name> <name>ddd</name> <province>13</province> <city>1000</city> <location>河北</location> <description>巾帼不让傻须眉。</description> <url>http://blog.sina.com.cn</url> <profile_image_url>http://tp4.sinaimg.cn/1352721827/50/1265540250</profile_image_url> <domain>maplelee0723</domain> <gender>f</gender> <followers_count>52</followers_count> <friends_count>23</friends_count> <statuses_count>54</statuses_count> <favourites_count>0</favourites_count> <created_at>Tue Jan 26 00:00:00 +0800 2010</created_at> <following>false</following> <verified>false</verified> <allow_all_act_msg>false</allow_all_act_msg> <geo_enabled>false</geo_enabled> </user> </status>
JSON示例:
{"created_at":"Wed Jan 06 19:38:33 +0800 2010", "id":142280, "text":"111111111111111111111", "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":"", "geo":{"type": "Point","coordinates": [23.12 -122.39697]}, "user":{"id":11057, "screen_name":"name_11057", "name":"name_11057", "province":"0", "city":"0", "location":"", "description":"", "url":"", "profile_image_url":"http://tp2.sinaimg.cn/11057/50/0", "domain":"11057", "followers_count":19, "friends_count":101, "statuses_count":0, "favourites_count":3, "created_at":"Thu Jan 01 08:00:00 +0800 1970", "following":false, "geo_enabled":false, "verified":false} }
字段说明 - status
- created_at: 创建时间
- id: 微博ID
- text: 微博信息内容
- source: 微博来源
- favorited: 是否已收藏
- truncated: 是否被截断
- in_reply_to_status_id: 回复ID
- in_reply_to_user_id: 回复人UID
- in_reply_to_screen_name: 回复人昵称
- thumbnail_pic: 缩略图
- bmiddle_pic: 中型图片
- original_pic:原始图片
- user: 作者信息
- retweeted_status: 转发的博文,内容为status,如果不是转发,则没有此字段
字段说明 - user
- id: 用户UID
- screen_name: 微博昵称
- name: 友好显示名称,同微博昵称
- province: 省份编码(参考省份编码表)
- city: 城市编码(参考城市编码表)
- location:地址
- description: 个人描述
- url: 用户博客地址
- profile_image_url: 自定义图像
- domain: 用户个性化URL
- gender: 性别,m--男,f--女,n--未知
- followers_count: 粉丝数
- friends_count: 关注数
- statuses_count: 微博数
- favourites_count: 收藏数
- created_at: 创建时间
- following: 是否已关注(此特性暂不支持)
- verified: 加V标示,是否微博认证用户
使用示例
- xml:
curl -u uid:password -d "source=appkey&status=playing with cURL and the Sina API" http://api.t.sina.com.cn/statuses/update.xml
- json:
curl -u uid:password -d "source=appkey&status=playing with cURL and the Sina API" http://api.t.sina.com.cn/statuses/update.json
Java示例
请从 微博SDK开发包下载 下载Java SDK
代码示意如下:
package weibo4j.examples; import weibo4j.Status; import weibo4j.Weibo; public class UpdateStatus { /** * 发布一条微博信息 * @param args */ public static void main(String[] args) { System.setProperty("weibo4j.oauth.consumerKey", Weibo.CONSUMER_KEY); System.setProperty("weibo4j.oauth.consumerSecret", Weibo.CONSUMER_SECRET); try { Weibo weibo = getWeibo(true,args); Status status = weibo.updateStatus("测试发表微博"); System.out.println(status.getId() + " : "+ status.getText()+" "+status.getCreatedAt()); } catch (Exception e) { e.printStackTrace(); } } private static Weibo getWeibo(boolean isOauth,String ... args) { Weibo weibo = new Weibo(); if(isOauth) {//oauth验证方式 args[0]:访问的token;args[1]:访问的密匙 weibo.setToken(args[0], args[1]); }else {//用户登录方式 weibo.setUserId(args[0]);//用户名/ID weibo.setPassword(args[1]);//密码 } return weibo; } }
PHP示例
请从 微博SDK开发包下载 处下载PHP SDK(支持OAuth验证之版本)
代码示例如下:
//Statuses/update $c = new WeiboClient( WB_AKEY , WB_SKEY , $_SESSION['last_key']['oauth_token'] , $_SESSION['last_key']['oauth_token_secret'] ); $msg = $c->update("测试发表微博"); if ($msg === false || $msg === null){ echo "Error occured"; return false; } if (isset($msg['error_code']) && isset($msg['error'])){ echo ('Error_code: '.$msg['error_code'].'; Error: '.$msg['error'] ); return false; } echo($msg['id']." : ".$msg['text']." ".$msg["created_at"]);