新浪微博开发之自动获取AccessToken_微博accse_token自动获取-程序员宅基地

技术标签: 杂项研究  code  新浪微博  accesstoken  sdk  

第一篇博客。

前段时间研究新浪微博开发,发现官方提供的SDK(java版)里获取AccessToken竟然需要手动从浏览器中复制code到命令行下才能获取AccesToken,明显很不友好啊,网上也没找到切实可行的办法,只能自己研究,用HttpClient写了个自动获取的方法,代码如下:

public AccessToken getAccessToken() throws WeiboException, IOException {
		Oauth oauth = new Oauth();
		String url="https://api.weibo.com/oauth2/authorize";
		HttpClient httpClient=new DefaultHttpClient();
		HttpPost post=new HttpPost(url);
		
		AccessToken accessToken=null;
		
		//初始化post数据
		List<NameValuePair> params=new ArrayList<NameValuePair>();
		params.add(new BasicNameValuePair("userId", "微博账号"));
		params.add(new BasicNameValuePair("passwd", "密码"));		
		params.add(new BasicNameValuePair("action", "login"));
		params.add(new BasicNameValuePair("display", "default"));
		params.add(new BasicNameValuePair("withOfficalFlag", "0"));
		params.add(new BasicNameValuePair("withOfficalAccount", ""));
		params.add(new BasicNameValuePair("scope", ""));
		params.add(new BasicNameValuePair("ticket", ""));
		params.add(new BasicNameValuePair("isLoginSina", ""));
		params.add(new BasicNameValuePair("response_type", "code"));
		params.add(new BasicNameValuePair("regCallback", "https%3A%2F%2Fapi.weibo.com%2F2%2Foauth2%2Fauthorize%3Fclient_id%3D3616023689%26response_type%3Dcode%26display%3Ddefault%26redirect_uri%3Dhttp%3A%2F%2F127.0.0.1%26from%3D%26with_cookie%3D"));
		params.add(new BasicNameValuePair("redirect_uri", "http://127.0.0.1"));
		params.add(new BasicNameValuePair("client_id", "3616023689"));
		params.add(new BasicNameValuePair("appkey62", "5Pph2h"));
		params.add(new BasicNameValuePair("state", ""));
		params.add(new BasicNameValuePair("verifyToken", "null"));
		params.add(new BasicNameValuePair("from", ""));
		
		UrlEncodedFormEntity entity;
		entity=new UrlEncodedFormEntity(params,"utf-8");
		post.setEntity(entity);
		post.addHeader("Referer", "https://api.weibo.com/oauth2/authorize?client_id=3616023689&redirect_uri=http://127.0.0.1&response_type=code&state=&scope=");		
		
		HttpResponse response=httpClient.execute(post);
		
		String[] location=response.getLastHeader("Location").toString().split("=");
		String code=null;
		if(location.length>1){
			code=location[1];
			Log.logInfo("Code:"+code);
		}
		if(code!=null){
			accessToken=oauth.getAccessTokenByCode(code);
			Log.logInfo("Access_Token:"+accessToken.getAccessToken());
		}
		return accessToken;
	}
因为新浪微博会将验证需要的code重定向到redirect_uri,而HttpClient貌似不支持,所以直接获取响应消息的code参数会报错。

我是通过获取响应的数据的Location值,即重定向地址来实现获取code的。这个Location的格式为redirect_uri?code=xxxxxxxx,我这里就是http://127.0.0.1?code=xxxxxxxx,通过截取Location来获取code,然后将code值传给SDK中提供的获取AccessToken的方法就可以成功获取到AccessToken了。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/lingjq0112/article/details/21258045

智能推荐

深度高斯过程综述-程序员宅基地

文章浏览阅读2.8k次,点赞4次,收藏32次。高斯过程是贝叶斯学习的主要方法之一。 尽管该方法已经成功地应用于许多问题,但它有一些基本的局限性。 文献中的多种方法已经解决了这些限制。 但是,到目前为止,还没有对这些主题进行全面的调查。 大多数现有调查只关注高斯过程的一种特定变体及其衍生物。 本调查详细介绍了使用高斯过程的核心动机、其数学公式、局限性和多年来为解决上述局限性而出现的研究主题。 此外,一个特定的研究领域是深度高斯过程 (DGP),它在过去十年中得到了显着改进。 他们的调查概述了推动这一研究领域前沿的重要出版物。 最后,对未解决的问题和未来工_深度高斯过程

Windows10系统优化(批处理)_win10精简批处理-程序员宅基地

文章浏览阅读6.8k次。经历过XP、Win7、Vista、Win8之后,Win10有了很大的改变,虽然Win10刚出时,非常糟糕,甚至很长一段时间被认为没有Win7,但是随着Win10的不断优化不断更新,已经慢慢的变得更好了,无论是功能,还是界面的体验都已经非常的优秀,并且微软也已经不再更新Win7,Win7虽然曾经很辉煌,但是已经慢慢的被微软淘汰现在很多电脑,在更新了Win7补丁后会被微软提示升级到Win10,Win10需要的设备配置虽然很低,但是很多装了Win7的电脑都已经是老电脑了,而且Win10一些功能平时我们都用不到,_win10精简批处理

各种登录源码来了!基础登录、验证码登录、小程序登录...全都要!-程序员宅基地

文章浏览阅读1.4k次。现在开发个应用登录比以前麻烦的多。产品经理说用户名密码登录、短信登录都得弄上,如果搞个小程序连小程序登录也得安排上,差不多就是我全都要。多种登录途径达到一个效果确实不太容易,今天胖哥在Sp..._h5小程序登录源码

在对话框中dialog 创建简单opengl程序_opengl创建对话框-程序员宅基地

文章浏览阅读9.2k次。前言:用opengl库在mfc 对话框程序中创建简单的opengl程序开发环境:vs2010+opengl库 步骤:1.用vs2010创建mfc dialog对话框程序直接点击完成,创建工程结束。2.删掉对话框上面的lable,及button按钮3.打开对话框页,并选择“”项目“中的 ”添加类向导“ 打开添加类向导对话框_opengl创建对话框

【NGO-SCN预测】基于北方苍鹰算法优化随机配置网络NGO-SCN的数据回归预测 (多指标,多图)附MATLAB代码-程序员宅基地

文章浏览阅读756次,点赞19次,收藏25次。回归预测是一种重要的数据分析方法,它可以帮助我们预测未来的趋势和结果。在这篇博客中,我们将介绍基于北方苍鹰算法优化随机配置网络NGO-SCN的数据回归预测,这是一种多指标、多图的方法。首先,让我们来了解一下北方苍鹰算法。北方苍鹰算法是一种新型的优化算法,它模拟了北方苍鹰在捕食过程中的行为,通过不断地调整自身的位置和速度来寻找最优解。这种算法具有很强的全局搜索能力和收敛速度快的特点,适用于解决各种优化问题。随机配置网络NGO-SCN是一种基于神经网络的数据回归预测模型。

solr FieldAnalysisRequestHandler 取得solr的分词方法_调用solr分词接口-程序员宅基地

文章浏览阅读2.5k次。FieldAnalysisRequestHandler可以对某个字段或字段类型的分词器对查询串取到分词数据。 先看 solr 的默认配置, --> -->_调用solr分词接口

随便推点

分类网络 DenseNet-程序员宅基地

文章浏览阅读836次,点赞3次,收藏2次。DenseNet论文:Densely Connected Convolutional NetworksDenseNet是在ResNet之后的一个分类网络,连接方式的改变,使其在各大数据集上取得比ResNet更好的效果.网络结构以DenseNet-121为例,介绍网络的结构细节.网络结构一开始与ResNet类似,先进行一个大尺度的卷积,再接一个池化层;随后接上连续几个子模块(Dense ..._分类网络

网络安全系列-二十五: PCAP文件格式详解及读取PCAP文件源码示例_pcap读写例子-程序员宅基地

文章浏览阅读5.7k次,点赞2次,收藏9次。在Linux里,pcap是一种通用的数据流格式,是用于保存捕获的网络数据的一种非常基本的格式。很多开源的项目都使用这种数据格式,如wireshark、tcpdump、scapy、snort本文针对pcap的文件格式进行详解,并提供读取pcap文件的源代码示例_pcap读写例子

微信小程序的小疾病线上问诊服务系统的设计与实现_基于微信小程序的中医问诊系统的研究内容-程序员宅基地

文章浏览阅读530次。对于小疾病问诊服务系统功能所牵扯的数据都是通过用户进行小疾病问诊服务系统等相关的数据信息内容、并且可以实现科室信息、线上预约、症状信息、线上诊断、预约提醒、问诊信息、用药方案、用药提醒、医生评价等功能可以通过系统进行分配,传统的手工作业模式已经无法满足用户的需求。首页、医生、科室信息、我的等。小疾病问诊服务系统的系统项目的概述设计分析,主要内容有平台的具体分析,进行数据库的是设计,数据采用mysql数据库,并且对于系统的设计采用比较人性化的操作设计,对于系统出现的错误信息可以及时做出处理及反馈。_基于微信小程序的中医问诊系统的研究内容

在线考试系统——测试计划 详细测试报告——testlink_在线考试系统测试计划-程序员宅基地

文章浏览阅读4.2k次。TestLink Community [configure $tlCfg->document_generator->company_name]在线考试系统1 在线考试系统——测试计划详细测试报告项目: 在线考试系统1项目 范围: 在线考试与查询的系统测试作者: admin由TestLink打印 2015-08-312009 TestLink Comm_在线考试系统测试计划

HBASE 原理_分别解释hbase中行键、列键和时间戳的概念-程序员宅基地

文章浏览阅读510次。数据模型1)行键(RowKey)– 行键是字节数组, 任何字符串都可以作为行键;– 表中的行根据行键进行排序,数据按照Row key的字节序(byte order)排序存储;– 所有对表的访问都要通过行键 (单个RowKey访问,或RowKey范围访问,或全表扫描)2)列族(ColumnFamily)– CF必须在表定义时给出– 每个CF可以有一个或多个列成员(ColumnQualifier),列成员不需要在表定义时给出,新的列族成员可以随后按需、动态加入– 数据按CF分开存储,HBase_分别解释hbase中行键、列键和时间戳的概念

【NOIP2016提高组复赛day2】天天爱跑步_noip2016提高组复赛天天爱跑步lca-程序员宅基地

文章浏览阅读1.3k次。小 C 同学认为跑步非常有趣,于是决定制作一款叫做《天天爱跑步》的游戏。 《天天爱跑步》是一个养成类游戏,需要玩家每天按时上线,完成打卡任务。 这个游戏的地图可以看作一棵包含 n 个结点和 n − 1 条边的树,每条边连接两个结点,且任意两个结点存在一条路径互相可达。树上结点编号为从 1 到 n 的连续正整数。 现在有 m 个玩家,第 i 个玩家的起点为 Si ,终点为 Ti 。每天打卡任务开始时,所 有玩家_noip2016提高组复赛天天爱跑步lca

推荐文章

热门文章

相关标签