您的位置:首页 > 其它

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

2011-01-09 23:55 375 查看
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);

}



本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/sdhjob/archive/2011/01/09/6125983.aspx
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: