最近在开发的项目中涉及到了微博,就在此记录一下有关的点滴。
拿新浪微博为例:首先打开open.weibo.com,创建一个自己的应用,获取自己的APP KEY和APP SECRET,然后去下载Java SDK。
SDK中的config.properties文件中的client_ID填入你的APP KEY,client_SERCRET填入你的APP SECRET,redirect_URI就是回掉地址,即用户授权之后返回的url。
如果你正在开发,要返回到localhost就要在新浪的网站上设置回掉地址:可以打开 http://open.weibo.com/apps/你的APP KEY/info/advanced 进行设置。
运行SDK中example/oauth2/OAuth4Code.java即可进行授权操作,运行之后会自动打开浏览器,填写用户名和密码之后就会调到你设置的回掉地址,并且带上code参数,你需要把code参数复制拷贝到控制台,然后就会获取到accessToken。然后就可以使用accessToken调用API获取数据了。
这里是使用oauth2.0,accessToken存在有效期,测试账号是1天,初级是7天。。。
做到这步就会想了,每次都要输入code多麻烦且不实际,那怎么办呢?我的做法是回掉地址设置成一个action,然后由这个action获取code:
String code = request.getParameter("code"); Oauth oauth = new Oauth(); AccessToken at = oauth.getAccessTokenByCode(code);
然后我会把accessToken信息保存到配置文件中,新浪有个自动延续的机制,在accessToken有效期内,只要再次通过code方式获取accessToken就可以自动帮你延续accessToken的有效期。
accessToken获取到了就可以利用新浪微博的接口进行相关的操作了。。。