微博客户端API weiboclient4j

码农软件 · 软件分类 · 网站API · 2019-03-10 06:42:01

软件介绍

为什么需要另外一个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支持情况

API文档 V2

微博接口 StatusService 完成
评论接口 CommentService 完成
用户接口 UserService 完成
关系接口 FriendshipService 完成
帐号接口 AccountService 完成
收藏接口 FavoriteService 完成
话题接口 TrendService 完成
标签接口 TagService 完成
注册接口 RegisterService 完成
搜索接口 SearchService 完成
推荐接口 SuggestionService 完成
提醒接口 RemindService 完成
短链接口 ShortUrlService 完成
通知接口 NotificationService 完成
公共服务接口 CommonService 完成
位置服务接口 PlaceService 完成
地理信息接口 LocationService 开发中


本文地址:https://www.codercto.com/soft/d/1012.html

数码人类学

数码人类学

[英]丹尼尔·米勒、希瑟·A.霍斯特 / 王心远 / 人民出版社 / 2014-10 / 48.00元

人类学有两大任务,一是理解什么是人,二是理解人性是如何透过多元的文化表现出来。数码科技的蓬勃发展给这两者都带来了新的作用力。《数码人类学》向读者展示了人类与数码科技如何辩证地相互定义。最终我们试图得出一个结论,那便是“数码科技对人类到底意味着什么?” 从社交网站到数字化博物馆;从数字时代政治学到电子商务,浸润式的数码科技,给普通人的生活带来了根本性的改变。仅仅用数据来说明与理解问题显然过于太......一起来看看 《数码人类学》 这本书的介绍吧!

html转js在线工具
html转js在线工具

html转js在线工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具