Account/update profile image

跳转到: 导航, 搜索
(HTTP 请求方法:)
 
(未显示5个用户的17个中间版本)
第1行: 第1行:
== account/update_profile_image ==
+
{{api_desc2|
更新用户头像。注意:必须为用multipart Data来提交图片内容,不是URL的图片
+
uri=account/update_profile_image|
 
+
desc=更新用户头像。|
Updates the authenticating user's profile image. Note that this method expects raw multipart data, not a URL to an image.
+
format=XML/JSON|
 
+
httpMethod=POST|
=== URL地址: ===
+
needAuth=true|
http://api.t.sina.com.cn/account/update_profile_image.format
+
rateLimit=true|
 +
params={{api_args|image|true|binary|必须为小于700K的有效的GIF, JPG图片. 如果图片大于500像素将按比例缩放。}}|
 +
getParam=|
 +
postParam= -F image=@'test2.jpg;type=image/jpeg'|
 +
result=
 +
===XML示例===
 +
<pre>
 +
<?xml version="1.0" encoding="UTF-8"?>
 +
  <user>
 +
    <id>1854835127</id>
 +
    <screen_name>siegetest2</screen_name>
 +
    <name>siegetest2</name>
 +
    <province>11</province>
 +
    <city>8</city>
 +
    <location>北京 海淀区</location>
 +
    <description></description>
 +
    <url></url>
 +
    <profile_image_url>http://tp4.sinaimg.cn/1854835127/50/1291709651/1</profile_image_url>
 +
    <domain></domain>
 +
    <gender>m</gender>
 +
    <followers_count>0</followers_count>
 +
    <friends_count>20</friends_count>
 +
    <statuses_count>2</statuses_count>
 +
    <favourites_count>0</favourites_count>
 +
    <created_at>Thu Nov 11 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>
 +
    <status>
 +
      <created_at>Fri Nov 12 10:31:27 +0800 2010</created_at>
 +
      <id>3589902667</id>
 +
      <text>wqrwer</text>
 +
      <source>
 +
        <a href="">微博开放平台接口</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>
 +
    </status>
 +
  </user>
 +
</pre>
 +
===JSON示例===
 +
<pre>
 +
{
 +
"id":1854835127,
 +
"screen_name":"siegetest2",
 +
"name":"siegetest2",
 +
"province":"11",
 +
"city":"8",
 +
"location":"北京 海淀区",
 +
"description":"",
 +
"url":"",
 +
"profile_image_url":"http://tp4.sinaimg.cn/1854835127/50/0/1",
 +
"domain":"",
 +
"gender":"m",
 +
"followers_count":0,
 +
"friends_count":20,
 +
"statuses_count":2,
 +
"favourites_count":0,
 +
"created_at":"Thu Nov 11 00:00:00 +0800 2010",
 +
"following":false,
 +
"allow_all_act_msg":false,
 +
"geo_enabled":true,
 +
"verified":false,
 +
"status":{
 +
"created_at":"Fri Nov 12 10:31:27 +0800 2010",
 +
"id":3589902667,
 +
"text":"wqrwer",
 +
"source":"<a href=\"\" rel=\"nofollow\">微博开放平台接口</a>",
 +
"favorited":false,
 +
"truncated":false,
 +
"in_reply_to_status_id":"",
 +
"in_reply_to_user_id":"",
 +
"in_reply_to_screen_name":"",
 +
"geo":null
 +
}
 +
}
 +
</pre>|
 +
useAge=
 +
* 采用multipart/form-data编码方式提交,可以参考: [http://www.ietf.org/rfc/rfc1867.txt Form-based File Upload in HTML]|
 +
otherInfo=
 +
===Java示例===
 +
请从 [[SDK | 微博SDK开发包下载]] 下载Java SDK<br>
 +
代码示例如下:
 +
package weibo4j.examples;
 
   
 
   
===返回数据格式:===
+
import java.io.File;
xml, json
+
 
   
 
   
=== HTTP 请求方式:===
+
import weibo4j.User;
GET
+
import weibo4j.Weibo;
 
+
===是否需要认证:===
+
public class OAuthUpdateProfileImage {
true
+
 
+
/**
===调用频率限制:===
+
* Usage: java -DWeibo4j.oauth.consumerKey=[consumer key]
false
+
* -DWeibo4j.oauth.consumerSecret=[consumer secret]
 
+
* Weibo4j.examples.OAuthUpdateProfile [accessToken] [accessSecret]
===请求参数说明:===
+
* [imageFilePath]
* image.必须参数. 必须为小于700K的有效的GIF, JPG, 或 PNG 图片.  如果图片大于500像素将按比例缩放。
+
*
 
+
* @param args
 
+
*        message
* image.Required.  Must be a valid GIF, JPG, or PNG image of less than 700 kilobytes in size.  Images with width larger than 500 pixels will be scaled down.
+
*/
 
+
public static void main(String[] args) {
===返回数据格式:===
+
try {
XML 格式样例(部分内容删减):
+
if (args.length < 3) {
<?xml version="1.0" encoding="UTF-8"?>
+
            System.out.println(
<user>
+
                "Usage: java weibo4j.examples.OAuthUpdateProfile token tokenSecret filePath");
<id>1401881</id>
+
            System.exit( -1);
<name>Doug Williams</name>
+
        }
<screen_name>dougw</screen_name>
+
<location>San Francisco, CA</location>
+
System.setProperty("weibo4j.oauth.consumerKey", Weibo.CONSUMER_KEY);
<description>Twitter API Support. Internet, greed, users, dougw and opportunities are my passions.</description>
+
System.setProperty("weibo4j.oauth.consumerSecret", Weibo.CONSUMER_SECRET);
<profile_image_url>http://s3.amazonaws.com/twitter_production/profile_images/59648642/avatar_normal.png</profile_image_url>
+
   
<url>http://www.igudo.com</url>
+
Weibo weibo = new Weibo();
  <protected>false</protected>
+
<followers_count>1031</followers_count>
+
/*
<profile_background_color>9ae4e8</profile_background_color>
+
* 此处需要填写AccessToken的key和Secret,可以从OAuthUpdate的执行结果中拷贝过来
<profile_text_color>000000</profile_text_color>
+
*/
<profile_link_color>0000ff</profile_link_color>
+
weibo.setToken(args[0], args[1]);
<profile_sidebar_fill_color>e0ff92</profile_sidebar_fill_color>
+
try {
<profile_sidebar_border_color>87bc44</profile_sidebar_border_color>
+
File file=new File(args[2]);
<friends_count>293</friends_count>
+
if(file==null){
<created_at>Sun Mar 18 06:42:26 +0000 2007</created_at>
+
System.out.println("file is null");
<favourites_count>0</favourites_count>
+
System.exit(-1);
<utc_offset>-18000</utc_offset>
+
}
<time_zone>Eastern Time (US & Canada)</time_zone>
+
User user = weibo.updateProfileImage(file);
  <profile_background_image_url>http://s3.amazonaws.com/twitter_production/profile_background_images/2752608/twitter_bg_grass.jpg</profile_background_image_url>
+
   
<profile_background_tile>false</profile_background_tile>
+
System.out.println("Successfully upload the status to ["
<statuses_count>3390</statuses_count>
+
+ user.getName() + "].");
<notifications>false</notifications>
+
<following>false</following>
+
} catch (Exception e1) {
<verified>true</verified>
+
e1.printStackTrace();
<status>
+
}
  <created_at>Tue Apr 07 22:52:51 +0000 2009</created_at>
+
} catch (Exception ioe) {
<id>1472669360</id>
+
System.out.println("Failed to read the system input.");
<text>At least I can get your humor through tweets. RT @abdur: I don't mean this in a bad way, but genetically speaking your a cul-de-sac.</text>
+
}
<source><a href="http://www.tweetdeck.com/">TweetDeck</a></source>
+
}
<truncated>false</truncated>
+
  }
<in_reply_to_status_id></in_reply_to_status_id>
+
===PHP示例===
<in_reply_to_user_id></in_reply_to_user_id>
+
请从 [[SDK | 微博SDK开发包下载]] 处下载PHP SDK(支持OAuth验证之版本)<br>  
  <favorited>false</favorited>
+
代码示例如下:
<in_reply_to_screen_name></in_reply_to_screen_name>
+
<pre>
</status>
+
//account/update_profile_image
</user>
+
$c = new WeiboClient( WB_AKEY ,
 
+
                      WB_SKEY ,
===调用例子: ===
+
                      $_SESSION['last_key']['oauth_token'] ,
cURL (about cURL):
+
                      $_SESSION['last_key']['oauth_token_secret'] );
 
+
$pic_path = 'pic_path';
curl -u user:password -H 'Expect:' -F image=@'test2.png;type=image/png' http://api.t.sina.com.cn/account/update_profile_image.xml
+
$msg = $c->update_avatar($pic_path);
 +
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;
 +
}
 +
if (isset($msg['name'])){
 +
echo("Successfully upload the status to [".$msg['name'].'].');
 +
}
 +
</pre>
 +
}}

2011年3月9日 (三) 15:20的最后版本

目录

account/update_profile_image

更新用户头像。

URL

http://api.t.sina.com.cn/account/update_profile_image.(json%7Cxml)

支持格式

XML/JSON

HTTP请求方式

POST

是否需要登录

true
关于授权机制,参见授权机制声明

请求数限制

true
关于请求数限制,参见接口访问权限说明

请求参数

  必选 类型及范围 说明
source true string 申请应用时分配的AppKey,调用接口时候代表应用的唯一身份。(采用OAuth授权方式不需要此参数)
image true binary 必须为小于700K的有效的GIF, JPG图片. 如果图片大于500像素将按比例缩放。

注意事项

返回结果

XML示例

<?xml version="1.0" encoding="UTF-8"?>
  <user>
    <id>1854835127</id>
    <screen_name>siegetest2</screen_name>
    <name>siegetest2</name>
    <province>11</province>
    <city>8</city>
    <location>北京 海淀区</location>
    <description></description>
    <url></url>
    <profile_image_url>http://tp4.sinaimg.cn/1854835127/50/1291709651/1</profile_image_url>
    <domain></domain>
    <gender>m</gender>
    <followers_count>0</followers_count>
    <friends_count>20</friends_count>
    <statuses_count>2</statuses_count>
    <favourites_count>0</favourites_count>
    <created_at>Thu Nov 11 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>
    <status>
      <created_at>Fri Nov 12 10:31:27 +0800 2010</created_at>
      <id>3589902667</id>
      <text>wqrwer</text>
      <source>
        <a href="">微博开放平台接口</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>
    </status>
  </user>

JSON示例

{
	"id":1854835127,
	"screen_name":"siegetest2",
	"name":"siegetest2",
	"province":"11",
	"city":"8",
	"location":"北京 海淀区",
	"description":"",
	"url":"",
	"profile_image_url":"http://tp4.sinaimg.cn/1854835127/50/0/1",
	"domain":"",
	"gender":"m",
	"followers_count":0,
	"friends_count":20,
	"statuses_count":2,
	"favourites_count":0,
	"created_at":"Thu Nov 11 00:00:00 +0800 2010",
	"following":false,
	"allow_all_act_msg":false,
	"geo_enabled":true,
	"verified":false,
	"status":{
		"created_at":"Fri Nov 12 10:31:27 +0800 2010",
		"id":3589902667,
		"text":"wqrwer",
		"source":"<a href=\"\" rel=\"nofollow\">微博开放平台接口</a>",
		"favorited":false,
		"truncated":false,
		"in_reply_to_status_id":"",
		"in_reply_to_user_id":"",
		"in_reply_to_screen_name":"",
		"geo":null
	}
}

其他

Java示例

请从 微博SDK开发包下载 下载Java SDK
代码示例如下:

package weibo4j.examples;

import java.io.File;

import weibo4j.User;
import weibo4j.Weibo;

public class OAuthUpdateProfileImage {

	/**
	 * Usage: java -DWeibo4j.oauth.consumerKey=[consumer key]
	 * -DWeibo4j.oauth.consumerSecret=[consumer secret]
	 * Weibo4j.examples.OAuthUpdateProfile [accessToken] [accessSecret]
	 * [imageFilePath]
	 * 
	 * @param args
	 *        message
	 */
	public static void main(String[] args) {
		try {
			if (args.length < 3) {
	            System.out.println(
	                "Usage: java weibo4j.examples.OAuthUpdateProfile 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,可以从OAuthUpdate的执行结果中拷贝过来
			 */
			weibo.setToken(args[0], args[1]);
			try {
				File file=new File(args[2]);
				if(file==null){
					System.out.println("file is null");
					System.exit(-1);
				}
				User user = weibo.updateProfileImage(file);

				System.out.println("Successfully upload the status to ["
						+ user.getName() + "].");
				
			} catch (Exception e1) {
				e1.printStackTrace();
			}
		} catch (Exception ioe) {
			System.out.println("Failed to read the system input.");
		}
	}
}

PHP示例

请从 微博SDK开发包下载 处下载PHP SDK(支持OAuth验证之版本)
代码示例如下:

//account/update_profile_image
$c = new WeiboClient( WB_AKEY , 
                      WB_SKEY , 
                      $_SESSION['last_key']['oauth_token'] , 
                      $_SESSION['last_key']['oauth_token_secret']  );
$pic_path = 'pic_path';
$msg = $c->update_avatar($pic_path);
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;
}
if (isset($msg['name'])){
	echo("Successfully upload the status to [".$msg['name'].'].');
}
文档更新时间: 2011-03-09