一、获得开发应用所需的“通行证”App Key和App Secret

首先必须要有新浪的账号。再打开http://open.weibo.com/登录你的账号。

点击“我是开发者”:

java如何获取微博热点 微博java客户端_java如何获取微博热点

点击“创建应用”:

java如何获取微博热点 微博java客户端_System_02

点击“客户端”:

java如何获取微博热点 微博java客户端_当前用户_03

这时,会弹出一个填写开发者信息的页面:

java如何获取微博热点 微博java客户端_Time_04

填写完再验证完邮箱,来到创建应用的页面:

java如何获取微博热点 微博java客户端_java_05

点击“应用信息”下的“基本信息”,找到AppKeyAppSecret

二、下载SDK

接着:到http://open.weibo.com/wiki/SDK下再所需的SDK,这里是以Java为例:

可以直接到http://code.google.com/p/weibo4j/中下载到所需的JavaSDK。

将SDK导入到你所建立的,要进行开发客户端的Java项目中,点击文件“config.properties”如下:

java如何获取微博热点 微博java客户端_java_06

在其中填写:

java如何获取微博热点 微博java客户端_System_07

三、获取当前用户信息及发布一条微博的简单示例:

在AccessToken中添加方法:

public String getUid() { return uid; }

最后修改OAuth4Code代码如下:

java如何获取微博热点 微博java客户端_java_08

package weibo4j.examples.oauth2; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import weibo4j.Oauth; import weibo4j.Timeline; import weibo4j.Users; import weibo4j.Weibo; import weibo4j.http.AccessToken; import weibo4j.model.Status; import weibo4j.model.User; import weibo4j.model.WeiboException; import weibo4j.util.BareBonesBrowserLaunch; public class OAuth4Code { publicstatic void main(String [] args) throws WeiboException, IOException{ Oauthoauth = new Oauth(); BareBonesBrowserLaunch.openURL(oauth.authorize("code")); System.out.println(oauth.authorize("code")); System.out.print("Hitenter when it's done.[Enter]:"); BufferedReaderbr = new BufferedReader(new InputStreamReader(System.in)); Stringcode = br.readLine(); Log.logInfo("code:" + code); AccessTokenaccessToken = null; try{ accessToken= oauth.getAccessTokenByCode(code); }catch (WeiboException e) { if(401== e.getStatusCode()){ Log.logInfo("Unableto get the access token."); }else{ e.printStackTrace(); } } Stringaccess_token = accessToken.getAccessToken(); Weiboweibo = new Weibo(); weibo.setToken(access_token); Stringuid = accessToken.getUid(); Usersum = new Users(); try{ Useruser = um.showUserById(uid); //获取当前用户的信息 System.out.println("当前用户的名字:"+user.getName()); System.out.println("当前用户所发的微博数:"+user.getStatusesCount()); System.out.println("当前用户关注数:"+user.getFriendsCount()); System.out.println("当前用户粉丝数:"+user.getFollowersCount()); }catch (WeiboException e) { e.printStackTrace(); } //测试发送微博 Timelinetm = new Timeline(); System.out.print("请输入所要发的微博的文本内容:[Enter]:"); br= new BufferedReader(new InputStreamReader(System.in)); StringnewStatus = br.readLine(); tm.UpdateStatus(newStatus); } }



点击运行,这是会弹开一个页面进行用户授权(PS:最开始很多人可能会以为这里的用户授权是指你的应用给用户授权,其实不然,这里是用户给你的应用授权,以允许你的应用获取该用户的信息):

java如何获取微博热点 微博java客户端_Time_09

注意:这里使用的新浪账号必须当前应用的账号或者你的应用的“测试用户”,每个未通过应用审核的应用可以有15位测试用户。可以在应用信息中的“高级信息”中添加“测试用户”。

输入完账号密码,点击授权,注意了,这时会出现以下页面(错误页面。。。):

java如何获取微博热点 微博java客户端_java如何获取微博热点_10

看到地址栏上code=的东西,这正是我们所需要的,复制它,在控制台上黏贴,并按下Enter键,就可到看到当前用户的一些基本信息。

其它更详细的数据的获取方法可以参看新浪开发平台提供的API文档:http://open.weibo.com/wiki/API%E6%96%87%E6%A1%A3_V2

最后在控制台输入你所要发步的微博文本,测试下发送新的微博(主要的代码如下,已经存在于上面的OAuth4Code 类中):

Timeline tm = new Timeline(); System.out.print("请输入所要发的微博的文本内容:[Enter]:"); br = new BufferedReader(new InputStreamReader(System.in)); String newStatus= br.readLine(); tm.UpdateStatus(newStatus);

记得要输入完后按下Enter键,最后可以在自己的微博首页里看到:

java如何获取微博热点 微博java客户端_java_11

四、疑问

在此,我想请问下各位大牛:有没有方法不通过浏览器,而是直接使用Java程序获取到那个code?(此问题暂时得到解决了!!!)