新浪微博OAuth接口实现登录 java版

来源:互联网 发布:类似逗游的软件 编辑:程序博客网 时间:2024/04/29 21:06

新浪微博采用的是OAuth协议来做的登录,现在登录接口做完了。留个笔记方便以后查阅,也方便后来人能够少走一些弯路。


首先简单说说OAuth授权协议:OAUTH协议为用户资源的授权提供了一个安全的、开放而又简易的标准。同时,任何第三方都可以使用OAuth认证服务,任何服务提供商都可以实现自身的OAuth认证服务,因而OAUTH是开放的。业界提供了OAuth的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间,因而OAuth是简易的。目前互联网很多服务如Open API,很多大头公司如Google,Yahoo,Microsoft等都提供了OAuth认证服务,这些都足以说明OAUTH标准逐渐成为开放资源授权的标准。


接下来说说如何实现新浪微博的接口

在网上查了好多资料,基本上都是在发自己写的代码。并且都不完整。所以看半天不知道怎么回事,也自己去捣鼓着自己写了。

研究了好久都快写的差不多了,突然响起来看新浪登录SDK的时候看到的代码,感觉自己跟里面的代码有点似曾相熟的感觉。于是开始翻新浪微博提供的代码。结果发现代码新浪都给你写得差不多了,完全不需要自己去写。


下面就是我做登录接口的流程


首先我需要实现的需求是,这个用户必须是新浪的,并且需要获得该用户的用户名与其他必要的资料,获取完后进入到我的平台进行自动注册或者登录操作。


新浪微博验证用户从官网提供的资料http://open.weibo.com/wiki/OAuth 来看写的也是比较深入的。但是跟我们需要做的事情并没有什么关系,也可以说完全没有关系,因为我们已经有了从新浪下载的SDK了,至于什么事SDK可以去http://open.weibo.com/website.php 看看。


正式开始下载完JAVA版本的SDK后解压开来,解压开来的文件夹名称应该是weibo4j,这是一个Myeclipse项目,所以如果你的是Myeclipse就直接导入项目就很好办了,如果是其它工具的话,也可以导入方便查看。


最主要的类是weibo4j\examples\weibo4j\examples\WebOAuth.java这个类主要是做WEB应用用的,我也是做WEB应用,所以主要说说关于WEB这一块的。

这个类里面有

获取oauth_token和oauth_token_secret参数的

public static RequestToken request(String backUrl) {        try {            System.setProperty("weibo4j.oauth.consumerKey", Weibo.CONSUMER_KEY);            System.setProperty("weibo4j.oauth.consumerSecret", Weibo.CONSUMER_SECRET);            Weibo weibo = new Weibo();            RequestToken requestToken = weibo.getOAuthRequestToken(backUrl);            /*System.out.println("Got request token.");               System.out.println("Request token: " + requestToken.getToken());               System.out.println("Request token secret: "                       + requestToken.getTokenSecret());*/            return requestToken;        } catch (Exception e) {            e.printStackTrace();            return null;        }    }

也有获取oauth_token,oauth_token_secret参数的

public static AccessToken requstAccessToken(RequestToken requestToken,                                                String verifier) {        try {            System.setProperty("weibo4j.oauth.consumerKey", Weibo.CONSUMER_KEY);            System.setProperty("weibo4j.oauth.consumerSecret", Weibo.CONSUMER_SECRET);            Weibo weibo = new Weibo();            AccessToken accessToken = weibo.getOAuthAccessToken(requestToken                    .getToken(), requestToken.getTokenSecret(), verifier);            /*System.out.println("Got access token.");               System.out.println("access token: " + accessToken.getToken());               System.out.println("access token secret: "                       + accessToken.getTokenSecret());*/            return accessToken;        } catch (Exception e) {            e.printStackTrace();            return null;        }    }

其次是这个文件夹里面的weibo4j\web\call.jsp与callback.jsp文件,这两个文件主要就是实现用。


还有一个是这个weibo4j\src\weibo4j\Weibo.java这个主要是用来初始配置KEY与Secret跟一些常用方法。

首先修改Weibo.java里面

public static String CONSUMER_KEY = "申请时新浪提供的App Key";public static String CONSUMER_SECRET = "申请时新浪提供的App Secret";

如果你的是Myeclipse你就可以运行项目了。

正常来说就没有问题了,


如果你的是其他开发工具,那么请先将weibo4j\src\weibo4整个这个文件夹拷贝到你的项目里面,这里面有新浪OAuth需要的所有类与方法


然后拷贝WebOAuth.java这个类,接着将call.jsp与callback.jsp里面的代码考到你需要实现的页面或者action里面去。


接着检查一下代码,就可以运行了。很简单的。


如果你看了觉得不懂,那你就用心看看代码,相信你会成功的,如果你实在看不懂,那你还是用心看看代码,最后你总会成功的。







原创粉丝点击