新浪微博调用
之前有个活动需要调用新浪和腾讯微博的相关功能,现在在此记录一下调用的相关过程。
1:新浪微博
开发平台首页:http://open.weibo.com/
API文档地址:http://open.weibo.com/wiki/API%E6%96%87%E6%A1%A3_V2
API下载地址:http://open.weibo.com/wiki/SDK
调用新浪微博的api,就得了解一下新浪微博api的授权机制(http://open.weibo.com/wiki/%E6%8E%88%E6%9D%83%E6%9C%BA%E5%88%B6%E8%AF%B4%E6%98%8E)
用新浪微博账号登录,进入管理中心,创建一个应用,应用名称、应用地址(如果是测试的话,随便写个有效地址http://www.baidu.com,等应用弄好了,可以改为正式环境的地址),应用简介,应用说明...
创建完成后可以看到应用的基本信息:记住App Key、App Secret和应用地址。
我下载的是java 的sdk,解压cp到项目中!
然后将config.properties文件中的client_ID 、client_SERCRET ,redirect_URI分别填写上先前创建应用时记录的AppKey、App Secret、应用地址的值。
然后调用example里:oauth2/OAuth4Code.java
publicclassOAuth4Code{
publicstaticvoid main(String[] args)throwsWeiboException,IOException{
Oauth oauth =newOauth();
BareBonesBrowserLaunch.openURL(oauth.authorize("code"));
System.out.print("Hit enter when it's done.[Enter]:");
BufferedReader br =newBufferedReader(newInputStreamReader(System.in));
String code = br.readLine();
Log.logInfo("code: "+ code);
try{
System.out.println(oauth.getAccessTokenByCode(code));
}catch(WeiboException e){
if(401== e.getStatusCode()){
Log.logInfo("Unable to get the access token.");
}else{
e.printStackTrace();
}
}
}}
运行后会弹出浏览器地址跳转到授权认证页面,然后输入你的微博帐号和密码,会调转到你的回调地址页面,url后面会传递code参数
然后在console输入code就能获取到oauth2的accesstoken
然后将accessToken记录下来,放到config.properties文件中,用
接下来即可调用example,再此以user/show接口为例:
publicclassShowUser{
public static void main(String[] args) {
Users um = new Users();
//我将token放到了config文件中,所以获取直接用WeiConfig.getValue
um.client.setToken(WeiboConfig.getValue("client_token"));
try {
//client_uid 微博用户的UID!也可以通过api去查
//http://weibo.com/u/3192030095 每个人官方微博-u/后的数字
User user = um.showUserById(WeiboConfig.getValue("client_uid"));
Log.logInfo(user.toString());
} catch (WeiboException e) {
e.printStackTrace();
}
}
}
weibo.setToken为auth4code获取到的oauth2的accesstoken。
由于目前只开放支持code的oauth认证方式,所以sdk暂时只支持code获取token方式。
获取到的值都是Json数据,拿到后自己去转换!