Android上开发新浪微博OAuth2.0认证
2012-03-26 17:27
501 查看
由于新浪微博的认证已经更新到OAuth2.0,以前的有些东西已不能使用,在网上找的资料大多都是基于1.0的认证,故只能自己摸索,现把DEMO分享出来给大家共享。这里注意,该DEMO只是初步实现了发新微博,转发微博,评论微博和查询最新的微博的功能,和实际项目还有很大差距,我直接使用了新浪微博提供的SDK,大牛们可以直接无视掉了,呵呵
先说一下新浪微博的SDK的导入吧,新浪微博的SDK是源码方式开放的,和我们平时使用的有些不一样,我在这里卡了很久,当然和我没仔细看SDK的文档有关系,为了减少大家走的弯路,这里着重提一下。导入步骤如下:
1)新浪微博官方的SDK包中一般有2个目录,一个是SDK的源码包(此包中有Android平台微博SDK说明文档),另一个是例子。首先需要将源码包导入到eclipse中。SDK工程的编码格式为UTF-8。
2)在需要集成新浪微博SDK包的工程项目中添加Library,右键 -> Properties -> Android。设置Library属性。
下面说下如何认证,里面的代码大部分用的是新浪提供的例子
对于Mobile客户端应用来说,是不存在Server的,故此处的应用回调页地址只要与新浪微博开放平台->我的应用->应用信息->高级应用->授权设置->应用回调页中的url地址保持一致就可以了。
以下代码实现WeiboDialogListener接口,授权成功后可在onComplete函数中获得AccessToken信息。具体如何保存、使用AccessToken信息由开发者自行处理,比如存放在SharedPreferences中,但是AccessToken的有效期有限制,一般正常情况下是7天存活期,过期后需要重新获得。
发新微博
转发微博
评论微博
查询最新的微博
差不多就这些了,其他的没继续研究,还有返回的JSON的数据如何处理这里都没有处理,等有空再研究下
DEMO下载地址:http://download.csdn.net/detail/zingck/4174074
转贴请保存源地址:/article/11426237.html
先说一下新浪微博的SDK的导入吧,新浪微博的SDK是源码方式开放的,和我们平时使用的有些不一样,我在这里卡了很久,当然和我没仔细看SDK的文档有关系,为了减少大家走的弯路,这里着重提一下。导入步骤如下:
1)新浪微博官方的SDK包中一般有2个目录,一个是SDK的源码包(此包中有Android平台微博SDK说明文档),另一个是例子。首先需要将源码包导入到eclipse中。SDK工程的编码格式为UTF-8。
2)在需要集成新浪微博SDK包的工程项目中添加Library,右键 -> Properties -> Android。设置Library属性。
下面说下如何认证,里面的代码大部分用的是新浪提供的例子
private static final String CONSUMER_KEY = "*******";// 替换成你自己申请的KEY private static final String CONSUMER_SECRET = "**************************"; // 替换陈你自己申请的SECRET Weibo weibo = Weibo.getInstance(); weibo.setupConsumerConfig(CONSUMER_KEY, CONSUMER_SECRET); // Oauth2.0 隐式授权认证方式 weibo.setRedirectUrl("http://www.sina.com");// 此处使用的URL必须和新浪微博上应用提供的回调地址一样 weibo.authorize(OAuthWeiboActivity.this, new AuthDialogListener());
对于Mobile客户端应用来说,是不存在Server的,故此处的应用回调页地址只要与新浪微博开放平台->我的应用->应用信息->高级应用->授权设置->应用回调页中的url地址保持一致就可以了。
以下代码实现WeiboDialogListener接口,授权成功后可在onComplete函数中获得AccessToken信息。具体如何保存、使用AccessToken信息由开发者自行处理,比如存放在SharedPreferences中,但是AccessToken的有效期有限制,一般正常情况下是7天存活期,过期后需要重新获得。
class AuthDialogListener implements WeiboDialogListener { @Override public void onComplete(Bundle values) { String token = values.getString("access_token"); String expires_in = values.getString("expires_in"); Log.i(“info”,"access_token : " + token + " expires_in: " + expires_in); AccessToken accessToken = new AccessToken(token, CONSUMER_SECRET); accessToken.setExpiresIn(expires_in); Weibo.getInstance().setAccessToken(accessToken); Intent intent = new Intent(); intent.setClass(OAuthWeiboActivity.this, MySinaWeiboActivity.class); startActivity(intent); } @Override public void onError(DialogError e) { Toast.makeText(getApplicationContext(), "Auth error : " + e.getMessage(), Toast.LENGTH_LONG).show(); } @Override public void onCancel() { Toast.makeText(getApplicationContext(), "Auth cancel", Toast.LENGTH_LONG).show(); } @Override public void onWeiboException(WeiboException e) { Toast.makeText(getApplicationContext(), "Auth exception : " + e.getMessage(), Toast.LENGTH_LONG).show(); } }
发新微博
private String update(Weibo weibo, String source, String status, String lon, String lat) throws WeiboException { WeiboParameters bundle = new WeiboParameters(); bundle.add("status", status); if (!TextUtils.isEmpty(lon)) { bundle.add("lon", lon); } if (!TextUtils.isEmpty(lat)) { bundle.add("lat", lat); } String rlt = ""; String url = Weibo.SERVER + "statuses/update.json"; rlt = weibo.request(this, url, bundle, Utility.HTTPMETHOD_POST, weibo.getAccessToken()); return rlt; }
转发微博
private String repost(String str, String id) throws MalformedURLException, IOException, WeiboException { String url = Weibo.SERVER + "statuses/repost.json"; WeiboParameters bundle = new WeiboParameters(); bundle.add("id", id); bundle.add("status", str); String rlt = weibo.request(RepostWeiboActivity.this, url, bundle, "POST", weibo.getAccessToken()); return rlt; }
评论微博
private String comment(String id) throws MalformedURLException, IOException, WeiboException { String url = Weibo.SERVER + "comments/create.json"; WeiboParameters bundle = new WeiboParameters(); bundle.add("comment", "测试"); bundle.add("id", id); String rlt = weibo.request(CommentWeiboActivity.this, url, bundle, "POST", weibo.getAccessToken()); eturn rlt; }
查询最新的微博
private String getPublicTimeline() throws MalformedURLException, IOException, WeiboException { String url = Weibo.SERVER + "statuses/public_timeline.json"; WeiboParameters bundle = new WeiboParameters(); bundle.add("count", "1"); String rlt = weibo.request(QueryWeiboActivity.this, url, bundle, "GET", weibo.getAccessToken()); return rlt; }
差不多就这些了,其他的没继续研究,还有返回的JSON的数据如何处理这里都没有处理,等有空再研究下
DEMO下载地址:http://download.csdn.net/detail/zingck/4174074
转贴请保存源地址:/article/11426237.html
相关文章推荐
- 新浪微博Oauth2.0授权认证及SDK、API的使用(Android)
- 新浪微博Android客户端开发之OAuth认证篇
- Android 新浪微博之如何使用Oauth2.0进行认证
- android新浪微博Oauth2.0认证以及登录
- android 新浪微博Oauth2.0认证以及自定义webview认证
- 新浪微博 android oAuth2.0认证过程
- android新浪微博Oauth2.0认证以及登录
- android开发我的新浪微博客户端-OAuth认证过程中用WebView代替原来的系统自带浏览器
- android开发我的新浪微博客户端-OAuth认证过程中用WebView代替原来的系统自带浏览器
- android开发我的新浪微博客户端-OAuth认证过程中用WebView代替原来的系统自带浏览器
- android开发我的新浪微博客户端-OAuth认证过程中用WebView代替原来的系统自带浏览器
- 新浪微博Oauth2.0授权认证及SDK、API的使用(Android)
- android新浪微博Oauth2.0认证以及登录
- Android新浪微博开发(一)OAnth认证及账户管理、sdk的使用
- 新浪微博Oauth2.0授权认证及SDK、API的使用(Android)
- android开发我的新浪微博客户端-用户授权页面功能篇(3.2)
- 【Android UI设计与开发】第08期:底部菜单栏(三)Fragment+FragmentTabHost实现仿新浪微博底部菜单栏
- android开发我的新浪微博客户端-阅读微博UI篇(6.1)
- android开发我的新浪微博客户端-用户授权页面功能篇(3.2)
- android腾讯微博Oauth2.0认证以及登录