使用OSChina.NETAndroid版客户端的用户,应该知道我们的客户端只需要第一次登陆了新浪微博,以后都可以不用再登陆,直接一键分享,这样很方便用户。

由于新浪微博开放平台预计2012年9月份停止旧版接口和OAuth1.0的使用,此次我们的Android客户端v1.5.3已经更新并使用新版接口和OAuth2.0的SDK。

集成到App的效果图:

【OSC手机App技术解析】- 集成新浪微博Android SDK

【OSC手机App技术解析】- 集成新浪微博Android SDK


下面将新浪微博Android SDK的集成分享给大家。

下载SDK
下载地址:http://open.weibo.com/wiki/SDK
我们找到Android SDK,点击下载。


导入源码包
将com.weibo.net包下面java文件导入项目的src目录下,如下图:

【OSC手机App技术解析】- 集成新浪微博Android SDK



注意:这里我没有导入ShareActivity.java文件以及ShareActivity类里面所需的资源文件。因为我们的App只需一键分享即可,不需要用户去编辑分享的内容。而ShareActivity类实际是个Activity类,涉及到布局等,所以我们这里没有导入。
当然,你可以根据自己的需求,看是否需要导入。

导入相关资源
1、将dialog_bg.9.png图片文件导入到res/drawable-hdpi目录下;
2、将color.xml, dimens.xml, style.xml导入到res/values目录下;

【OSC手机App技术解析】- 集成新浪微博Android SDK在写导入图片文件的时候,又让我想起SDK中drawable-hdpi目录下一张"刀塔(dota)"的图片。


添加权限
我们需要在AndroidManifest.xml中添加以下权限:

1 <uses-permissionandroid:name="android.permission.INTERNET"></uses-permission>
2 <uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
3 <uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
4 <uses-permissionandroid:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
5 <uses-permissionandroid:name="android.permission.WRITE_APN_SETTINGS"></uses-permission>

在新浪微博SDK提供的例子里面是需要以上5个权限的,其实我测试只要前面3个就OK了。

-----------------------以上热身活动都完成后,开始进入主题了----------------------------

调用新浪微博的SDK,首先你要到新浪微博开放平台申请的你的App的key,secret。同时,你还要进入“我的应用--应用详情--应用信息--高级信息--授权设置--应用回调页”设置你的回调页地址。


以下假设你已经有了CONSUMER_KEY, CONSUMER_SECRET, REDIRECT_URL。

首次授权登录
1、初始化weibo

1 privatestaticfinalString CONSUMER_KEY ="your app_key";
2 privatestaticfinalString CONSUMER_SECRET ="your app_secret";
3 privatestaticfinalString REDIRECT_URL ="your redirect_url";
4 //REDIRECT_URL 必须与你填写在微博开放平台上的一致
5 Weibo weibo = Weibo.getInstance();
6 weibo.setupConsumerConfig(CONSUMER_KEY, CONSUMER_SECRET);
7 weibo.setRedirectUrl(REDIRECT_URL);


2、弹出对话框,并授权登录

01 weibo.authorize(cont,newWeiboDialogListener() {
02 @Override
03 publicvoidonComplete(Bundle values) {
04 try
05 {
06 String token = values.getString(Weibo.TOKEN);
07 String expires_in = values.getString(Weibo.EXPIRES);
08 accessToken =newAccessToken(token, CONSUMER_SECRET);
09 accessToken.setExpiresIn(expires_in);
10 //此处保存AccessToken
11 //your save function
12 //微博分享
13 weibo.shareToweibo(cont, accessToken.getToken(), accessToken.getSecret(), shareMessage);
14 }
15 catch(Exception e)
16 {
17 e.printStackTrace();
18 }
19 }
20 @Override
21 publicvoidonError(DialogError e) {
22 Toast.makeText(context,"授权失败 : "+ e.getMessage(), Toast.LENGTH_LONG).show();
23 }
24 @Override
25 publicvoidonCancel() {
26 //Toast.makeText(context, "取消授权", Toast.LENGTH_LONG).show();
27 }
28 @Override
29 publicvoidonWeiboException(WeiboException e) {
30 Toast.makeText(context,"授权异常 : "+ e.getMessage(), Toast.LENGTH_LONG).show();
31 }
32 });

这里说明下,登录成功后会调用onComplete()方法,在方法里你需要保存AccessToken,同时分享微博。

注意:weibo.shareToweibo()方法是我自己定义的,方便下次直接根据保存的AccessToken分享微博。

这里我把自己写的shareToweibo()方法代码贴出:

01 /**
02 * 分享到微博
03 * @author liux
04 */
05 publicbooleanshareToweibo(Activity activity, String accessToken, String tokenSecret, String content)throwsWeiboException {
06 Utility.setAuthorization(newOauth2AccessTokenHeader());
07 WeiboParameters bundle =newWeiboParameters();
08 bundle.add("source", APP_KEY);
09 bundle.add("status", content);
10 String url = SERVER +"statuses/update.json";
11 if(mAccessToken ==null){
12 mAccessToken =newAccessToken(accessToken, tokenSecret);
13 }
14 request(activity, url, bundle, Utility.HTTPMETHOD_POST, mAccessToken);
15 returntrue;
16 }

实际调用上面方法的时候,需要try-catch一下,只要没有获取到WeiboException异常,就是分享成功了。

一键分享
下面说明一下,以后使用一键分享时,不需要再登录,只需要:
1、初始化weibo(同上)
2、获取保存的AccessToken
3、调用shareToweibo()方法

OK,就这么简单。

如果大家有什么疑问的话,欢迎在下面回帖一起探讨。

PS:

OSC Android客户端下载地址:http://www.oschina.net/uploads/osc.apk
OSC iPhone客户端下载地址:
http://www.oschina.net/uploads/osc.ipa
OSC Windows Phone客户端下载地址:http://www.oschina.net/uploads/osc.xap

更多相关文章

  1. android 工程里缺少 R.java 文件原因和解决方法
  2. 解决android一直在running,打不开文件,下载不了gradle包的方法
  3. Android软件广告屏蔽方法及代码
  4. Android异步处理常用方法
  5. Android设置TextView显示指定个数字符,超过部分显示...(省略号)的
  6. Android 环信官方Demo3.3.2详细配置方法

随机推荐

  1. Android淘宝好评星级进度条RatingBar原来
  2. Android进程永生技术终极揭秘:进程被杀底
  3. android AutoCompleteTextView 实现输入
  4. Android中隐藏ActionBar的方法
  5. Android获取手机方向
  6. android带图片的AlertDialog和文件管理器
  7. Android Button 点击时替换背景颜色和替
  8. 做了六年Android,终于熬出头了,15K到31K全
  9. Android屏幕自适应的四种方法
  10. Qt for Android(安卓)拉起微信登录、分享