新浪开发平台实现分享
2016-07-15 15:52
337 查看
**1** 配置权限,如果已经添加了相应的权限,就不要重复添加了 <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
**2** 配置返回微博的activity 在进行微博分享前,需要在AndroidManifest.xml中,在需要接收消息的Activity(唤起微博主程序的类)里声明对应的Action:ACTION_SDK_REQ_ACTIVITY,如下所示: <!--sina--> <activity android:name="com.sina.weibo.sdk.component.WeiboSdkBrowser" android:configChanges="keyboardHidden|orientation" android:windowSoftInputMode="adjustResize" android:exported="false" > </activity> <service android:name="com.sina.weibo.sdk.net.DownloadService" android:exported="false"> </service> <!--\sina--> <activity android:name=".activity.SinaActivity"> <!-- 调用新浪原生SDK,需要注册的回调activity --> <intent-filter> <action android:name="com.sina.weibo.sdk.action.ACTION_SDK_REQ_ACTIVITY" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity>
**3** 选择集成sdk方式 在集成微博SDK前,有两种方式来集成微博SDK: 直接导入weibosdkcore.jar:适用于只需要授权、分享、网络请求框架功能的项目 引用WeiboSDK工程(Library):适用于微博授权、分享,以及需要登陆按钮、调用OpenAPI的项目 在这里我采用方式1,因为我不需要登录按钮和直接调用OpenAPI
4 将应用注册到微博
mWeiboShareAPI = WeiboShareSDK.createWeiboAPI(this, Constants.APP_KEY); mWeiboShareAPI.registerApp(); // 将应用注册到微博客户端
到这里,配置已经完成,可以直接调用分享代码了。
示例:分享网页
private IWeiboShareAPI mWeiboShareAPI; //这是分享网页的配置 WebpageObject mediaObject = new WebpageObject(); mediaObject.identify = Utility.generateGUID(); mediaObject.title = "title"; mediaObject.description = "描述"; Bitmap bitmap=BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher); mediaObject.setThumbImage(bitmap); mediaObject.actionUrl ="http://www.baidu.com"; /** * 无论分享什么 都要添加这些代码 通过 * request.multiMessage = weiboMessage; * 实现具体内容的分享(网页 图片 文字 .....) */ WeiboMultiMessage weiboMessage = new WeiboMultiMessage();//初始化微博的分享消息 weiboMessage.mediaObject=mediaObject; SendMultiMessageToWeiboRequest request = new SendMultiMessageToWeiboRequest(); request.transaction = String.valueOf(System.currentTimeMillis()); request.multiMessage = weiboMessage; /** * 唤醒微博分享页面 第一种这种方式 * 只有安装了客户端才可以 */ mWeiboShareAPI.sendRequest(MainActivity.this, request); /** * 唤醒微博分享页面第二种方式 * 如果安装了客户端 就调起客户端 如果没有安装 就调起网页 */ AuthInfo authInfo = new AuthInfo(this, SinaConstant.APP_KEY, SinaConstant.REDIRECT_URL, SinaConstant.SCOPE); mWeiboShareAPI.sendRequest(this, request, authInfo, "", new WeiboAuthListener() { @Override public void onWeiboException( WeiboException arg0 ) { } @Override public void onComplete( Bundle bundle ) { } @Override public void onCancel() { } });
所需要的值
publicinterface Constants { publicstaticfinal String APP_KEY = "2045436852"; // 应用的APP_KEY publicstaticfinal String REDIRECT_URL = "http://www.sina.com";// 应用的回调页 publicstaticfinal String SCOPE = // 应用申请的高级权限 "email,direct_messages_read,direct_messages_write," + "friendships_groups_read,friendships_groups_write,statuses_to_me_read," + "follow_app_official_microblog," + "invitation_write"; }
常见问题:
① 分享页面出现 {“error:”userinfo error!”,”pos”:”5}
原因: 应用在微博平台未通过审核时,要添加测试账号(好像只有网页出现这种情况)
② 文件不存在(C8998)
微博平台要添加包名和签名
测试时要用正式的包
平台的回调页要和代码的一致
③ 点击分享 客户端没响应
我遇到的问题是因为我的分享没有内容,添加上分享内容就行了。
没有添加描述也不会调起,如果不想添加描述,值可以为“”
④ 分享的图片不能大于32K
相关文章推荐
- Android工具类之单位转换类
- ARM 内核SP,LR,PC寄存器
- Linux 下的 shell 编程之变量
- 简单自动匹配下拉文字
- Sybase 部分SQL语句介绍
- IntentFilter的匹配规则
- Java逻辑运算符
- 产品经理——关于色彩搭配!!
- 大数据服务入口
- 就让CSDN来见证我的成长吧!
- 用Webpack构建Vue
- navicat 结合快捷键
- Android工具类之日期操作工具类
- POJ-2253-Frogger(弗洛伊德 迪杰斯特拉)
- apple watch遇到的坑
- ios 感觉苹果少了个方法,求啪啪啪打脸
- Codeforces Round #362 (Div. 2) C 模拟二叉树
- 运行python脚本
- iOS开发从入门到精通--UIView层级关系
- ACM--次数最多--HDOJ 1032--The 3n + 1 problem--水(数据太弱)