最近腾讯微博官方网站API有的更新,不过也好久了.网上想找些案例,可是都没有介绍,好是郁闷,不过现在解决了,如果有类似问题的同学们,可以参考下,
这次的比较简单,对我们开发应用的程序员比较不错.下面我简单介绍下微博API的应用。
官方网址
为了顾全所有版本,我们就就用括号里面的jar包.
这里我就不详细介绍了,不懂的可以参考官方文档,很详细的.
下面这个是发表一条微博的接口参数:
首先我们就要获取Oauth或者是openid&openkey,但是我研究了好久没有弄出来,官方文档说,在请求时候callback不为空,在授权后redirect_url中会包含这两个值,但我看了官方给出例子的源码,他们根本就没有运用openid和openkey,他们用的是Oauth对象.所以我也跟着用Oauth对象请求.
不明白的可以参考源码.
我这里简单的说明一下:
/***
* 获取腾讯requestToekn后的OAuthV1
*
* @throws Exception
*/
public static OAuthV1 getOAuthV1() throws Exception {
OAuthV1 oAuth = new OAuthV1(Constant.TencentWeiBo.callback);
oAuth.setOauthConsumerKey(Constant.TencentWeiBo.consumerKey);
oAuth.setOauthConsumerSecret(Constant.TencentWeiBo.consumerSecret);
oAuth = OAuthV1Client.requestToken(oAuth);
return oAuth;
}
/***
* 腾讯认证
*/
public void TencentOauth(Context context) {
try {
oAuth = oauth.getOAuthV1();
} catch (Exception e) {
e.printStackTrace();
}
Intent intent = new Intent(context, OAuthV1AuthorizeWebView.class);
intent.putExtra("oauth", oAuth);
startActivityForResult(intent, requestCode);
}
OAuthV1AuthorizeWebView
/***
* 认证回调
*/
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1) {
if (resultCode == OAuthV1AuthorizeWebView.RESULT_CODE) {
oAuth = (OAuthV1) data.getExtras().getSerializable("oauth");
try {
oAuth = OAuthV1Client.accessToken(oAuth);
System.out.println(oAuth.getOauthToken() + ",,"
+ oAuth.getOauthTokenSecret() + ",," + ",,"
+ oAuth.getOauthConsumerSecret());
System.out.println(oAuth.getParamsList());
} catch (Exception e1) {
e1.printStackTrace();
}
}
}
}
我们调用API接口的时候只需要把oAuth作为参数穿进去就OK了,
tAPI = new TAPI("1.0");
tAPI.add(oAuth, "json", "腾讯就是牛逼...", "127.0.0.1");
这样就完成了调用,很简单吧.
但是现在还有一个问题:我们分享的时候总不能每次都授权认证吧,我们需要保存一些值,是的,我们需要把accessToken,accessTokenSecret在这里我们这样获取到:oAuth.getOauthToken();oAuth.getOauthTokenSecret() ;腾讯比较省事,把未授权的和授权后的用同一个变量和方法,不过她们会根据不同的请求变化.不懂得看API或源码,
保存好值后,我们在每次调用API的时候只需要创建oAuth对象,把相应值set进去就可以了,其实这样是行不通的,这点和新浪微博不太一样, 通过源码,可以得知,我也是大致说一下,因为我的水平有限,
public String postContent(String url, List<NameValuePair> paramsList, OAuth oAuth) throws Exception {
if(null==qHttpClient){
throw new OAuthClientException("1001");
}
OAuthV1 oAuthV1 = (OAuthV1) oAuth;
paramsList.addAll(oAuthV1.getTokenParamsList());
String queryString = OAuthV1Client.getOauthParams(url, "POST", oAuthV1.getOauthConsumerSecret(),
oAuthV1.getOauthTokenSecret(), paramsList);
// log.info("RequestAPI postContent queryString = " + queryString);
return qHttpClient.httpPost(url, queryString);
}
这是源码最终执行发送微博的方法,我们可以看到,她用了参数有:oAuthV1.getTokenParamsList(),oAuthV1.getOauthConsumerSecret(),oAuthV1.getOauthTokenSecret(),总共这三个参数,可是我们新new的Oauth对象里面没有
TokenParamsList(),所以会一直执行失败,因此我们要想办法把这个ParamsList参数传进去.
其实源码看了不是很懂,因为基础差,就断点查看,oAuthV1这个对象里面到底有那些属性值,通过发现,其实也就是authV1 = OAuthV1Client.requestToken(authV1);这个方法执行后的对象,所以现在问题就解决了,
重:我们获取到accessToken,accessTokenSecret,后,在以后访问分享微博的时候,我们不需要newoAuthV1()对象,而是获取重新获取Reuqest_Token后的对象,也就是我上面写的那个方法.这样就解决了问题。
好了,我就讲这么多了,其实很简单呐,但是也纠结了我好久。
分享到:
相关推荐
腾讯微博Android客户端开发OAuth认证学习[收集].pdf
android 腾讯微博Oauth2.0认证以及自定义webview认证
腾讯微博Android客户端开发——OAuth认证学习,课程下载地址:http://blog.csdn.net/coolszy
在手机客户端 向新浪腾讯微博发送微博运用Oauth认证 第三方jar包
Android新浪微博,通过WebView来截取授权验证码 ~~~~ Android新浪微博,通过WebView来截取授权验证码 ~~~~
腾讯微博android 客户端 Oauth 认证流程序示例
1.腾讯微博Android客户端开发——OAuth认证学习.pdf 1.腾讯微博Android客户端开发——OAuth认证学习.pdf
RT,基于OAUTH2.0的腾讯微博认证以及发送微博,代码简洁易懂,方便童鞋们开发需要用到分享信息到腾讯微博功能的应用,具体教程可留意我的CSDN博客http://blog.csdn.net/geniuseoe2012
android新浪微博开发源码 oauth。
asp.net 腾讯微博SDK OAuth2.0API接口,示例源码,登陆腾讯微博授权成功后可获得昵称、图像、OpenId,最新微博及粉丝等。100%可用,示例应用于 http://goupiaotong.com/login.aspx
对不起,我不得不给这个资源挂上分数,因为该死的CSDN非要折腾个这垃圾功能,我要下载别人的东西没积分没办法....这个里面包括代码,我整理的word笔记文档。 只是我觉得这远远不够,过几天我会录制一个视频,因为我...
OAuth认证 可以用的腾讯微博OAuth认证
Android腾讯微博开放平台入门源代码,包括: 1、basestring 2、signature 3、base64encoder 4、oauth授权 5、发布一条文字微博 6、简单的测试界面
这个微博客户端中用到得一些知识点。 1:sqllite数据库的应用 2:SharedPreferences结合sqllite保存默认登录用户 3:圆角背景,圆角头像,.9.png格式在android中的应用 4:布局方面的当然是最常用的ReleativeLayout,...
Java,腾讯微博通过OAuth2.0授权,可发文本微博的示例源代码。
3./class/下,文件名中含有If的文件,定义的是接口.总计3个接口文件:各个网站的api访问路径...5.实例中2个网站(新浪微博和腾讯微博)的OAuth已经实现,并且通过验证。本例中的OAuth客户端来源于新浪微博OAuth认证SDK。
社交网站源代码 关于微博服务端API的OAuth认证实现
OAuth认证以及使用网易微博开放平台实现聊天功能,android源码,0分下载了
【第三方开放平台系列】腾讯微博Oauth2.0授权认证-源码
Oauth 2.0 新浪微博 腾讯微博 实现2个微博的授权与发布一条微博。