`
v_vip
  • 浏览: 1384 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

新浪微博调用

    博客分类:
  • JAVA
 
阅读更多

                                 新浪微博调用

 之前有个活动需要调用新浪和腾讯微博的相关功能,现在在此记录一下调用的相关过程。

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数据,拿到后自己去转换!

 

 

  • 大小: 99.4 KB
  • 大小: 8.3 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics