• Stars
    star
    186
  • Rank 207,316 (Top 5 %)
  • Language
    Java
  • Created over 12 years ago
  • Updated almost 8 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Douban Java SDK OAuth2

豆瓣OAuth2 API Java SDK (几乎完全版) v0.727

注意

现在本SDK是基于豆瓣OAuth 2.0 API的v1版,也就是使用GData 和 Atom作为数据传输类型的版本,使用JSON的v2版本尚未支持。 由于主作者没有更多时间来更新这个SDK,欢迎大家Fork本SDK,如果您做了更新,欢迎发Pull Request给我,我会及时Merge.

功能/优点

  • 豆瓣Oauth2认证流程 - 用户登录 从引导用户,用户批准权限换code到用code换accessToken
  • 完备的模型(Model)以及转换器(Parser) - 无需担心数据转换和提取 完美转换豆瓣API所使用的GData/Atom类型的xml以及json致简单易读易懂易用的JavaBean
  • '豆瓣社区/书影音/豆瓣说'全覆盖 - 全面支持豆瓣开放了的API 几乎支持全部豆瓣开放平台中开放了的API
  • 错误处理 - 轻松了解为何出错 对各种Exception的包装,使得错误信息明了,使用简单(无需分门别类catch一大堆Exception)
  • 防误调用 - 减少调用中的问题 精心设计的调用接口,使得无需阅读大量文档也可以轻松使用
  • 多线程/并发支持 - 虽然没测大量并发 但是,谁用谁知道。在没有bug的情况下服务应该是线程安全的 :)

安装使用

有两种方式来整合SDK到您自己的项目中:

  • 使用Maven编译打包 - (**推荐**) 由于项目本身就是一个Maven项目,所以使用Maven最方便. 如果您的项目本身就是一个Maven项目,那么直接在您项目的pom.xml中加入依赖:
<dependency>
  <groupId>com.zhibo</groupId>
  <artifactId>Douban4jOAuth2</artifactId>
  <version>1.0-SNAPSHOT</version>
</dependency>

然后编译SDK,编译时请务必跳过所有test(不然会通不过无法编译,因为很多测试用例都是需要accessToken的),编译命令使用mvn package或mvn install,根据您自己的需要(如果您不明白两者的区别,请google Maven的基础知识)。例子如下:

mvn package -Dmaven.test.skip=true
  • 在您的项目中包含SDK全部源码 (**如果能使用Maven请尽量使用Maven,尽量不要使用这种方式**) 那么,您需要自己下载以下依赖:
    • commons-codec-1.9.jar
    • commons-lang-2.6.jar
    • google-http-client-1.10.3-beta.jar
    • gson-2.4.jar
    • guava-14.0.1.jar
    • httpclient-4.5.1.jar
    • httpcore-4.4.3.jar
    • jackson-core-asl-1.9.13.jar
    • json-lib-2.4-jdk15.jar
    • protobuf-java-2.4.1.jar
    • xmlpull-1.1.3.1.jar

可以到这儿下载:http://www.mvnrepository.com/

OAuth认证流程

  1. 初始化:
OAuthDoubanProvider oauth = new OAuthDoubanProvider();
oauth.setApiKey("xxx").setSecretKey("xxx");//设置Apikey和secretKey.
/*
也可以在DefaultConfigs中直接填入您的apikey和secretKey,那么就不需要每次都设置这两个值.
*/
oauth.addScope(RequestGrantScope.BASIC_COMMON_SCOPE).addScope(......).//设置权限范围
oauth.setRedirectUrl("http://www.dongxuexidu.com");//设置回调地址
.........
  1. 引导用户至豆瓣认证页面,该页面地址可以通过以下代码拿到:
String redirectUrl = oauth.getGetCodeRedirectUrl();
  1. 通过你的回调地址获得code.
String code = howeverYouGetIt();
  1. 用code换accessToken.
AccessToken at = oauth.tradeAccessTokenWithCode(code);

整个流程在PlayGround.java里面的testAccessToken()方法内有详细可以测试的例子。

豆瓣API调用

请详见Test目录下的全部测试用例

其他说明

  • 参数类型 方法参数中类型为基本类型(如int, long)的说明该参数为必须,参数为包装类型(Integer, Long)的说明可为null且不会有任何问题。
  • 缺豆瓣说里面部分评论相关API 懒了没写
  • 未测试方法 部分未测试方法前含有@UnTested的Annotation,其余皆为已经测试通过的.
  • 未实现部分分支 如豆邮过多需要验证码的引导,如上传本地图片至豆瓣说广播等.
  • 使用实例 使用实例都可以在PlayGround,java和Test目录下找到.
  • 欢迎 有兴趣的同学来一起继续完善这个SDK

开源使用协议

MIT License

Contributors