使用
OSChina.NET
Android版客户端的用户,应该知道我们的客户端只需要第一次登陆了新浪微博,以后都可以不用再登陆,直接一键分享,这样很方便用户。
由于新浪微博开放平台预计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中添加以下权限:
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
<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
private static final String CONSUMER_KEY = "your app_key";
private static final String CONSUMER_SECRET = "your app_secret";
private static final String REDIRECT_URL = "your redirect_url";
//REDIRECT_URL 必须与你填写在微博开放平台上的一致
Weibo weibo = Weibo.getInstance();
weibo.setupConsumerConfig(CONSUMER_KEY, CONSUMER_SECRET);
weibo.setRedirectUrl(REDIRECT_URL);
2、弹出对话框,并授权登录
weibo.authorize(cont, new WeiboDialogListener() {
@Override
public void onComplete(Bundle values) {
try
{
String token = values.getString(Weibo.TOKEN);
String expires_in = values.getString(Weibo.EXPIRES);
accessToken = new AccessToken(token, CONSUMER_SECRET);
accessToken.setExpiresIn(expires_in);
//此处保存AccessToken
//your save function
//微博分享
weibo.shareToweibo(cont, accessToken.getToken(), accessToken.getSecret(), shareMessage);
}
catch (Exception e)
{
e.printStackTrace();
}
}
@Override
public void onError(DialogError e) {
Toast.makeText(context,"授权失败 : " + e.getMessage(), Toast.LENGTH_LONG).show();
}
@Override
public void onCancel() {
//Toast.makeText(context, "取消授权", Toast.LENGTH_LONG).show();
}
@Override
public void onWeiboException(WeiboException e) {
Toast.makeText(context,"授权异常 : " + e.getMessage(), Toast.LENGTH_LONG).show();
}
});
这里说明下,登录成功后会调用onComplete()方法,在方法里你需要保存AccessToken,同时分享微博。
注意:
weibo.shareToweibo()方法是我自己定义的,方便下次直接根据保存的AccessToken分享微博。
这里我把自己写的shareToweibo()方法代码贴出:
/**
* 分享到微博
* @author liux
*/
public boolean shareToweibo(Activity activity, String accessToken, String tokenSecret, String content) throws WeiboException {
Utility.setAuthorization(new Oauth2AccessTokenHeader());
WeiboParameters bundle = new WeiboParameters();
bundle.add("source", APP_KEY);
bundle.add("status", content);
String url = SERVER + "statuses/update.json";
if(mAccessToken == null){
mAccessToken = new AccessToken(accessToken, tokenSecret);
}
request(activity, url, bundle, Utility.HTTPMETHOD_POST, mAccessToken);
return true;
}
实际调用上面方法的时候,需要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
转载:http://www.oschina.net/question/157182_59192
分享到:
相关推荐
Gnome-OSC-HS--2-themes,包含Gnome-OSC-HS-(transparent)和Gnome-OSC-HS-(transparent),用于Ubuntu 18.04,仿mac风格,直接放入/usr/share/themes下就可以了使用
官方离线安装包,亲测可用
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
《码云Android客户端:git-osc-android-master深度解析》 码云作为国内知名的开源托管平台,为开发者提供了便捷的代码管理服务。其中,"git-osc-android-master.zip" 是码云针对Android平台推出的官方客户端源代码...
Gnome-OSC-HS--2-themes.tar.xz ubuntu18.04 仿 mac 主题
【标题】"oschina-git-osc-android-master"指的是一个开源中国的Android项目,它可能是某个开源社区的Android客户端或者工具库的源代码。这个项目的名字暗示它可能是从Git开源中国(OSC)获取的,并且是主分支的源码...
《Python库osc-placement详解》 在Python的世界里,丰富的库是其强大功能的重要支撑。本文将深入探讨一个名为"osc-placement"的Python库,版本为1.5.0,它被封装在一个名为"osc-placement-1.5.0.tar.gz"的压缩包中...
【标题】"osc-android-app2.0改动一下" 指的是开源中国(Open Source China)的Android应用程序的2.0版本进行了一些更新和优化,以便兼容Android Studio 1.3的Preview 2.0版本。这个过程通常涉及到对源代码的修改、...
晶体晶振3D封装大全PCB库+原理图库(AD集成库,封装带3D视图),Altium Designer的集成封装库,(SchLib+.PcbLib格式的,带3D视图,非常实用。 Component Count : 38 Component Name ------------------------------...
OSC-2x6-WI-A OSC-2x6-WI-B OSC-2x6-WS OSC-3x8-LI OSC-3x8-WI-A OSC-3x8-WI-B OSC-3x8-WS OSC-3x10-LI OSC-3x10-WI-A OSC-3x10-WI-B OSC-3x10-WS PKM13EPY SW-58010PL-LI SW-58010PL-WI XT-SMT2 XT-SMT3 XT-SMT4 ...
【标题】"mumu-osc-nicefish-ionic-master_ionic_agou3k_移动端" 指的是一款基于 Ionic 框架开发的移动应用项目,该项目在 "mumu-osc" 开源社区中被创建,并且由 "agou3k" 进行了维护。"nicefish-ionic" 是此项目的...
python库。 资源全名:osc-docker-builder-1.7.tar.gz
"mumu-osc-OpenWMS-Frontend-master_back_示范_"这个标题表明这是一个与OpenWMS(开放仓库管理系统)前端相关的项目,可能是某个开发者或团队为了展示后端管理系统的最佳实践而创建的一个备份示例。"back"标签强调了...
晶体晶振Altium封装库AD三维视图PCB封装库(2D3D封装库),封装列表如下:Component Count : 38 Component Name ----------------------------------------------- OSC 455E-LI OSC 455E-WI ...OSC-3x10-WS
晶振晶体2D3D封装大全(38个) Component Count : 38 Component Name ----------------------------------------------- OSC 455E-LI OSC 455E-WI OSC 1612-4P OSC 2025-4P OSC 3215-2P ...OSC-3x10-WS
【pt-osc在线重建表导致死锁的分析及优化方案】 在进行数据库维护时,特别是在业务低峰期使用像pt-online-schema-change(pt-osc)这样的工具进行在线DDL操作时,可能会遇到死锁问题,这可能导致业务SQL被回滚,...
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
离线安装包,亲测可用
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装