现在的位置: 首页 > 综合 > 正文

集成新浪微博Android SDK的方法

2014年10月11日 ⁄ 综合 ⁄ 共 3629字 ⁄ 字号 评论关闭

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

集成到App的效果图: 
  


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

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


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

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

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

在写导入图片文件的时候,又让我想起SDK中drawable-hdpi目录下一张"刀塔(dota)"的图片。 


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

1 <uses-permission android:name="android.permission.INTERNET"></uses-permission
2 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
3 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
4 <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
5 <uses-permission android: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 private static final String
CONSUMER_KEY = 
"your
app_key"
;
2 private static final String
CONSUMER_SECRET = 
"your
app_secret"
;
3 private static final String
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, new WeiboDialogListener()
{
02     @Override
03     public void onComplete(Bundle
values) {
04         try
05         {
06             String
token = values.getString(Weibo.TOKEN);
07             String
expires_in = values.getString(Weibo.EXPIRES);
08             accessToken
new AccessToken(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     public void onError(DialogError
e) {
22         Toast.makeText(context,"授权失败
: "
 +
e.getMessage(), Toast.LENGTH_LONG).show();
23     }
24     @Override
25     public void onCancel()
{
26         //Toast.makeText(context,
"取消授权", Toast.LENGTH_LONG).show();
27     }
28     @Override
29     public void onWeiboException(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 public boolean shareToweibo(Activity
activity, String accessToken, String tokenSecret, String content) 
throws WeiboException
{
06     Utility.setAuthorization(new Oauth2AccessTokenHeader());
07     WeiboParameters
bundle = 
new WeiboParameters();
08     bundle.add("source",
APP_KEY);
09     bundle.add("status",
content);
10     String
url = SERVER + 
"statuses/update.json";
11     if(mAccessToken
== 
null){
12         mAccessToken
new AccessToken(accessToken,
tokenSecret);
13     }
14     request(activity,
url, bundle, Utility.HTTPMETHOD_POST, mAccessToken);
15     return true;
16 }

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

 

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

OK,就这么简单。 

抱歉!评论已关闭.