twitter接口开发

时间:2023-03-09 10:01:53
twitter接口开发

前一阵子研究了下twitter接口,发现网上的资料不是很多。遂花了些心血,终于有所收获~ 现在有时间赶紧整理出来便于自己以后查阅,也想帮助有困难的同学们。废话不多说,现在就以最简洁的方式开始了。注意:由于中国国情!访问twitter需要FQ,大家自己想办法。我用的是softEther这个软件,比较给力~

  一.OAuth认证

在Twitter未支持OAuth之前,使用的是Basic Auth认证,不过这都是几年前的事情了(我们不用管它),现在我们只需研究OAuth认证。现在就让我们注册一个twitter application!注册地址:http://dev.twitter.com/apps/new ,填写你twitter用户名和密码进去之后会让你填写name、website、Callback URL等,这些都很随意!值得注意的是callback url可以填写本地的地址,如: http://localhost:8080/receive.jsp。之后填写验证码就可以提交了。不出意外的话几分钟之后twitter就会给你返回一个注册成功页面,下面是我的成功页面:

twitter接口开发

twitter接口开发

值得注意的是开始Access level只有读的权限,具体要进行设置。进入my application页面->Setting页面,在此可以设置应用图标,权限等操作。好了!到此我们已经用OAuth注册了一个twitter应用了,下一步就要进行开发了。

二.twitter4j官网介绍

不得不说,twitter给开发者提供了相当好的文档和实例代码,接下来就可以逐步体会到。为我们提供的开发twitter接口名为twitter4j,地址为:http://twitter4j.org/en/index.html,里面有日文、韩文、和英文三种语言(很遗憾没有中文)~顺着左边的目录我们依次往下看,我认为比较重要的有:1.main->download,我们下载最新版本twitter4j-3.0.3.zip,这个文件夹里有文档、源码、事例代码、二进制文件等,一会我们将用到它进行开发。2.configuration->generic properties,这里提供了四种读取Access token的方式,同学们可以任意选择,反正我用的是.properties的方式,其中的Access token,Access token secret,Consumer key等见我们注册的应用信息。3.Api support matrix是完整的文档,读者可以参考里面的方法等。其实里面还有很多重要的信息,读者可以自行查阅。以后我们还会遇到更多崭新的技术,那时我们就会发现去相关官网获取信息是多么的重要!

三.本地twitter开发

现在我们在回头看看下载的twitter4j的包,如下图所示:

twitter接口开发 其中twitter4j-async,twitter4j-core,twitter-examples,twitter4j-media-support,twitter4j-stream分别代表异步、twitter核心代码、实例代码、媒体支持和流等,具体的应用读者可自行查阅相关文档。这里我抛砖引玉,实现最基本的几个功能,从而实现快速入门~

打开eclipse->新建java project->取名字twitter->导入twitter4j-core包。至此环境搭建完成,接下来就可以实现twitter开发了!如果自己看文档敲代码的话其一效率不高其二容易出现错误。还好,twitter为我们提供了twitter-examples这个包,里面已经为我们写好了各个功能的实例代码,我们何乐而不为之呢!在这里我仅以获取特定用户信息为例:打开examples-src-timeline-GetUserTimeline.java,把代码复制到eclipse中。在此之前不要忘了在eclipse的根目录下建立一个twitter.properties文件,具体的内容参考前面的内容!因为程序中的twitterFactory()要读取此properties文件中的Access Token。 在GetUserTimeline这个类里,修改下代码如下: statuses = twitter.getUserTimeline("katyperry",new Paging(1));其中getUserTimeline这个方法可以接受两个参数,第一个为所要获取信息的用户名-我想获取凯蒂佩里的信息!第二个为页数。运行该程序结果如下:

twitter接口开发

这就是在eclipse的控制台中得到的凯蒂佩里twitter中第二页的信息。好了~我们已经实现了掌握指定用户信息的方法,还有很多的功能比如程序更新状态、获取流信息等这里就不在讲述了,有兴趣的同学们可以自己去查看文档和实例代码来实现。