- 授权协议: Apache
- 开发语言: Java
- 操作系统: 跨平台
- 软件首页: https://github.com/hoverruan/weiboclient4j
- 软件文档: https://github.com/hoverruan/weiboclient4j
软件介绍
为什么需要另外一个Java版本的微博客户端?
新浪微博官方推荐的Java客户端 weibo4j 一直没有发布到maven仓库,而我们是重度maven用户,因而重新发明了这个新的轮子。
通过maven引用weiboclient4j
在项目pom.xml里面加入依赖:
com.github.hoverruan weiboclient4j 0.4.13
使用
Weiboclient4j支持新浪微博API V1和V2(未完成),目前推荐使用V2版本的接口:
// 使用你的应用的api key和secret String apiKey = "xxxxxxx"; String apiSecret = "xxxxxxxx"; WeiboClient client = new WeiboClient(apiKey, apiSecret);
OAuth2例子:
String authorizationCallback = "..."; // 你的Callback地址
String state = "...";
String url = client.getAuthorizationUrl(ResponseType.Code, DisplayType.Default, state, authorizationCallback); // 浏览器重定向到url; 用户授权; 然后返回callback地址
String code = ... // 从新浪的回调请求里面获得code String accessTokenCallback = "..."; // 或者Access Token的Callback地址
SinaWeibo2AccessToken accessToken = client.getAccessTokenByCode(code, accessTokenCallback);
System.out.println("Access token: " + accessToken.getToken());
System.out.println("User Uid: " + accessToken.getUid());
System.out.println("Expires in: " + accessToken.getExpiresIn());
System.out.println("Remind in: " + accessToken.getRemindIn());
获取用户Timeline例子:
StatusService service = client.getStatusService(); Timeline friendsTimeline = service.getFriendsTimeline();
更多的使用例子可以参考 weiboclient4j.examples.OAuth2CommandLine
API参数对象化
WeiboClient里面,大部分的方法都没有Javadoc,取而代之的是大部分的参数都是特定的对象,这样做的原因是因为:
写Javadoc太麻烦
一些API的参数较多,如果使用基本类型容易混淆各个参数的含义
IDE对已知类型的对象、Enum能提供更友好的提醒和自动完成
所有的参数对象在 package weiboclient4j.params 下面;举一个例子:
使用静态引入 CoreParameters.\*:
import static weiboclient4j.params.CoreParameters.*;
FriendshipService service = client.getFriendshipService();
Friendship friendship;
friendship = service.getFriendship(sourceUid(12345), targetUid(67890));
// 或者
friendship = service.getFriendship(sourceScreenName("xxx"), targetScreenName("yyy"));
使用 P:
import weiboclient4j.params.P;
FriendshipService service = client.getFriendshipService();
Friendship friendship;
friendship = service.getFriendship(P.sourceUid(12345), P.targetUid(67890));
// 或者
friendship = service.getFriendship(P.sourceScreenName("xxx"), P.targetScreenName("yyy"));
分页对象 Paging
分页相关的参数,全部通过 Paging 对象封装:
Paging paging = Paging.create() .sinceId(12345) .count(25); Timeline timeline = service.getFriendsTimeline(paging, BaseApp.No, Feature.All); // 后两个参数可省略
新浪微博API V2支持情况
| 微博接口 | StatusService | 完成 |
| 评论接口 | CommentService | 完成 |
| 用户接口 | UserService | 完成 |
| 关系接口 | FriendshipService | 完成 |
| 帐号接口 | AccountService | 完成 |
| 收藏接口 | FavoriteService | 完成 |
| 话题接口 | TrendService | 完成 |
| 标签接口 | TagService | 完成 |
| 注册接口 | RegisterService | 完成 |
| 搜索接口 | SearchService | 完成 |
| 推荐接口 | SuggestionService | 完成 |
| 提醒接口 | RemindService | 完成 |
| 短链接口 | ShortUrlService | 完成 |
| 通知接口 | NotificationService | 完成 |
| 公共服务接口 | CommonService | 完成 |
| 位置服务接口 | PlaceService | 完成 |
| 地理信息接口 | LocationService | 开发中 |
Python高性能编程
【美】 戈雷利克 (Micha Gorelick)、【美】 欧日沃尔德(Ian Ozsvald) / 人民邮电出版社 / 2017-7-1 / 79
本书共有12章,围绕如何进行代码优化和加快实际应用的运行速度进行详细讲解。本书主要包含以下主题:计算机内部结构的背景知识、列表和元组、字典和集合、迭代器和生成器、矩阵和矢量计算、并发、集群和工作队列等。最后,通过一系列真实案例展现了在应用场景中需要注意的问题。 本书适合初级和中级Python程序员、有一定Python语言基础想要得到进阶和提高的读者阅读。一起来看看 《Python高性能编程》 这本书的介绍吧!
