新浪微博官方推荐的Java客户端 weibo4j 一直没有发布到maven仓库,而我们是重度maven用户,因而重新发明了这个新的轮子。
在项目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
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.create() .sinceId(12345) .count(25); Timeline timeline = service.getFriendsTimeline(paging, BaseApp.No, Feature.All); // 后两个参数可省略
微博接口 | StatusService | 完成 |
评论接口 | CommentService | 完成 |
用户接口 | UserService | 完成 |
关系接口 | FriendshipService | 完成 |
帐号接口 | AccountService | 完成 |
收藏接口 | FavoriteService | 完成 |
话题接口 | TrendService | 完成 |
标签接口 | TagService | 完成 |
注册接口 | RegisterService | 完成 |
搜索接口 | SearchService | 完成 |
推荐接口 | SuggestionService | 完成 |
提醒接口 | RemindService | 完成 |
短链接口 | ShortUrlService | 完成 |
通知接口 | NotificationService | 完成 |
公共服务接口 | CommonService | 完成 |
位置服务接口 | PlaceService | 完成 |
地理信息接口 | LocationService | 开发中 |
基于Java的新浪微博客户端:简洁易用、实现了基本的功能。更多开源参看http://binary.duapp.com/?p=244
新浪微博客户端,OAuth2.0,详见github。要换新的app key以及app secret才能正常使用。 [Code4App.com]
采用开源中国客户端的UI,修改了个腾讯微博客户端,需要熟悉腾讯开放平台API的同学可以看看,算是对社区的回馈吧!运行源程序需要到腾讯微博开发平台申请账号! 相关学习资料请参考我的博客: http://my.oschina.net/zhongwenhao/blog?catalog=351790 以实现的功能有: 1、Oauth2.0授权登录 2、发表微博(支持QQ表情) 3、浏览微博(支持自动下来刷
高仿新浪微博手机客户端。目前更新到第二期,实现的功能包括: 1. 微博首页列表布局,即UITableViewCell的自定义; 2. 自定义导航栏(UINavigationBar)上的控件; 3. 点击导航栏(UINavigationBar)弹出菜单; 4. 通过XIB 极少量代码实现完全自定义tabbar; 5. 首页微博:上拉刷新,菊花同步动画,刷新结束浮动层提醒,声音提示; 6. 消息页面:
我有一个包含10个微服务的微服务架构,每个微服务提供一个客户端。在由微服务团队管理/控制的客户机内部,我们只接收参数并将它们传递给一个通用http调用程序,该调用程序接收endpoint和N个params,然后进行调用。所有微服务都使用http和web api(我猜技术并不重要)。 对于我来说,作为微服务团队提供一个客户是没有意义的,应该是消费者的责任,如果他们想创建一些抽象或者直接调用它是他们的
Lazy 微服务客户端 Sometimes you have to load initial data before you can create your @Client(). In this case, you can use ClientProxyFactory, which provides create() method. 有时候在创建@Client()之前你需要加载原始数据。这时,你可