`

新浪微博开发

 
阅读更多

一、 初体验

 

新浪微博·开放平台: http://open.weibo.com/

上面的首页中有几个选项卡: “首页”、“网站接入”、“应用开发”、“开发文档 ”、“论坛”、“我的应用”

 

“开发文档”中有“平台概述 ”、“开发全攻略 ”(从如何创建应用到应用通过审核的流程介绍)、“API文档 ”(待学习?)、“SDK下载 ”(各种开发工具包,包括 PHP、Python、Java等)

 

二、第一个应用:

0. OAuth标准

==>OAuth 1.0 和OAuth 2.0
OAuth 1.0已经在IETF(Internet Engineering Task Force互联网工程任务组)尘埃落定,编号是RFC5894
  这也标志这OAuth已经正式成为互联网标准协议。
  OAuth 2.0早已经开始讨论和建立的草案。OAuth2.0 很可能是下一代的“用户验证和授权”标准。现在百度开放平台,腾讯开放平台等大部分的开放平台都是使用的OAuth 2.0协议作为支撑。
  OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。
==>认证和授权过程:
在认证和授权的过程中涉及的三方包括:
  1)、服务提供方,用户使用服务提供方来存储受保护的资源,如照片,视频,联系人列表。
  2)、用户,存放在服务提供方的受保护的资源的拥有者。
  3)、客户端,要访问服务提供方资源的第三方应用,通常是网站,如提供照片打印服务的网站。在认证过程之前,客户端要向服务提供者申请客户端标识。

使用OAuth进行认证和授权的过程如下所示:
  用户访问客户端的网站,想操作用户存放在服务提供方的资源。
  客户端向服务提供方请求一个临时令牌。
  服务提供方验证客户端的身份后,授予一个临时令牌。
  客户端获得临时令牌后,将用户引导至服务提供方的授权页面请求用户授权。在这个过程中将临时令牌和客户端的回调连接发送给服务提供方。
  用户在服务提供方的网页上输入用户名和密码,然后授权该客户端访问所请求的资源。
  授权成功后,服务提供方引导用户返回客户端的网页。
  客户端根据临时令牌从服务提供方那里获取访问令牌。
  服务提供方根据临时令牌和用户的授权情况授予客户端访问令牌。
  客户端使用获取的访问令牌访问存放在服务提供方上的受保护的资源。

 

1. OAuth2验证步骤

 

第一步:修改Config.properties的配置信息.打开这个文件,将你的信息填入,具体如下:
client_ID = (你申请应用的appkey)
client_SERCRET =(你申请应用的app_secret)
redirect_URI =(回调地址,跟网上配置的一致,本人比较穷,而且用的是客户端,所以这里就为空)
baseURL = https://api.weibo.com/2/
accessTokenURL = https://api.weibo.com/2/oauth2/access_token
authorizeURL = https://api.weibo.com/2/oauth2/authorize


第二步打开example目录下的文件OAuth4Code.java,code如下图

 

第三步:运行此文件,浏览器会自动打开一个网页,如下图.在里面输入你的账号、密码,点击“登陆并授权”

第四步:登陆后,浏览器会自动跳转到回调页面(由于我没有自己的网站,没有填回调页面,所以浏览器会打开一个第三方授权错误的界面),把地址栏中的“ https://api.weibo.com/2/oauth2/authorize?code=XXXXX”中的XXX copy出来,这个是你要的东东。填写到下图的Eclipse的控制台中,然后回车.

第五步:将获取到的"access_token"(在控制台输出中查找)填入到ShowUser.java文件中,进行如下操作,然后运行程序,将返回你的个人信息。
String access_token = args[0];将args[0]修改为刚才取得的"access_token";
String uid = args[1]; 将args[1]修改为刚才授权用户的ID号;

 

2. 第一个应用——获取用户信息

 

按照 “二、1.” 中的步骤,即可查看某个用户的信息,下面是设置了access_token和uid的Sample程序:

package weibo4j.examples.user;

import weibo4j.Users;
import weibo4j.Weibo;
import weibo4j.examples.oauth2.Log;
import weibo4j.model.User;
import weibo4j.model.WeiboException;

public class ShowUser {

	public static void main(String[] args) {
		String access_token = "2.00Mo7ylBsRvMwB3594dfcf0czAsbvD";
		Weibo weibo = new Weibo();
		weibo.setToken(access_token);
		String uid =  "1788217673";  //这个uid是猫姐的uid
		Users um = new Users();
		try {
			User user = um.showUserById(uid);
			//Log.logInfo(user.toString());
			System.out.println(user);	
		} catch (WeiboException e) {
			e.printStackTrace();
		}
	}
}

String uid = "1788217673"; //这个uid是猫姐的uid

其中uid的值是如何来的呢,哈哈,是通过下面这个程序来的:

 

package weibo4j.examples.friendships;

import weibo4j.Friendships;
import weibo4j.Weibo;
import weibo4j.examples.oauth2.Log;
import weibo4j.model.User;
import weibo4j.model.UserWapper;
import weibo4j.model.WeiboException;

public class GetFollowers {

	public static void main(String[] args) {
		String access_token = "2.00Mo7ylBsRvMwB3594dfcf0czAsbvD";
		Weibo weibo = new Weibo();
		weibo.setToken(access_token);
		Friendships fm = new Friendships();
		String screen_name ="蓝色激流岛";
		try {
			UserWapper users = fm.getFollowersByName(screen_name);
			for(User u : users.getUsers()){
				Log.logInfo(u.toString());
			}
			System.out.println(users.getNextCursor());
			System.out.println(users.getPreviousCursor());
			System.out.println(users.getTotalNumber());
		} catch (WeiboException e) {
			e.printStackTrace();
		}
	}
}

 

上面这个程序可以获得"screen_name ="蓝色激流岛"用户的所有“粉丝(followers)”的信息。其中一个分析的信息就是:

486  INFO  [2012-03-02 15:56:58]  User [id=1788217673, screenName=胡同裡de貓, name=胡同裡de貓, province=11, city=1000, location=北京, description=爱生活,爱妹妹,爱贝贝,爱6姐~, url=http://blog.sina.com.cn/aquadora, profileImageUrl=http://tp2.sinaimg.cn/1788217673/50/5599615830/0, userDomain=aquadora, gender=f, followersCount=508, friendsCount=101, statusesCount=1590, favouritesCount=0, createdAt=Fri Aug 06 00:00:00 CST 2010, following=true, verified=false, verifiedType=-1, allowAllActMsg=false, allowAllComment=true, followMe=true, avatarLarge=http://tp2.sinaimg.cn/1788217673/180/5599615830/0, onlineStatus=0, status=null, biFollowersCount=0, remark=潘晓, lang=zh-cn, verifiedReason=, weihao=, statusId=3419140201314017]

可爱的猫姐啊^^

 

 

三、

调用限制: http://open.weibo.com/wiki/Rate-limiting

 

四、

看这个小朋友的一个例子:http://blog.csdn.net/zjl234/article/details/7339993

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics