`
pengfeifei26
  • 浏览: 245355 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

sina微博oauth2 获取accessToken

阅读更多
public String execute() throws Exception {   
		 HttpServletRequest request = ServletActionContext.getRequest();
		 String code = request.getParameter("code");
		 System.out.println(code+"-------------------code");
		//  Map<String, String> token = this.getAccessTokenAndUid(code);
    	//System.out.println("username-------------"+user.getName());
     return "success";   
    }  
	
	
	private Map<String , String> getAccessTokenAndUid(String code){
		
		    String responseDate = "" ;
		
		    Map<String , String> token = new HashMap<String, String>();
		
		           //本机运行时会报证书错误
		
		    /*ProtocolSocketFactory fcty = new MySecureProtocolSocketFactory();
		
		    Protocol.registerProtocol("https", new Protocol("https", fcty, 443));*/
		
		    PostMethod postMethod = new PostMethod("https://api.weibo.com/oauth2/access_token");
		
		    postMethod.addParameter("grant_type", "authorization_code");
		
		    postMethod.addParameter("code",code);
		
		    postMethod.addParameter("redirect_uri","callBackURL");
		
		    postMethod.addParameter("client_id",Weibo.CONSUMER_KEY);
		
		    postMethod.addParameter("client_secret",Weibo.CONSUMER_SECRET);
		
		    HttpClient client = new HttpClient();
		
		    try {
		
		        client.executeMethod(postMethod);
		
		       responseDate = postMethod.getResponseBodyAsString();
		
		    } catch (Exception e) {
		
		        e.printStackTrace();
		
		    }
		
		    if(!responseDate.equals("") && responseDate.indexOf("access_token") != -1){
		
		     //   JSONObject jsonData = JSONObject.fromObject(responseDate);
		
		     //   token.put("accessToken", (String)jsonData.get("access_token"));
		
		       // token.put("uid", jsonData.getString("uid"));
		
		    }
		
		    return  token;
		
		}




http://my.oschina.net/u/873047/blog/102950
登录网站例子:http://www.hackhome.com/InfoView/Article_233790.html



http://my.oschina.net/u/873047/blog/102950 获取用户信息



rivate Map<String , String> getUserWeiBoInfo(Map<String , String> token){
10
    Map<String , String> userData = new HashMap<String, String>();
11
    String UserInfo = "";
12
    String url = "https://api.weibo.com/2/users/show.json?access_token="+token.get("sinaUid")"&uid="+token.get("sinaAccessToken");
13
    GetMethod getMethod = new GetMethod(url);
14
    HttpClient client = new HttpClient();
15
    try {
16
        client.executeMethod(getMethod);
17
        UserInfo = getMethod.getResponseBodyAsString();
18
        JSONObject jsonData = JSONObject.fromObject(UserInfo);
19
        userData.put("name",jsonData.getString("name").toString() );
20
        userData.put("headImg", jsonData.getString("profile_image_url"));
21
    } catch (Exception e) {
22
        e.printStackTrace();
23
    }
24
    return userData;
25
}
在授权用户中发表一篇微博:

01
public String weiboLogin() {
02
    HttpServletRequest request = ServletActionContext.getRequest();
03
    String code = request.getParameter("code");
04
    Map<String, String> token = this.getAccessTokenAndUid(code);
05
    Map<String , String> userInfo = this.getUserWeiBoInfo(token);
06
    this.shareToSina(token);
07
}
08
private void shareToSina(Map<String , String>) throws IllegalArgumentException, HttpException, IOException
09
{
10
    /*ProtocolSocketFactory fcty = new MySecureProtocolSocketFactory();
11
    Protocol.registerProtocol("https", new Protocol("https", fcty, 443));*/
12
    PostMethod postMethod = new PostMethod("https://api.weibo.com/2/statuses/update.json");
13
    postMethod.addParameter("access_token", token.get("sinaAccessToken"));
14
    postMethod.addParameter("status","发表一条微博");
15
    HttpMethodParams param = postMethod.getParams();
16
    param.setContentCharset("UTF-8");
17
    HttpClient client = new HttpClient();
18
    client.executeMethod(postMethod);
19
    postMethod.getResponseBodyAsString();
20
}
分享到:
评论

相关推荐

    新浪微博OAuth授权的Java实现.pdf

    新浪微博OAuth授权机制说明可参考:http://open.t.sina.com.cn/wiki/index.php/授权机制说明为了方便使用,新浪微博提供了网页应用和桌面应用两种OAuth授权方式。 关于OAuth授权的三个接口: 1. oauth/request_...

    android新浪微博Oauth2.0分享文字和图片

    总的来说,实现Android应用中的新浪微博Oauth2.0文字和图片分享,涉及到的步骤包括:申请微博开发者账号、获取App Key和App Secret、引导用户授权、获取Access Token、创建分享内容、以及调用微博SDK进行分享。...

    Android版微博OAuth认证整合实例集

    Android版新浪、网易、腾讯、搜狐微博OAuth认证实例集,想更多了解OAuth认证的朋友,请下载java源码包,在示例中完整解析了OAuth认证的过程:定义URL编码方式,请求url,得到注册应用后服务商提供的key和secret,...

    新浪微博OAuth认证和储存的主要过程详解

    在这个表中,特别要注意`oauth_token`和`oauth_secret`这两个字段,它们分别用来存储从新浪微博API获取的token和token_secret值,这是实现OAuth认证的关键。 认证过程通常包括以下几个步骤: 1. 应用程序需要向...

    新浪微博保存AccessToken数据_Java类

    在新浪微博的API中,开发者需要通过OAuth 2.0进行授权,获取`AccessToken`。这个过程通常包括注册应用、获取App Key和App Secret、重定向用户到授权页面、处理回调并获取`AccessToken`。 `SaveAccessToken.java`...

    (原创)新浪微博 分享功能 本地保存 accesstoken

    2. **accesstoken的存储**:获取到accesstoken后,需要将其安全地存储在用户的设备上,常见的方法有SharedPreferences、SQLite数据库或使用Android提供的KeyStore系统。这部分代码会包含存储和读取accesstoken的逻辑...

    android新浪微博实例,登录,获取微博信息

    在Android平台上实现新浪微博的功能,包括OAuth认证登录以及获取微博信息,是移动应用开发中的常见需求。这个实例项目,"weibo4android",提供了一个完整的解决方案,帮助开发者深入理解和运用相关技术。 首先,...

    使用java代码获取新浪微博应用的access token代码实例

    总之,获取新浪微博应用的Access Token涉及到OAuth2授权流程和发送HTTP POST请求。通过Java的Apache HttpClient库,我们可以方便地实现这一功能。理解并正确使用Access Token对于开发与新浪微博集成的应用至关重要。...

    新浪微博2模拟登陆

    今天我们将聚焦于“新浪微博2模拟登陆”这一主题,学习如何通过编程方式模拟登录并获取AccessToken,以便进行自动化操作或者数据分析。 首先,我们需要了解什么是模拟登陆。模拟登陆是指通过编程代码来模拟用户在...

    weibo-oauth2

    例如,使用`weibo4j-oauth2`的`OAuth2AccessToken`类可以方便地获取和刷新访问令牌,而`Weibo`类则封装了各种API接口,供开发者调用以获取或发布微博、获取用户信息等。 总之,通过理解OAuth2认证机制并利用`weibo4...

    Java获取新浪微博评论

    Java获取新浪微博评论是一个涉及到网络爬虫技术和OAuth2认证授权的过程。在Java中,开发者可以使用第三方库如Weibo4J来实现对新浪微博API的调用,从而获取并处理微博的评论数据。Weibo4J是一个Java接口库,专门用于...

    新浪微博开放平台

    OAuth是一种更加安全、开放的标准,被广泛应用于Twitter、Sina微博、豆瓣、Google等平台。 - **交互过程**: 1. 应用通过APPKEY和APPSECRET换取OAuth_token。 2. 用户在服务商页面上对该OAuth_token进行授权...

    Android新浪微博分享

    在Android平台上,实现新浪微博分享是一项常见的社交功能,它允许用户将内容快速地推送到自己的微博账号,以便与好友们分享信息、图片或者链接。本文将详细介绍如何在Android应用中集成新浪微博分享功能,包括授权...

    Java和PHP两种方式实现上传图片到新浪微博的图床

    import com.sina.weibo.sdk.auth.Oauth2AccessToken; import com.sina.weibo.sdk.constant.WBConstants; import com.sina.weibo.sdk.utils.Utility; import com.sina.weibo.sdk.net.RequestListener; import ...

    通过输入方式在Android上进行微博OAuth登录

    在微博认证方式里,基本的OAuth认证是必须要调整到跳转到第三方页面上进行授权的,例如下面的...5、认证成功,可以根据AccessToken访问微博的接口。在以上的过程中,手机端跳转过程非常麻烦,需要打开浏览器,一方面新

    Oauth实例(使用Scribe-java)

    新浪微博提供了一套基于OAuth的API接口,允许开发者通过API调用来获取和操作用户的数据,如发布微博、查看用户信息等。在使用Scribe-java时,需要了解新浪微博API的具体要求,例如授权URL、Access Token的获取方式...

    java新浪微博接口的访问的两种方式

    在新浪微博API中,我们需要通过OAuth进行授权,以获取访问令牌(Access Token)。 **步骤1:申请开发者账号** 首先,你需要在新浪微博开放平台注册并申请成为开发者,创建应用,获取到App Key和App Secret。 **...

    新浪微博SDK for .Net 4.0第二版源码2012530

    新浪微博SDK for .Net 4.0第二版源码 项目描述 第二版SDK的一些新特性: 采用了新浪官方主推的OAuth2.0进行授权和认证 所有接口都升级到了官方V2版的API,也就是说可以用官方V2版的API机型操作了 参考了官方PHP版的...

    新浪微博开发SDK研究分析

    《新浪微博开发SDK研究分析》 在信息技术飞速发展的今天,社交媒体平台成为了人们日常生活的重要组成部分,而新浪微博作为中国的微博领军者,其开放API和SDK为开发者提供了丰富的功能,使得第三方应用可以便捷地接...

Global site tag (gtag.js) - Google Analytics