System.setProperty("weibo4j.oauth.consumerKey", Weibo.CONSUMER_KEY);
System.setProperty("weibo4j.oauth.consumerSecret", Weibo.CONSUMER_SECRET); Weibo weibo = new Weibo();
// set callback url, desktop app please set to null
// http://callback_url?oauth_token=xxx&oauth_verifier=xxx
//1。根据app key第三方应用向新浪获取requestToken
RequestToken requestToken = weibo.getOAuthRequestToken(); System.out.println("1.......Got request token成功");
System.out.println("Request token: "+ requestToken.getToken());
System.out.println("Request token secret: "+ requestToken.getTokenSecret());
AccessToken accessToken = null;
//2。用户从新浪获取verifier_code 如果是Android或Iphone应用可以callback =json&userId=xxs&password=XXX
System.out.println("Open the following URL and grant access to your account:");
System.out.println(requestToken.getAuthorizationURL());
BareBonesBrowserLaunch.openURL(requestToken.getAuthorizationURL());
//3。用户输入验证码授权信任第三方应用
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
while (null == accessToken) {
System.out.print("Hit enter when it's done.[Enter]:");
String pin = br.readLine();
System.out.println("pin: " + br.toString());
try{
//4。通过传递requestToken和用户验证码获取AccessToken
accessToken = requestToken.getAccessToken(pin);
} catch (WeiboException te) {
if(401 == te.getStatusCode()){
System.out.println("Unable to get the access token.");
}else{
te.printStackTrace();
}
}
} System.out.println("Got access token.");
System.out.println("Access token: "+ accessToken.getToken());
System.out.println("Access token secret: "+ accessToken.getTokenSecret());
//使用AccessToken来操作用户的所有接口
/* Weibo weibo=new Weibo(); 以后就可以用下面accessToken访问用户的资料了
* weibo.setToken(accessToken.getToken(), accessToken.getTokenSecret());
//发布微博
Status status = weibo.updateStatus("test message6 ");
System.out.println("Successfully updated the status to ["
+ status.getText() + "]."); try {
Thread.sleep(3000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}*/
System.exit(0);
} catch (WeiboException te) {
System.out.println("Failed to get timeline: " + te.getMessage());
System.exit( -1);
} catch (IOException ioe) {
System.out.println("Failed to read the system input.");
System.exit( -1);
}

简单的新浪微博OAuth认证实现的更多相关文章

  1. iOS:新浪微博OAuth认证

    新浪微博OAuth认证   1.资源的授权 •在互联网行业,比如腾讯.新浪,那用户人群是非常巨大的 •有时候要把某些用户资源共享出去,比如第三方想访问用户的QQ数据.第三方想访问用户的新浪微博数据 • ...

  2. 在IOS中实现新浪微博OAuth认证

    主要讲解在ios中的认证流程,至于如何得到新浪用户授权账号,地址,这些可以见视频0506. 1.用UIWebView访问新浪授权页面https://api.weibo.com/oauth2/autho ...

  3. 新浪微博客户端开发之OAuth认证篇

    新浪微博客户端开发之OAuth认证篇 2013年7月29日新浪微博客户端开发 OAuth2.0授权机制我在这里就不浪费口舌了,有很多大牛都发表过相关的文章解释OAuth2.0认证的流程,我就随便找了一 ...

  4. 拿nodejs快速搭建简单Oauth认证和restful API server攻略

    拿nodejs快速搭建简单Oauth认证和restful API server攻略:http://blog.csdn.net/zhaoweitco/article/details/21708955 最 ...

  5. 一步一步搭建 OAuth 认证服务器

    http://www.fising.cn/2011/03/%E4%B8%80%E6%AD%A5%E4%B8%80%E6%AD%A5%E6%90%AD%E5%BB%BA-oauth-%E8%AE%A4% ...

  6. 服务端API的OAuth认证实现

    http://stackoverflow.com/questions/12499602/body-joints-angle-using-kinect?rq=1 新浪微博跟update相关的api已经挂 ...

  7. 豆瓣api之OAuth认证

    豆瓣api通过OAuth允许第三方应用访问用户数据,所以OAuth认证就是我们整个project的基础了. OAuth认证听起来挺神秘,其实挺简单的. 现在的大型网站的开放平台的认证几乎都是采用OAu ...

  8. Android OAuth认证

    OAuth认证 为了安全地访问在线服务,用户需要在服务上进行身份验证,即要提供他们的身份的证明.对于一个要访问第三方服务的程序来说,安全问题甚至更复杂.不仅仅是用户需要在访问服务前要进行身份验证,而且 ...

  9. 在Phonegap下实现oAuth认证

    原文:http://www.kuqin.com/mobile/20120719/322873.html 前段时间做过两次关于Phonegap的现场交流会议分享.基本上把Phonegap的一些特性和大家 ...

随机推荐

  1. OSX学习02之更新输入法

    OSX下最好的输入法是什么?话说在使用Windows的时候就知道了——它叫鼠须管. 想必大家用Windows的时候,进入系统第一步就是先装输入法吧~ OSX也是一样,自带输入法虽然凑合,但是我们作为A ...

  2. JS操作文件

    ) ;   ;   fso );   f1.Close();   // 读取文件的内容.  // Response.Write("Reading file <br>") ...

  3. 基于vagrant工具在win7下免密登录linux

    一.SSH加密方式 SSH采用的是"非对称密钥系统",即耳熟能详的公钥私钥加密系统,其安全验证又分为两种级别. 1. 基于口令的安全验证 这种方式使用用户名密码进行联机登录,一般情 ...

  4. 【脚本语言对比】BASH,PERL以及PYTHON

    据说: BASH能调用linux的应用程序,这是其最大的优点,也是其最大的缺点. PERL那复杂的语法确实看得让人想吐. python很优美,但是据说对正则的支持不够,没有perl强大. 总结一下学习 ...

  5. 使用JavaMail API发送邮件

    发送邮件是很常用的功能,注册验证,找回密码,到货通知,欠费提醒等,都可以通过邮件来提醒. Java中发送邮件需要使用javax.mail.jar包,读者可以上网搜索或去官方下载,下载地址为: 下面贴上 ...

  6. 解决“运行arm-linux-gcc命令,提示No such file or directory”的问题

    今天在ubuntu14.04上安装arm的交叉编译器arm-linux-gcc,环境变量配置好以后,运行arm-linux-gcc命令,总提示No such file or directory.然后去 ...

  7. Jersey Rest服务类型

    在Rest服务中,资源类是接收Rest请求并完成响应的核心类,而资源类由Rest服务的“提供者”来调度的,这一定义类似于自定义Servlet类,该类会奖请求分派给指定的Controller/Actio ...

  8. LeetCode(7) - Reverse Integer

    题目的要求就是要反转一个Integer,例如输入123,则输出321,这一题比较tricky的地方就是它有可能越界,就是说1234567899,反过来是9987654321是一个越界的Integer, ...

  9. ajax 第一个程序

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  10. html5 canvas 像素随机百分之十显示

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...