首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 互联网 >

对新浪,腾讯微博惯用接口的统一封装

2012-08-29 
对新浪,腾讯微博常用接口的统一封装??? 在做一个需要调用微博接口的项目中.发现了一些问题?? ? ?? 1.腾讯

对新浪,腾讯微博常用接口的统一封装

??? 在做一个需要调用微博接口的项目中.发现了一些问题

?? ? ?? 1.腾讯微博sdk的封装粒度不够,需要在其上做二次开发

? ? ??? 2.新浪,腾讯微博没有实现统一的接口,在做项目的时候需要将它们分开来实现,代码看起来很别扭

???? 我所做的就是解决了以上两个问题,所以现在做微博应用开发非常方便

统一接口

?

/** * @Description:微博接口 */public interface Weibo {   /**    * 得到RequestToken    * @param callbackUrl    * @return    */   public RequestToken getRequestToken(String callbackUrl) throws Exception;      /**    * 得到AccessToken    * @param requestToken    * @param verifier    * @return    * @throws Exception    */   public AccessToken getAccessToken(RequestToken requestToken,String verifier) throws Exception;     /**    *     * @param accessToken    */   public void setAccessToken(AccessToken accessToken);   /**    * 得到用户信息    * @return    */   public User getUserInfo() throws Exception;   /**    * friendNum是否已经被关注    * @param friendNum    * @return    */   public boolean isFriends(String friendNum) throws Exception;   /**    * 关注friendNum    * @param friendNum    */   public void createFriendship(String friendNum) throws Exception;      /**    * 发微博    * @param info 微博信息    * @param file 上传的图片文件,不上传文件传null    */   public void publishMsg(String info, File file) throws Exception;}
?

?

开发步骤如下:

???? 1.设置项目的key和secret(key,secret是用微博帐号申请的),只需要初始化一次

???????? 新浪:

?

System.setProperty("weibo4j.oauth.consumerKey", "xxx");System.setProperty("weibo4j.oauth.consumerSecret", "xxxxxxxxxx");
?

??????? 腾讯:

?

System.setProperty("qqweibo.oauth.consumerKey","xxx");System.setProperty("qqweibo.oauth.customSecret","xxxxxxxxxx");

?

2.传入微博帐号登录后需要返回的地址callbackUrl,得到requestToken和授权url

??? 新浪:

?

 Weibo weibo = new SinaWeibo(); try { RequestToken requestToken = weibo.getRequestToken(callbackUrl); System.out.println(requestToken.getReqToken()+"-->"+requestToken.getReqTokenSecret()); System.out.println(requestToken.getAuthorizationURL());} catch (Exception e) {e.printStackTrace();}

?

?腾讯:

?

Weibo weibo = new QQWeibo();try {RequestToken reqToken = weibo.getRequestToken(callbackUrl);System.out.println(reqToken.getReqToken()+"-->"+ reqToken.getReqTokenSecret());System.out.println(reqToken.getAuthorizationURL());} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}
?

3. ?? 在浏览器上输入授权url,用微博帐号登录后跳转到callbackUrl,获取callbackUrl后面的参数oauth_verifier的值,

??????? 通过传入requestToken,oauth_verifier的值得到AccessToken

???????? 新浪:

?

 Weibo weibo = new SinaWeibo(); try { AccessToken accessToken = weibo.getAccessToken(requestToken, oauth_verifier); System.out.println(accessToken.getAccessToken()+"-->"+ accessToken.getAccessTokenSecret());} catch (Exception e) {e.printStackTrace();}

?????? 腾讯:

?

   Weibo weibo = new QQWeibo();try {AccessToken accessToken = weibo.getAccessToken(reqToken, oauth_verifier);System.err.println(accessToken.getAccessToken()+"-->"+ accessToken.getAccessTokenSecret());} catch (Exception e) {e.printStackTrace();}

????? 得到accessToken对象后就可以保存下来,以后调用关注好友接口,发微博接口都需要用到

4.调用获取用户接口

??? 新浪:

?

Weibo weibo = new SinaWeibo(); try { weibo.setAccessToken(accessToken); User user = weibo.getUserInfo(); System.out.println(user.getHuaming());} catch (Exception e) {e.printStackTrace();}
?

腾讯:

?

Weibo weibo = new QQWeibo();try {                        weibo.setAccessToken(accessToken);                       ?User user = weibo.getUserInfo();System.out.println(user.getHuaming());} catch (Exception e) {e.printStackTrace();}

?5.调用关注接口,发微博等接口同4

?

?最后我把封装的jar包发给大家

?

?

1 楼 txc_tang 2011-10-11   少了包。
java.lang.ClassNotFoundException: com.mime.qweibo.OauthKey 2 楼 liudeh_009 2011-10-12   要把新浪,腾讯微薄的sdk包同时加上 3 楼 zhaoshg 2011-10-24   大侠能否提供源码? 4 楼 hejt121 2011-11-28   有源码吗,大侠,发一份 365353650@qq.com谢谢 5 楼 liudeh_009 2011-11-30   反编译一下就行了

热点排行