简单的新浪微博OAuth认证实现


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认证实现,布布扣,bubuko.com

时间: 2024-10-13 12:44:06

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

新浪微博oauth认证实现APP第三方登陆

最近在做一个图片分享的APP,为增加用户入口,便于注册,先采用新浪微博作为第三方的入口. 我采用的注册流程如下: 微博的开发者管理平台登录注册过程在这里就不提了,各位看官请自行百度. 介绍WebView的方式进行认证注册 考虑到日后可能添加其他第三方入口,在登陆页面添加如下内容: 1 btnWeibo.setOnClickListener(new View.OnClickListener() { 2 3 @Override 4 public void onClick(View v) { 5 In

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

拿nodejs快速搭建简单Oauth认证和restful API server攻略:http://blog.csdn.net/zhaoweitco/article/details/21708955 最近一直在鼓捣这个东西,拿出来分享下一下经验吧,其实很简单,一点也不难. 首先需求是这样,给自己的网站要增加API服务,API分为两种,公共的和私有授权的,授权的使用Oauth方法认证身份,API格式均为JOSN和JSONP. 嗯,别的语言我也没怎么学过,首先是找合适的框架进行实现吧.本身网站使用的e

简单分析第三方登录之oauth认证

关键词:oauth.第三方登录 1.是什么? oauth认证就是一种授权认证机制. 简单分析:用户告诉系统,同意授权第三方应用(eg:本地服务器)进入系统(eg:qq/微信),获取这些数据,系统从而产生一个短期的进入令牌(token),用来代替密码,供第三方应用使用,供第三方应用获取系统数据的一种授权认证机制. 2.为什么? 使用这个认证机制可以方便某些用户省去手动注册账号的麻烦,可以直接利用用户已有的信息来自动帮助用户进行注册,为用户带来便利. 3.怎么做? (1)基本流程: 请求用户授权:用

新浪微博授权认证的实现

最近准备找工作,着手看了下新浪微博的资料,前几天通过调用客户端实现了微博分享功能.这两天在网上搜了些资料,结合官方的开发文档,实现了授权验证部分. 下面按类作为章节来总结下验证这部分的实现: Constants类 这个类内容很少,但起到很大作用,能否成功获取授权关键就在于该类中的一些变量如APP_KEY和SECRET的赋值是否正确. package com.example.shareweibobyapi; //授权类 public interface Constants { /** 当前 DEM

在ASP.NET MVC5应用程序中快速接入QQ和新浪微博OAuth

这篇文章演示如何在你的ASP.NET MVC5应用程序中支持用户使用腾讯QQ和新浪微博的open authentication. 起步 安装Visual studio 2013 higher或者Visual studio express 2013 for web就不再赘述了,点击这里下载. 创建应用程序 打开vs,在Template中选择C#->asp.net web application ,命名为OauthDemo,并点击OK 在弹出窗口中选择MVC template,并且选择"Cha

Android腾讯微博之1.0 Oauth认证

(1)什么是Oauth? Oauth是一个开放的认证协议,让你可以在Web或桌面程序中使用简单而标准的,安全的API认证. 同时,任何第三方都可以使用Oauth认证服务,任何服务提供商都可以实现自身的Oauth认证服务,因而Oauth是开放的. 业界提供了Oauth的多种实现如PHP.JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间,因而Oauth是简易的. 互联网很多服务如Open API,很多大公司如Google,Yahoo,Microsoft等都提供了Oau

【好文要转】Python:模拟登录以获取新浪微博OAuth的code参数值

[转自]http://www.tuicool.com/articles/zAz6zi [原文]http://blog.segmentfault.com/hongfei/1190000000343851 在使用新浪微博提供的API时,首先需要通过认证和授权,关于这部分,大家可以参考下 这篇文章 在完成以上步骤后,大家会发现每次要使用微博API之前,都需要我们手动输入code参数的值才行. 其中,code参数的值是在浏览器的地址栏中,也就是说,只要我们能使用代码正确地模拟浏览器发包,那么也就能得到c

ios 新浪微博Oauth授权失败 (error:redirect_rul_mismatch)

原因:移动端应用Oauth授权,不需要填写回调地址,不像web端,把下面的地址删除即可 ps:实际上他是有回调的,地址为:http:// ios 新浪微博Oauth授权失败 (error:redirect_rul_mismatch),布布扣,bubuko.com

Oauth认证的时候报错:timestamp_refused

今天服务器大规模报错,大部分用户无法登陆,小部分可以登陆,很是奇怪. 查看log,调试代码,发现问题是在oauth认证的时候出了问题,报 timestamp_refused. google了下,问了高手,问题定位在服务器的时间可能有问题 执行date,发现比其他服务器快了5分钟 [[email protected] ~]# date Mon May 19 10:05:48 UTC 2014 同步下时间就解决问题了. [[email protected] ~]# ntpdate time.wind