新浪开发平台实现分享

来源:互联网 发布:导航端口修改工具 编辑:程序博客网 时间:2024/06/14 03:34
**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_KEYpublicstaticfinal 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

0 0
原创粉丝点击