新浪微博分享
首先:成为开发者:用户首先需要在微博开放平台上对应用进行注册,并获取APP_KEY,添加应用的授权回调页(Redirect URI)。这些已经很多了,不细说。不清楚的可以看下这个链接,官方指南。
微博SDK下载链接:https://github.com/mobileresearch/weibo_android_sdk
开始集成:有两种方式来集成微博SDK:
a.直接导入weibosdkcore.jar:适用于只需要授权、分享、网络请求框架功能的项目
b.引用WeiboSDK工程(Library):适用于微博授权、分享,以及需要登陆按钮、调用OpenAPI的项目
下面简述下两种导入方式的实现:
方式一:直接导入weibosdkcore.jar
将官方的提供SDK JAR包(weibosdkcore.jar)放到工程的libs目录下
添加JAR包:工程-->右键-->properties-->java build path-->libraries-->add external jar
方式二:引用WeiboSDK工程(Library)
将WeiboSDK工程整个目录拷贝到和你自己的工程相同的目录下
在你自己的工程中,添加WeiboSDK工程的引用:工程-->右键-->properties-->Android-->Add-->选择工程
注意: 无论使用哪一种方式,都需要先将demo 中lib目录下的对应的全部 libweibosdkcore.so文件目录 拷贝到你的目标工程中。Demo工程中的weibosdkcore.jar与github上的weibosdkcore_v3.x.x.jar包是同一个。
分享:从第三方应用唤起微博客户端进行分享
注意这里分享的图片不能大于32K
1) 分享前准备工作
在进行微博分享前,需要在AndroidManifest.xml中,在需要接收消息的Activity(唤起微博主程序的类)里声明对应的Action:ACTION_SDK_REQ_ACTIVITY,如下所示:
<activity android:name="com.share.demo.YourShareActivity" android:configChanges="keyboardHidden|orientation" android:screenOrientation="portrait"> <intent-filter> <actionandroid:name="com.sina.weibo.sdk.action.ACTION_SDK_REQ_ACTIVITY"/> <categoryandroid:name="android.intent.category.DEFAULT"/> </intent-filter> </activity> |
2) 分享实现
① 在onCreate函数创建微博分享接口实例,并进行注册,请确保先注册,后分享
mWeiboShareAPI = WeiboShareSDK.createWeiboAPI(this, Constants.APP_KEY); mWeiboShareAPI.registerApp(); // 将应用注册到微博客户端 |
② 创建要分享的内容
TextObject textObject = new TextObject(); textObject.text = "要分享的文字"; |
③ 通过IWeiboShareAPI#sendRequest唤起微博客户端进行分享
private void sendMultiMessage() { WeiboMultiMessage weiboMessage = new WeiboMultiMessage();//初始化微博的分享消息 weiboMessage. textObject =textObject; SendMultiMessageToWeiboRequest request = new SendMultiMessageToWeiboRequest(); request.transaction = String.valueOf(System.currentTimeMillis()); request.multiMessage = weiboMessage; mWeiboShareAPI.sendRequest(request);//发送请求消息到微博,唤起微博分享界面 } |
④ 实现IWeiboHandler#Response接口,接收分享后微博返回的数据
3)
protected void onNewIntent(Intent intent) { super.onNewIntent(intent); mWeiboShareAPI.handleWeiboResponse(intent,this); //当前应用唤起微博分享后,返回当前应用 } @Override public void onResponse(BaseResponse baseResp) {//接收微客户端博请求的数据。 switch (baseResp.errCode) { case WBConstants.ErrorCode.ERR_OK: ......... break; case WBConstants.ErrorCode.ERR_CANCEL:......... break; case WBConstants.ErrorCode.ERR_FAIL: ......... break; } } |
注意:必须用Activity及其子类实现IWeiboHandler#Response这个接口,并传给微博,才能收到回调。微博SDK在内部会进行判断,如果不属于Activity将return false,回调失败。将会收不到回调!!
分享完成<( ̄︶ ̄)>