新浪微博API开发流程

新浪微博API现在运用比较广泛,做一个完整的开发流程Demo

1、第一步注册,就不多说了,注册帐号以及成为开发者帐号,这步操作不会的话请你马上砸掉电脑拔掉网线回家种田。

2、第二步创建应用,开发者帐号创建好了,打开新浪微博开发平台:[url]http://open.weibo.com[/url]
上面菜单栏点击最后一个 管理中心

[img]http://dl2.iteye.com/upload/attachment/0094/2341/bc6f3edb-7c3c-3c4f-9a12-f9d466ea6732.jpg[/img]
完了点击左边菜单栏的我的应用,然后点击创建应用

[img]http://dl2.iteye.com/upload/attachment/0094/2344/200659ad-1449-3259-bed3-13e81a1493aa.jpg[/img]
如果是web的应用的话选择创建网站接入的应用,然后根据新浪微博的要求balabalabala自己去搞定
应用创建完毕。点击应用名称 应用信息>基本信息页面,可以看到应用的相关参数,这些参数将会在第四步用到。

3、第三步下载sdk,回到顶部的菜单栏,点击 文档 ,再点击左边菜单栏sdk,选择java sdk,然后balabala下载,这步操作有问题也请回家种田。

[img]http://dl2.iteye.com/upload/attachment/0094/2346/26f34e47-8410-36b1-be61-38abfa9d7d7b.jpg[/img]

所谓的sdk并非是sdk(个人觉得名称有点误导),而是一个可运行的工程,下载完毕之后解压 ,并导入到eclipse,可以看到两个目录 src和example
src是新浪微博的部分
example是实例,接口的demo

4、第四步配置参数,找到src目录下的config.properties
前三个参数需要自己配置 为第二步里说过的应用参数里的参数
后面的都是默认的不需要改
前三个参数配置如下
client_ID为App Key
client_SERCRET为App Secret
redirect_URI为 OAuth2.0授权的回调URL 应用信息>高级信息>OAuth2.0 授权设置下面的授权回调页 这是一个你自己填写的URL 指向的是你自己服务器 当然在开发阶段我们可以使用任何URL 只要能够让我们了解OAuth授权的流程就好了 这里我们就输入一个http://www.baidu.com 取消授权回调页也是如此 [size=x-small][color=red][b]注意这里的URL的字符串必须是一致[/b][/color][/size]

5、第五步获取AccessToken,正常情况下AccessToken的获取是需要通过OAuth2.0认证的,但是为了更简单我先说一种简单的方法。后面再讲OAuth2.0
还是选择最上面的菜单栏 文档>API>API测试工具
选择创建的应用 点击获取AccessToken 下面的文本框里就是我们要的AccessToken

[img]http://dl2.iteye.com/upload/attachment/0094/2348/070cac07-f429-360f-b3ec-8c8f90475558.jpg[/img]


6、第六步先做一个接口实例
去微博API里随便找一个已有权限的接口,
我随便找了一个 [b]获取用户发布的微博 statuses/user_timeline[/b] 做测试用的

[img]http://dl2.iteye.com/upload/attachment/0094/2350/664ec19e-6e74-31cd-bd34-c64233fe4314.jpg[/img]
点击这个接口查看这个接口详情,可以查看到接口的每个传入参数以及返回参数 这个无需多说。我主要是说说怎么在代码里做这个接口操作

在eclipse里Ctrl+H搜索关键字statuses/user_timeline(这个为接口名,其它所有接口都可按照这种方式找到其对应的java class)找到了src里对应的class,这里我们可以搜索到Timeline.java 并且根据搜索条件我们可以找到getUserTimeline方法 以及其以下好几个方法 比如getUserTimelineByUid、getUserTimelineByName等等 这些方法都是同一个接口 只是根据不同的参数而已 请参照该接口的详细参数
选中getUserTimeline方法 使用eclipse快捷键ctrl+alt+H可以查看到该方法被什么地方使用到了 可以跟踪到 example里的GetUserTimeline.java
在这个类里完全就是调用这个接口的example了

package weibo4j.examples.timeline;

import weibo4j.Timeline;
import weibo4j.examples.oauth2.Log;
import weibo4j.model.Status;
import weibo4j.model.StatusWapper;
import weibo4j.model.WeiboException;

public class GetUserTimeline {

public static void main(String[] args) {
String access_token = "xxxxxxxxxxxxxxx"; //换成自己的AccessToken,第五步说到
Timeline tm = new Timeline();
tm.client.setToken(access_token);
try {
StatusWapper status = tm.getUserTimeline();
for(Status s : status.getStatuses()){
Log.logInfo(s.toString());
}
System.out.println(status.getNextCursor());
System.out.println(status.getPreviousCursor());
System.out.println(status.getTotalNumber());
System.out.println(status.getHasvisible());
} catch (WeiboException e) {
e.printStackTrace();
}
}

}


Run as一下 可以看到控制台都打出了我们要的结果信息

7、第七步OAuth2.0授权
做授权之前请花时间看一下什么是OAuth2.0授权:[url]http://open.weibo.com/wiki/%E6%8E%88%E6%9D%83%E6%9C%BA%E5%88%B6%E8%AF%B4%E6%98%8E#OAuth2.0.E6.A6.82.E8.BF.B0[/url]
在使用新浪微博时我们经常可以在一些网站的登录的地方有 使用新浪微博登录 类似的按钮 点击一下跳转到一个页面 然后在那边登录微博帐号之后 再跳转回来 这样可以省去注册的麻烦 而在我们开发人员看来 OAuth实际上我们获取AccessToken的方式 因为几乎所有的都会有这个参数 新浪不能让我们每个接口都输入一次用户名密码去做安全认证吧 所以是通过AccessToken做安全认证 关于AccessToken的生命周期请参照开放平台 这就是OAuth2.0授权

打开example下面的OAuth4Code类 这个类是用来做授权的Demo类

package weibo4j.examples.oauth2;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

import weibo4j.Oauth;
import weibo4j.model.WeiboException;
import weibo4j.util.BareBonesBrowserLaunch;

public class OAuth4Code {
public static void main(String [] args) throws WeiboException, IOException{
args = new String[2];
args[0]=null;
args[1]="all";//不要问我为什么这样写 自己去看API
Oauth oauth = new Oauth();
BareBonesBrowserLaunch.openURL(oauth.authorize("code",args[0],args[1]));
System.out.println(oauth.authorize("code",args[0],args[1]));
System.out.print("Hit enter when it's done.[Enter]:");
BufferedReader br = new BufferedReader(new InputStreamReader(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();
}
}
}

}



Rs一下这个main方法 将会打开一个页面 就是第四步的redirect_URI配置页面[color=red](如果这里报错或者其它情况 请自己检查一下这里redirect_URI配置是否和 管理中心>应用信息>高级信息>OAuth2.0 授权设置下面的授权回调页一致)[/color]

打开的这个Url后面有一个code参数 复制code的值 回到eclipse控制台
这个时候控制台正等待你输入一个值 输入复制的这个code
控制台会继续打印出你要的AccessToken

{"access_token":"xxxxx","remind_in":"xxxx","expires_in":157679999,"uid":"xxxx","scope":"follow_app_official_microblog"}
每个参数是什么意思请参照API
至此OAuth2.0认证完成
如果在开发中遇到什么问题 欢迎留言回复 我们一起研究一下
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值