java调用新浪微博API

一年前做数据挖掘用的是清华的数据集,自己看了看新浪微博的API,不太会弄,也就没弄它。今年没想到又需要收集数据。不能用清华的了。只好自己一点点琢磨。


其实最标准的,最简洁的描述在这里:去新浪微博开放平台,创建一个站内应用,获得App Key和App Secret后,到https://code.google.com/p/weibo4j/ 下载Java的SDK,并按照该页面中的“使用方法”说明的步骤去做即可。

但看不懂。


在网上参考了很多文章,主要是这篇:http://blog.csdn.net/kobeguang/article/details/7643782   博主写的也不错,我按这个步骤走了一遍,基本成功,但还是走了一些弯路。在此把我个人的心得体会放上来,供大家一阅。但同时也有不明白的地方,请多多指教。


首先要下载新浪微博的SDK,我用的是java,所以就下载java版本的SDK,地址在这里:https://weibo4j.googlecode.com/files/weibo4j-oauth2-beta2.1.1.zip

下载下,解压后倒入到MyEclipse工程中。我直接用的MyEclipse,不清楚Eclipse可不可以,好像没什么区别。

这个工程中就有各种API调用的例子,只要有accessToken就好。但现在关键就是没有accessToken。下面就是获得accessToken的方法。


接下来要创建一个新浪微博的应用,只有创建了应用,才能有获得accessToken。

到 http://open.weibo.com/ 创建一个新应用,要创建“站内应用”。我第一次就弄错了,创建了一个移动应用,结果没有成功获得accessToken。站内应用在那个网页的最上面,把鼠标移至“微连接”字样,下面弹出来的四个应用,选“站内应用”,跳转到站内应用后点创建应用。

先填写应用名称,然后“把该填的都填上”。之前那篇博客是这么写的,我知道什么是该填的,但不知道怎么填。

主要困惑在这里:“站内地址”怎么写,“应用实际地址”怎么写。站内地址其实随便加一个后缀就好了,“应用实际地址”有人填的是自己的网页地址,我填的是www.baidu.com。这个好像没关系。但如果填的地址是不存在的网页,我也不清楚会怎么样。总之我用百度的就O了。


创建以后,现在可能就是测试阶段,这会儿应该就可以试着去获取accessToken了。当然我是把应用信息都补充完整以后才去获取的,没写完整的话,我觉得应该不影响。但不能保证。

注册完应用,会有App Key以及App Secret,记下来。


然后,打开刚才我们导入MyEclipse的项目。

首先要把你的应用的App Key和App Secret在项目中设置好。具体方法是打开工程中的src/config.properties,将之前记下的App Key和App Secret填写到client_ID和client_SECRET中,将之前填写的“应用实际地址”填写到redrect_URI中,保存。

然后,点开examples/weibo4j.examples/oauth2/OAuth4Code.java,看到主方法中应该有这样的代码

BareBonesBrowserLaunch.openURL(oauth.authorize("code",args[0],args[1]));

System.out.println(oauth.authorize("code",args[0],args[1]));

其实上面的第二句可以忽略,那只是个输出语句。

把上面两句的args[0]和args[1]都改成""(即空字符串)就可以了。


运行,会打开一个界面,需要你输入创建应用时的微博账号密码,进行授权。

然后会跳至之前设置好的“应用实际地址”,像我的就跳到了百度首页。

这会儿观察页面的URL,有个code=XXX,把code后面的东西复制下来。切换回MyEclipse,它输出一句话,最后是XXX[Enter]: 然后你把code后面那串粘贴在控制台,按回车,稍等片刻,就会出来一大堆东西,最后一行就会有传说中的AccessToken。


这个东西一定要记下来。


然后就是发微博了,具体可以参见开头说的那篇博客。

大致方法是,在weibo4j.examples.timeline包下,UpdateStatus类下,看主方法的前两行,修改代码(或者添加命令行参数也行,随喜好)将access_token赋值为刚才记下的AccessToken,statuses赋值为你要发的微博,运行。

再用浏览器打开微博主页,就会发现新发布了一条微博。


其他API函数类似,只要把access_token换成你之前获得的那串AccessToken就好了。


如果想用别的账号发布,应该是重复执行OAuth4Code.java,然后填写另一个ID的账号密码进行授权,之后再输入code后面的一串信息,然后获得另一个AccessToken。但测试阶段可能要先在我的应用那里,点击”应用信息“,”测试信息“,在里面添加相应账号,添加了以后再授权才会奏效。

注:最后一段本人没有亲测。只是推测。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值