如何使新浪微博sso登录支持SSO授权

新浪微博SSO授权回调问题
[问题点数:40分,结帖人a]
新浪微博SSO授权回调问题
[问题点数:40分,结帖人a]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
本帖子已过去太久远了,不再提供回复功能。怎么在PhoneGap里面调用新浪微博的JS sdk,怎么能不弹浏览器,直接在PhoneGap里面显示那个授权页面?
按投票排序
用phonegap的话就不要用JS SDK,调用API就好了。使用InAppBrowser插件打开一个新的浏览器,然后通过监听url来获得token完成授权。我这里有现成的写好的插件。需要的话联系我-------------------------------------------------------友盟分享组件PhoneGap专版已经发布,完美支持分享,登录等功能。
需要原声sdk支持,看楼上吧。
不要用JS sdk了,直接用原生代码写好了,我写了个phonegap插件,
需要(用.net或php或java等)搭建一个后台, 然后phonegap访问这个后台, 后台在向微博发请求, 后台得到信息之后再传给phonegap
看看下面这个网址吧。联系那个写这文章的。。。
已有帐号?
无法登录?
社交帐号登录查看: 1118|回复: 8
新浪与腾讯开放平台SSO都已授权上线 新浪启动
米农, 积分 990, 距离下一级还需 9010 积分
米农, 积分 990, 距离下一级还需 9010 积分
城市币40 元
在线时间96 小时
阅读权限20
主题帖子城市币
新浪微博开放平台SSO授权上线
已启动域名
1.jpg (88.53 KB, 下载次数: 0)
10:02 上传
腾讯微博开放平台SSO授权上线 帐号绑定一步完成
2.jpg (80.67 KB, 下载次数: 0)
10:04 上传
城市币9328 元
在线时间18966 小时
阅读权限150
主题帖子城市币
米商, 积分 11772, 距离下一级还需 18228 积分
米商, 积分 11772, 距离下一级还需 18228 积分
城市币3212 元
在线时间856 小时
阅读权限50
主题帖子城市币
好事,用户体验会比较好,否则又要注册帐号密码了
易币爱币西币买卖助手-微信公众号yibizhushou)
米农, 积分 7509, 距离下一级还需 2491 积分
米农, 积分 7509, 距离下一级还需 2491 积分
城市币1879 元
在线时间565 小时
阅读权限20
主题帖子城市币
[url=http://www.mibao.org]米宝[/url] [url=http://88333.][color=Red]域名出售[/color][/url] [url=]Sedo[/url] [url=http
城市币23961 元
在线时间5445 小时
阅读权限180
主题帖子城市币
|||微信号||
米农, 积分 4637, 距离下一级还需 5363 积分
米农, 积分 4637, 距离下一级还需 5363 积分
城市币1637 元
在线时间300 小时
阅读权限20
主题帖子城市币
这样的呀呀
富商, 积分 43088, 距离下一级还需 6912 积分
富商, 积分 43088, 距离下一级还需 6912 积分
城市币808 元
在线时间4228 小时
阅读权限100
主题帖子城市币
米商, 积分 11899, 距离下一级还需 18101 积分
米商, 积分 11899, 距离下一级还需 18101 积分
城市币1689 元
在线时间1021 小时
阅读权限50
主题帖子城市币
大佬联手。。
玉米出售:</石河子人才&&.cn石河子 .cn乐点Q
城市币2306 元
在线时间10754 小时
阅读权限150
主题帖子城市币
微博搜 支持
腾讯视频 巨豚 优坠 优勺 我秒 爱囧 宣团 一起查 微博搜 我要拍 白海豚 .cn金花茶
旗下品牌 -
&&论坛管理员邮箱:> 社会化分享 > 社会化Android组件 > 4.3版本详细集成文档
使用友盟分享组件流程
友盟分享组件概述
友盟社会化组件,可以让移动应用快速具备社会化分享、登录、评论、喜欢等功能,并提供实时、全面的社会化数据统计分析服务。
指南将会手把手教你使用社会化组件SDK,用5分钟为APP增加新浪微博、腾讯微博、人人网分享功能。
注意:本文示例代码均针对最新版SDK,如果你所用SDK的类名或方法名与此文不符合,请使用你所用SDK的随包文档、或者下载使用最新版SDK。
友盟社会化组件支持的平台
友盟社会化组件支持绝大多数国内外主流社交平台的分享功能,其中包括:
国内平台:微信(微信好友及微信朋友圈)、QQ、Qzone、新浪微博、腾讯微博、人人网、豆瓣、短信、邮件、有道云笔记、来往、易信
国外平台:Facebook、Twitter、Instagram、EverNote、Pocket、Pinterest、Linkedin、G+
注册友盟账号
首先在注册友盟账号,获取友盟APPkey
直接在 根据需要的分享平台进行选择,系统会自动生成一个下载包。
配置Android manifest XML
&?xml version="1.0" encoding="utf-8"?&
&manifest xmlns:android="/apk/res/android"
package="com.umeng.example"
android:versionCode="1"
android:versionName="1.0" &
&application
android:debuggable="true"
android:icon="@drawable/icon"
android:label="@string/app_name"
android:theme="@android:style/Theme.Black.NoTitleBar" &
&!-- ###################注册SDK使用的Activity###################### --&
&!--分享编辑页--&
android:name="com.umeng.socialize.view.ShareActivity"
android:configChanges="orientation|keyboard"
android:launchMode="singleTask"
android:noHistory="true"
android:theme="@style/Theme.UMDialog"
android:windowSoftInputMode="stateVisible|adjustResize" &
&/activity&
&!-- ############ QQ空间和QQ SSO授权的Activity注册 ############ --&
android:name="com.tencent.tauth.AuthActivity"
android:launchMode="singleTask"
android:noHistory="true" &
&intent-filter&
&action android:name="android.intent.action.VIEW" /&
&category android:name="android.intent.category.DEFAULT" /&
&category android:name="android.intent.category.BROWSABLE" /&
&!-- ,如果你使用的公用账号,则不需要修改;否则修改成你在QQ开放平台申请的 APP ID--&
&data android:scheme="tencent" /&
&/intent-filter&
&/activity&
&activity android:name="com.mon.AssistActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:screenOrientation="portrait"&
&/activity&
&!-- ###################添加UmengAppkey###################### --&
&meta-data
android:name="UMENG_APPKEY"
android:value="xxxxxxxxxxxxxxxxxxxxxx" &
&/meta-data&
&/application&
&uses-sdk android:minSdkVersion="8" /&
&!-- ###################声明SDK使用的相关权限###################### --&
&!-- 检测网络状态 --&
&uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /&
&!-- 获取mac地址作为用户的备用唯一标识 --&
&uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /&
&!-- 获取用户手机的IMEI,用来唯一的标识用户 --&
&uses-permission android:name="android.permission.READ_PHONE_STATE" /&
&!-- 缓存资源优先存入SDcard --&
&uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /&
&!-- 允许应用程序联网,以便向我们的服务器端发送数据 --&
&uses-permission android:name="android.permission.INTERNET" /&
&!-- QQ、QQ空间所需权限 --&
&uses-permission android:name="android.permission.GET_TASKS" /&
&/manifest&
如果选用多种UmengSDK产品使用不同Appkey,可为SocialSDK配置单独的appkey,如下:
/*代码添加Appkey,如果设置了非null值,SocialSDK将使用该值.*/
SocializeConstants.APPKEY = "xxxxxxxxx";
开启log开关
在程序入口加入**com.umeng.socialize.utils.Log.LOG = true**,可在LogCat中观察友盟日志。
添加相关文件及资源
添加资源文件和jar文件有两种方式,请根据您的需求进行选择
方法1:添加资源到现有项目中
解压SDK压缩包,将'main/libs'和'main/res'文件夹复制到你的项目工程根目录下(如使用'ADT 17'以下用户需要手动添加'libs'下的jar文件到工程Path中)
方法2:添加工程引用
解压SDK压缩包,将文件夹中的social_sdk_library_project文件夹导入Eclipse,并在您的工程中添加对此项目的引用即可。
默认分享样式介绍
友盟默认分享样式只需要添加几行代码即可实现,在不添加平台的情况下,分享列表中默认带有:
新浪微博、腾讯微博、人人网、豆瓣。
需要添加微信等其他平台参照对应的文档部分进行添加即可。
实现默认分享样式
添加集成代码
// 首先在您的Activity中添加如下成员变量
final UMSocialService mController = UMServiceFactory.getUMSocialService("com.umeng.share");
// 设置分享内容
mController.setShareContent("友盟社会化组件(SDK)让移动应用快速整合社交分享功能,/social");
// 设置分享图片, 参数2为图片的url地址
mController.setShareMedia(new UMImage(getActivity(),
"/img/bdlogo.png"));
实现上面的步骤后,在需要弹出分享面板的的位置设置按钮并实现下面的方法即可:
mController.openShare(getActivity(), false);
默认分享列表中存在的平台如果需要删除,则调用下面的代码:
mController.getConfig().removePlatform( SHARE_MEDIA.RENREN, SHARE_MEDIA.DOUBAN);
上面为删除人人网和豆瓣的方法,如果想删除其他平台,传入对应平台参数即可
设置分享列表的平台排列顺序,则使用下面的代码:
mController.getConfig().setPlatformOrder(SHARE_MEDIA.RENREN, SHARE_MEDIA.DOUBAN,
SHARE_MEDIA.TENCENT, SHARE_MEDIA.SINA);
传入平台参数的顺序即为分享列表中展示的顺序
设置分享列表显示的平台,调用下面的方法:
mController.getConfig().setPlatforms(SHARE_MEDIA.RENREN, SHARE_MEDIA.DOUBAN,
SHARE_MEDIA.TENCENT, SHARE_MEDIA.SINA);
自定义分享列表UI界面
自定义分享列表主要适用对象:
不使用友盟默认分享列表,自行实现分享列表或直接通过点击按钮实现分享流程。
实现方法:
以新浪微博为例,在分享到新浪微博的按钮中实现下面的方法:
// 参数1为Context类型对象, 参数2为要分享到的目标平台, 参数3为分享操作的回调接口
mController.postShare(mContext,SHARE_MEDIA.SINA,
new SnsPostListener() {
public void onStart() {
Toast.makeText(mContext, "开始分享.", Toast.LENGTH_SHORT).show();
public void onComplete(SHARE_MEDIA platform, int eCode,SocializeEntity entity) {
if (eCode == 200) {
Toast.makeText(mContext, "分享成功.", Toast.LENGTH_SHORT).show();
String eMsg = "";
if (eCode == -101){
eMsg = "没有授权";
Toast.makeText(mContext, "分享失败[" + eCode + "] " +
eMsg,Toast.LENGTH_SHORT).show();
其他平台方法类似,只需要替换平台参数即可,在每个平台的分享按钮中都实现上述方法,如果仍不清楚实现流程,可以参考下面的例子:
分享数据级接口
数据级接口使用对象:
不使用友盟默认分享界面,也不使用友盟提供的分享编辑页,完全自行定义
使用分享数据级接口包含两个部分:授权API接口和分享API接口 ,其中新浪微博、腾讯微博、豆瓣、人人网、QQ在执行分享前需要先进行授权操作,
其他平台可以直接调用分享API接口。
授权接口以新浪为例,添加下面的代码:
注意在授权前先检查是否已经授权过,重复授权有可能引起错误
OauthHelper.isAuthenticated(mContext,SHARE_MEDIA.SINA)
确保未授权,则先调用下面的代码
mController.doOauthVerify(mContext, SHARE_MEDIA.SINA, new UMAuthListener() {
public void onStart(SHARE_MEDIA platform) {
Toast.makeText(mContext, "授权开始", Toast.LENGTH_SHORT).show();
public void onError(SocializeException e, SHARE_MEDIA platform) {
Toast.makeText(mContext, "授权错误", Toast.LENGTH_SHORT).show();
public void onComplete(Bundle value, SHARE_MEDIA platform) {
Toast.makeText(mContext, "授权完成", Toast.LENGTH_SHORT).show();
//获取相关授权信息或者跳转到自定义的分享编辑页面
String uid = value.getString("uid");
public void onCancel(SHARE_MEDIA platform) {
Toast.makeText(mContext, "授权取消", Toast.LENGTH_SHORT).show();
授权成功后可以直接调用分享API接口
//设置分享内容
mController.setShareContent("友盟社会化组件(SDK)让移动应用快速整合社交分享功能,/social");
//设置分享图片
mController.setShareMedia(new UMImage(mContext, "/images/pic/banner_module_social.png"));
//直接分享
mController.directShare(mContext, SHARE_MEDIA.SINA,
new SnsPostListener() {
public void onStart() {
Toast.makeText(mContext, "分享开始",Toast.LENGTH_SHORT).show();
public void onComplete(SHARE_MEDIA platform,int eCode, SocializeEntity entity) {
if(eCode == StatusCode.ST_CODE_SUCCESSED){
Toast.makeText(mContext, "分享成功",Toast.LENGTH_SHORT).show();
Toast.makeText(mContext, "分享失败",Toast.LENGTH_SHORT).show();
添加人人、豆瓣分享
添加人人到分享列表
在弹出分享面板前调用下面的代码
// 设置分享面板上显示的平台
mController.getConfig().setPlatforms(SHARE_MEDIA.RENREN)
6.1 添加豆瓣到分享列表
在弹出分享面板前调用下面的代码
// 设置分享面板上显示的平台
mController.getConfig().setPlatforms(SHARE_MEDIA.DOUBAN)
添加短信、邮件、有道云笔记
添加短信到分享列表
添加相关文件及资源
1.解压已下载的zip文件,将platforms/sms/libs/SocialSDK_sms.jar拷贝到你工程libs目录中。
2.在libs工程找到SocialSDK_sms.jar文件,鼠标右键--&Add to Build Path。
3.将res/drawable中的资源添加到你工程对应的res/drawable目录中。
在弹出面板前调用下面的代码:
// 添加短信
SmsHandler smsHandler = new SmsHandler();
smsHandler.addToSocialSDK();
添加上面的代码短信就会加入到分享列表中
添加邮件到分享列表
添加相关文件及资源
1.解压已下载的zip文件,将platforms/email/libs/SocialSDK_email.jar拷贝到你工程libs目录中。
2.在libs工程找到SocialSDK_email.jar文件,鼠标右键--&Add to Build Path。
3.将res/drawable中的资源添加到你工程对应的res/drawable目录中。
在弹出面板前调用下面的代码:
// 添加email
EmailHandler emailHandler = new EmailHandler();
emailHandler.addToSocialSDK();
添加有道云笔记到分享列表
1.解压已下载的zip文件,将platforms/ynote/libs/SocialSDK_ynote.jar拷贝到你工程libs目录中。
2.在libs工程找到SocialSDK_ynote.jar文件,鼠标右键--&Add to Build Path。
3.将res中的资源添加到你工程对应的res目录中。
在弹出面板前调用下面的代码:
// 添加有道云笔记平台
UMYNoteHandler yNoteHandler = new UMYNoteHandler(getActivity());
yNoteHandler.addToSocialSDK();
8 添加易信、来往分享
添加易信分享
添加易信相关资源及文件
1.1 解压已下载的zip文件,将platforms/yixin/libs目录中的SocialSDK_yixin_1.jar,SocialSDK_yixin_2.jar拷贝到工程的libs(如果没有此目录,新建libs目录)目录中。
1.2 把工程中libs目录下的SocialSDK_yixin_1.jar,SocialSDK_yixin_2.jar文件添加到编译路径,操作方式为点击鼠标右键--&Add to Build Path。
1.3 将解压目录中platforms/yixin/res拷贝至你工程res目录。
添加易信及朋友圈到分享列表
在集成代码中添加下面的代码
// 添加易信平台,参数1为当前activity, 参数2为在易信开放平台申请到的app id
UMYXHandler yixinHandler = new UMYXHandler(getActivity(),
"yxc4c11bf13bf");
// 关闭分享时的等待Dialog
yixinHandler.enableLoadingDialog(false);
// 把易信添加到SDK中
yixinHandler.addToSocialSDK();
// 易信朋友圈平台,参数1为当前activity, 参数2为在易信开放平台申请到的app id
UMYXHandler yxCircleHandler = new UMYXHandler(getActivity(),
"yxc4c11bf13bf");
yxCircleHandler.setToCircle(true);
yxCircleHandler.addToSocialSDK();
注意在弹出分享面板前调用,否则分享面板中不会出现易信及朋友圈分享图标
更多详情,请参考social_sdk_example中com.umeng.soexample.socialize.fragments.CustomPlatformFragment类中的addYXPlatform方法.
添加易信回调
在AndroidManifest.xml中下注册下面的回调Activity。
android:name=".yxapi.YXEntryActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges="keyboardHidden|orientation|screenSize"
android:exported="true"
android:screenOrientation="portrait" /&
易信精确回调使用说明
将SDK包中platforms/yixin目录下的yxapi文件夹拷贝到您的工程的包目录下,然后修改YXEntryActivity的完整路径即可。例如social_sdk_example的包名为com.umeng.soexample, 因此将yxapi文件夹拷贝到com.umeng.soexample下即可。最终YXEntryActivity的完整路径为com.umeng.soexample.yxapi.YXEntryActivity。
其中分享回调接口SnsPostListener中的onComplete方法的第二个参数代表分享的状态码,当值为200时表示分享成功;其余的值则为分享失败。
添加来往分享
添加来往相关资源及文件
1 解压已下载的zip文件,将platforms/laiwang/libs目录下的SocialSDK_laiwang_1.jar,SocialSDK_laiwang_2.jar拷贝到工程的libs(如果没有此目录,新建libs目录)目录中。
2 把工程中libs目录下的SocialSDK_laiwang_1.jar,SocialSDK_laiwang_2.jar文件添加到编译路径,操作方式为鼠标右键--&Add to Build Path。
3 将解压目录中platforms/laiwang/res拷贝至你工程res目录。
添加来往及来往动态到分享列表
//添加来往
UMLWHandler umlwHandler = new UMLWHandler(getActivity(), "laiwangd497e70d4", "d497e70d4c3e4efeab1381476bac4c5e");
umlwHandler.addToSocialSDK();
umlwHandler.setMessageFrom("友盟分享组件");
//添加来往动态
UMLWHandler umlwDynamicHandler = new UMLWHandler(getActivity(), "laiwangd497e70d4", "d497e70d4c3e4efeab1381476bac4c5e");
umlwDynamicHandler.addToSocialSDK();
umlwDynamicHandler.setMessageFrom("友盟分享组件");
mController.openShare(getActivity(), false);
来往和来往动态分享支持文本,图片,图文,音乐,视屏分享。文本分享会默认添加应用的Icon作为图片;图片分享会默认添加文本,默认文本为/res/values/umeng_socialize_strings.xml中的umeng_socialize_laiwang_default_content字段.
更多详情,请参考social_sdk_example中com.umeng.soexample.socialize.fragments.CustomPlatformFragment类中的addLaiWang方法.
添加微信分享功能
使用微信分享首先需要在,
按照要求填写应用信息,审核通过后获取到微信AppID,AppSecret
填写微信签名
导出带签名的apk文件并安装到手机,同时安装微信 签名工具()在签名工具中输入apk的包名,将获取到的签名填写到微信开放平台,注意签名和包名填写错误会导致点击分享按钮无法进入微信客户端好友选择页面。
使用demo工程说明
如果直接使用demo源码进行编译,需要使用SDK包中附带的debug.keystore(keystore密码为android)进行编译,否则会由于签名验证不一致导致微信分享功能异常,并且由于demo工程提供的微信APPID不具备微信登录权限,因此无法进行微信登录功能测试
添加相关文件
配置Android manifest XML
在AndroidManifest.xml中下注册下面的回调Activity,
直接复制到Android manifest XML 即可,不需要进行修改
android:name=".wxapi.WXEntryActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges="keyboardHidden|orientation|screenSize"
android:exported="true"
android:screenOrientation="portrait" /&
1 解压已下载的zip文件,将platforms/weixin/libs中SocialSDK_WeiXin_1.jar,SocialSDK_WeiXin_2.jar拷贝到工程的libs(如果没有此目录,新建libs目录)目录中.
2 在libs目录中找到SocialSDK_WeiXin_1.jar,SocialSDK_WeiXin_2.jar文件,鼠标右键--&Add to Build Path.
3 将解压目录中platforms/weixin/res拷贝至你工程的res目录
微信分享功能使用了微信原生的jar包,如果你的应用中也引用了微信原生SDK,会出现jar冲突Unable to execute dex: Multiple dex files define
添加微信到分享列表
// wx967daebe835fbeac是你在微信开发平台注册应用的AppID, 这里需要替换成你注册的AppID
String appID = "wx967daebe835fbeac";
String appSecret = "5fa9e68caf83e563c8dcbce";
// 添加微信平台
UMWXHandler wxHandler = new UMWXHandler(getActivity(),appId,appSecret);
wxHandler.addToSocialSDK();
// 支持微信朋友圈
UMWXHandler wxCircleHandler = new UMWXHandler(getActivity(),appId,appSecret);
wxCircleHandler.setToCircle(true);
wxCircleHandler.addToSocialSDK();
注意以上代码必须在弹出分享面板前调用,否则第一次分享时面板中无法出现微信及朋友圈图标
设置分享内容
//设置微信好友分享内容
WeiXinShareContent weixinContent = new WeiXinShareContent();
//设置分享文字
weixinContent.setShareContent("来自友盟社会化组件(SDK)让移动应用快速整合社交分享功能,微信");
//设置title
weixinContent.setTitle("友盟社会化分享组件-微信");
//设置分享内容跳转URL
weixinContent.setTargetUrl("你的URL链接");
//设置分享图片
weixinContent.setShareImage(localImage);
mController.setShareMedia(weixinContent);
//设置微信朋友圈分享内容
CircleShareContent circleMedia = new CircleShareContent();
circleMedia.setShareContent("来自友盟社会化组件(SDK)让移动应用快速整合社交分享功能,朋友圈");
//设置朋友圈title
circleMedia.setTitle("友盟社会化分享组件-朋友圈");
circleMedia.setShareImage(localImage);
circleMedia.setTargetUrl("你的URL链接");
mController.setShareMedia(circleMedia);
接口说明:
微信分享必须设置targetURL,需要为http链接格式
微信朋友圈只能显示title,并且过长会被微信截取部分内容
设置分享消息类型
微信分享支持图文分享、纯图片及纯文字分享,其中图文分享点击会跳转到设置的URL,纯图片分享可以点击查看大图
图文分享方法参考上文,纯图片分享方法只需要去掉文本内容设置即可,代码如下:
//设置微信好友分享内容
WeiXinShareContent weixinContent = new WeiXinShareContent();
//设置title
weixinContent.setTitle("友盟社会化分享组件-微信");
//设置分享内容跳转URL
weixinContent.setTargetUrl("你的URL链接");
//设置分享图片
weixinContent.setShareImage(localImage);
mController.setShareMedia(weixinContent);
//设置微信朋友圈分享内容
CircleShareContent circleMedia = new CircleShareContent();
circleMedia.setShareImage(localImage);
circleMedia.setTargetUrl("你的URL链接");
mController.setShareMedia(circleMedia);
纯文本分享方法与纯图片类似,去掉分享图片即可
设置分享样式
使用友盟默认分享面板
使用友盟默认的分享面板,只需在分享按钮中添加如下代码:
mController.openShare(getActivity(), false);
使用自定义分享面板
自定义分享面板主要针对希望自定义分享列表选择界面的开发者,开发者需要自行实现分享列表的选择页,在分享到微信的按钮中实现下面的方法:
mController.postShare(mContext,SHARE_MEDIA.WEIXIN,
new SnsPostListener() {
public void onStart() {
Toast.makeText(mContext, "开始分享.", Toast.LENGTH_SHORT).show();
public void onComplete(SHARE_MEDIA platform, int eCode,SocializeEntity entity) {
if (eCode == 200) {
Toast.makeText(mContext, "分享成功.", Toast.LENGTH_SHORT).show();
String eMsg = "";
if (eCode == -101){
eMsg = "没有授权";
Toast.makeText(mContext, "分享失败[" + eCode + "] " +
eMsg,Toast.LENGTH_SHORT).show();
分享到微信朋友圈将平台参数替换即可
mController.postShare(mContext,SHARE_MEDIA.WEIXIN_CIRCLE,
new SnsPostListener() ;
注册微信回调方法
在AndroidManifest.xml中下注册下面的回调Activity,
直接复制到Android manifest XML 即可,不需要进行修改
android:name=".wxapi.WXEntryActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges="keyboardHidden|orientation|screenSize"
android:exported="true"
android:screenOrientation="portrait" /&
将SDK包weixin目录下的wxapi文件夹拷贝到您的工程的包目录下, 然后修改WXEntryActivity的完整路径即可。
例如social_sdk_example的包名为com.umeng.soexample,因此将wxapi文件夹拷贝到com.umeng.soexample下,最终WXEntryActivity的 完整路径为com.umeng.soexample.wxapi.WXEntryActivity。
注册微信回调代码:
mSnsPostListener
= new SnsPostListener() {
public void onStart() {
public void onComplete(SHARE_MEDIA platform, int stCode,
SocializeEntity entity) {
if (stCode == 200) {
Toast.makeText(MainActivity.this, "分享成功", Toast.LENGTH_SHORT)
Toast.makeText(MainActivity.this,
"分享失败 : error code : " + stCode, Toast.LENGTH_SHORT)
mController.registerListener(mSnsPostListener);
添加QQ好友和QQ空间分享
在腾讯开放平台( 注册自己的应用,按照QQ官方要求填写,获取APPID及appkey,并且将APPID及appkey绑定在友盟主站后台,
同时注意在应用审核通过前必须添加测试账号,否则会出现110406报错。
添加相关文件
添加相关的资源文件及jar包
1 解压已下载的zip文件,将platforms/qq_zone/libs中SocialSDK_QQZone_1.jar,SocialSDK_QQZone_2.jar,SocialSDK_QQZone_3.jar拷贝到工程的libs(如果没有此目录,新建libs目录)目录中。
2 在libs目录中找到SocialSDK_QQZone_1.jar,SocialSDK_QQZone_2.jar,SocialSDK_QQZone_3.jar文件,鼠标右键--&Add to Build Path。
3 将解压目录中platforms/qq_zone/res文件拷贝至你工程res目录。
修改Android manifest XML
在Android manifest XML中直接复制下面的代码:
&!-- ############ QQ空间和QQ SSO授权的Activity注册 ############ --&
android:name="com.tencent.tauth.AuthActivity"
android:launchMode="singleTask"
android:noHistory="true" &
&intent-filter&
&action android:name="android.intent.action.VIEW" /&
&category android:name="android.intent.category.DEFAULT" /&
&category android:name="android.intent.category.BROWSABLE" /&
&data android:scheme="tencent你的QQ互联APPID" /&
&/intent-filter&
&/activity&
&activity android:name="com.mon.AssistActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:screenOrientation="portrait"&
&/activity&
&!-- QQ、QQ空间所需权限 --&
&uses-permission android:name="android.permission.GET_TASKS" /&
添加QQ及QQ空间到分享列表中
添加QQ在分享列表页中
//参数1为当前Activity, 参数2为开发者在QQ互联申请的APP ID,参数3为开发者在QQ互联申请的APP kEY.
UMQQSsoHandler qqSsoHandler = new UMQQSsoHandler(getActivity(), "",
"caab60104f0ba");
qqSsoHandler.addToSocialSDK();
添加Qzone在分享列表页中
//参数1为当前Activity, 参数2为开发者在QQ互联申请的APP ID,参数3为开发者在QQ互联申请的APP kEY.
QZoneSsoHandler qZoneSsoHandler = new QZoneSsoHandler(getActivity(), "",
"caab60104f0ba");
qZoneSsoHandler.addToSocialSDK();
使用QQ及QQ空间分享,将代码中的APPID及appkey全部替换为自己在QQ互联申请获取的APPID及appkey,否则分享完成后可能无法返回自己的应用,或弹出选择应用对话框
设置分享内容
设置QQ分享文字及图片
设置QQ分享内容
QQ支持分享文字、图片、网页形式以及视频音乐等多媒体资源,但是分享音乐等多媒体资源必须要跳转到网页,然后点击播放。
设置QQ分享内容使用下面的代码:
QQShareContent qqShareContent = new QQShareContent();
//设置分享文字
qqShareContent.setShareContent("来自友盟社会化组件(SDK)让移动应用快速整合社交分享功能 -- QQ");
//设置分享title
qqShareContent.setTitle("hello, title");
//设置分享图片
qqShareContent.setShareImage(new UMImage(getActivity(), R.drawable.icon));
//设置点击分享内容的跳转链接
qqShareContent.setTargetUrl("你的URL链接");
mController.setShareMedia(qqShareContent);
设置Qzone分享文字及内容
设置Qzone分享内容
Qzone分享只支持图文形式分享,并且点击图文消息会跳转到预设的链接,图文分享只展示缩略图,**无法查看大图**
设置Qzone分享内容使用下面的代码:
QZoneShareContent qzone = new QZoneShareContent();
//设置分享文字
qzone.setShareContent("来自友盟社会化组件(SDK)让移动应用快速整合社交分享功能 -- QZone");
//设置点击消息的跳转URL
qzone.setTargetUrl("你的URL链接");
//设置分享内容的标题
qzone.setTitle("QZone title");
//设置分享图片
qzone.setShareImage(urlImage);
mController.setShareMedia(qzone);
设置QQ分享消息类型
QQ好友分享支持纯文字、纯图片、图文分享及音乐等多媒体资源,其中 图文分享点击会跳转到预设URL,无法查看大图
,需要点击查看大图需要设置为纯图片类型,方法如下:
QQShareContent qqShareContent = new QQShareContent();
//设置分享title
qqShareContent.setTitle("hello, title");
//设置分享图片
qqShareContent.setShareImage(new UMImage(getActivity(), R.drawable.icon));
//设置点击分享内容的跳转链接
qqShareContent.setTargetUrl("你的URL链接");
mController.setShareMedia(qqShareContent);
实现纯文字分享只需要去掉ShareImage部分即可
设置分享样式
使用友盟默认的分享列表选择页
使用友盟默认的分享面板,只需在分享按钮中添加如下代码:
mController.openShare(getActivity(), false);
使用自定义分享列表选择页面
自定义分享面板主要针对希望自定义分享列表选择界面的开发者,开发者需要自行实现分享列表的选择页,在分享到QQ的按钮中实现下面的方法:
mController.postShare(mContext,SHARE_MEDIA.QQ,
new SnsPostListener() {
public void onStart() {
Toast.makeText(mContext, "开始分享.", Toast.LENGTH_SHORT).show();
public void onComplete(SHARE_MEDIA platform, int eCode,SocializeEntity entity) {
if (eCode == 200) {
Toast.makeText(mContext, "分享成功.", Toast.LENGTH_SHORT).show();
String eMsg = "";
if (eCode == -101){
eMsg = "没有授权";
Toast.makeText(mContext, "分享失败[" + eCode + "] " +
eMsg,Toast.LENGTH_SHORT).show();
分享到Qzone的方法和QQ方法相同,只需将参数名替换为Qzone即可
mController.postShare(mContext,SHARE_MEDIA.QZONE,
new SnsPostListener() {
添加SSO授权方式
SSO授权概述
SSO英文全称Single Sign On,单点登录。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。
例如用户已经登录新浪微博客户端,使用SSO授权登录时则不需要用户手动输入用户名、密码,直接点击登录即可, 因此可成为免登录.
注意:SSO授权只针对授权过程,后续的分享仍然通过网页分享,不通过客户端完成分享流程
实现SSO授权必须自己在第三方平台注册应用,获取appkey及secret
注册新浪微博
新浪微博开放平台地址为:
在新浪微博开放平台注册应用后,注意按照新浪微博的要求填写应用签名及包名
同时在应用信息--基本信息页中将安全域名填写为
最后将获取到的appkey及secret绑定在友盟后台--组件--社会化分享--自定义设置--新浪
注意在友盟主站后台左上角需要勾选自己的APP,否则无法进入该页面
注册人人网
人人网开放平台地址为:
在人人网注册应用,按照要求填写相关信息,注意将**应用根域名字段填写为“”,** 将获取到的appkey及secret绑定在友盟后台--组件--社会化分享--自定义设置--人人
添加SSO相关回调
如果有使用任一平台的SSO授权或者集成了facebook平台, 则必须在对应的activity中实现onActivityResult方法, 并添加如下代码
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
/**使用SSO授权必须添加如下代码 */
UMSsoHandler ssoHandler = mController.getConfig().getSsoHandler(requestCode) ;
if(ssoHandler != null){
ssoHandler.authorizeCallBack(requestCode, resultCode, data);
注意onActivityResult方法必须写在分享所在的Activity或fragment依赖的Activity中,不可以直接写在fragment中
添加新浪微博SSO授权
添加相关文件
将platforms/sina/libs中的SocialSDK_Sina.jar添加到工程libs中并将该jar加入到build path中。
添加集成代码
使用新浪微博SSO授权添加下面的集成代码:
//设置新浪SSO handler
mController.getConfig().setSsoHandler(new SinaSsoHandler());
在对应的activity中实现onActivityResult方法, 并添加如下代码
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
/**使用SSO授权必须添加如下代码 */
UMSsoHandler ssoHandler = mController.getConfig().getSsoHandler(requestCode) ;
if(ssoHandler != null){
ssoHandler.authorizeCallBack(requestCode, resultCode, data);
注意onActivityResult方法必须写在分享所在的Activity或fragment依赖的Activity中,不可以直接写在fragment中
添加人人网SSO授权
添加相关文件
1.解压已下载的zip文件,将platforms/renren/libs/SocialSDK_renren_1.jar,SocialSDK_renren_2.jar,拷贝到你工程libs目录中。
2.在libs工程找到SocialSDK_renren_1.jar,SocialSDK_renren_2.jar文件,鼠标右键--&Add to Build Path。
添加集成代码
使用人人网SSO授权添加下面的集成代码:
//添加人人网SSO授权功能
//APPID:201874
//API Key:f04a72a14c812d6132fcef
//Secret:3bf66e42db1e4fa0b737
RenrenSsoHandler renrenSsoHandler = new RenrenSsoHandler(getActivity(),
"201874", "f04a72a14c812d6132fcef",
"3bf66e42db1e4fa0b737");
mController.getConfig().setSsoHandler(renrenSsoHandler);
在SDK中的OAuth授权部分包含了Activity,为了程序能正常允许,请将以下Activity信息在您的应该工程Androidmanefest.xml中注册:
&activity android:name="com.renn.rennsdk.oauth.OAuthActivity"
android:configChanges="orientation|navigation|keyboardHidden"/&
然后添加如下权限 :
&uses-permission android:name="android.permission.GET_TASKS" /&
&uses-permission android:name="android.permission.SET_DEBUG_APP" /&
&uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /&
&uses-permission android:name="android.permission.GET_ACCOUNTS" /&
&uses-permission android:name="android.permission.USE_CREDENTIALS" /&
&uses-permission android:name="android.permission.MANAGE_ACCOUNTS" /&
1.手机中必须安装人人客户端V5.9.3及以上的版本才支持SSO功能。
2.由于人人SSO没有提供回调,因此人人SSO不会在onActivityResult方法内被调用(人人SSO授权流程不经过onActivityResult方法)。
设置分享内容方法
设置分享内容
设置分享内容包括文字、图片及其他多媒体资源、跳转链接
// 设置分享内容
mController.setShareContent("友盟社会化组件(SDK)让移动应用快速整合社交分享功能,/social");
// 设置分享图片, 参数2为图片的url地址
mController.setShareMedia(new UMImage(getActivity(),
"/img/bdlogo.png"));
新浪微博、腾讯微博及豆瓣的跳转链接只能设置在分享文字之中,以http形式传递即可
设置分享图片
分享图片支持本地图片、URL图片,其中本地图片支持绝对路径及资源引用两种方式
设置URL图片方法:
mController.setShareMedia(new UMImage(getActivity(),
"/img/bdlogo.png"));
传递本地图片绝对路径方法:
mController.setShareMedia(new UMImage(getActivity(),
BitmapFactory.decodeFile("/mnt/sdcard/icon.png")));
传递本地图片资源引用方法:
mController.setShareMedia(new UMImage(getActivity(), R.drawable.icon));
设置音乐等多媒体资源
设置音乐资源
分享音乐只支持URL封装的音乐资源,不支持本地音乐
UMusic uMusic = new UMusic("/song/254270/");
uMusic.setAuthor("GuGu");
uMusic.setTitle("天籁之音");
// 设置音乐缩略图
uMusic.setThumb("/img/bdlogo.png");
mController.setShareMedia(uMusic);
设置视频资源
分享视频资源同样只支持URL资源
// 设置分享视频
UMVideo umVideo = new UMVideo(
"/v_show/id_XNTE5ODAwMDM2.html?f=");
// 设置视频缩略图
umVideo.setThumb("/img/bdlogo.png");
umVideo.setTitle("友盟社会化分享!");
mController.setShareMedia(umVideo);
分平台设置分享内容
给不同的平台设置不同的分享内容,其中不同平台的多媒体、文字内容都可以定制化。当某个平台没有设置定制化的分享内容时,
将会使用默认设置的分享内容。
以下以单独设置腾讯微博分享视频为例:
UMVideo umVideo = new UMVideo(
"/v_show/id_XNTc0ODM4OTM2.html");
umVideo.setThumb("/img/bdlogo.png");
umVideo.setTitle("友盟社会化组件视频");
TencentWbShareContent tencentContent = new TencentWbShareContent(umVideo);
// 设置分享到腾讯微博的文字内容
tencentContent.setShareContent("来自友盟社会化组件(SDK)让移动应用快速整合社交分享功能,腾讯微博");
// 设置分享到腾讯微博的多媒体内容
mController.setShareMedia(tencentContent);
其他平台单独设置内容参照上面代码即可,只需替换平台参数名
SinaShareContent
TencentWbShareContent
RenrenShareContent
DoubanShareContent
TwitterShareContent
GooglePlusShareContent
第三方登录
第三方登录概述
第三方登录定义
第三方登录主要用于简化用户登录流程,通过用户拥有的微博、QQ、微信等第三方账号进行登录并且构建APP自己的登录账号体系。
实现第三方登录的方法
实现第三方登录主要通过下面两步:
在第三方平台完成授权
获取第三方平台的accesstoken信息及用户资料
第三方登录支持的平台
目前友盟社会化组件支持的第三方登录平台为:新浪微博、腾讯微博、QQ、QQ空间、微信、人人网、豆瓣。
实现OAuth授权
添加成员变量
首先在activity页里添加下面的成员变量
UMSocialService mController = UMServiceFactory.getUMSocialService("com.umeng.login");
UMSocialService.doOauthVerify(Context context , SHARE_MEDIA platform , UMAuthListener listener)
接口说明:该接口调用将调出授权页进行授权操作。该接口不支持twitter,G+,易信,来往授权。
以下代码以新浪微博为例:
在新浪微博登录按钮中实现下面的方法,点击按钮则弹出新浪微博登录页面
mController.doOauthVerify(MainActivity.this, SHARE_MEDIA.SINA,new UMAuthListener() {
public void onError(SocializeException e, SHARE_MEDIA platform) {
public void onComplete(Bundle value, SHARE_MEDIA platform) {
if (value != null && !TextUtils.isEmpty(value.getString("uid"))) {
Toast.makeText(MainActivity.this, "授权成功.",
Toast.LENGTH_SHORT).show();
Toast.makeText(MainActivity.this, "授权失败",
Toast.LENGTH_SHORT).show();
public void onCancel(SHARE_MEDIA platform) {}
public void onStart(SHARE_MEDIA platform) {}
获取accesstoken及用户资料
UMSocialService.getPlatformInfo(Context context , SHARE_MEDIA platform , UMDataListener listener)
接口说明:获取已授权平台的用户信息,accesstoken等信息。该接口不支持twitter,G+,易信,来往。
以下代码以新浪微博为例:
mController.getPlatformInfo(MainActivity.this, SHARE_MEDIA.SINA, new UMDataListener() {
public void onStart() {
Toast.makeText(MainActivity.this, "获取平台数据开始...", Toast.LENGTH_SHORT).show();
public void onComplete(int status, Map&String, Object& info) {
if(status == 200 && info != null){
StringBuilder sb = new StringBuilder();
Set&String& keys = info.keySet();
for(String key : keys){
sb.append(key+"="+info.get(key).toString()+"\r\n");
Log.d("TestData",sb.toString());
Log.d("TestData","发生错误:"+status);
新浪微博SSO登录方法
添加需要的文件
确认将sina_jar添加到工程build path路径下
配置sina SSO(免登录)开关
//设置新浪SSO handler
mController.getConfig().setSsoHandler(new SinaSsoHandler());
添加相关回调
在对应的activity中实现onActivityResult方法, 并添加如下代码
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
/**使用SSO授权必须添加如下代码 */
UMSsoHandler ssoHandler = mController.getConfig().getSsoHandler(requestCode);
if(ssoHandler != null){
ssoHandler.authorizeCallBack(requestCode, resultCode, data);
填写签名与包名
在新浪微博开放平台申请应用,并且填写应用签名与包名,将申请获取的appkey及secret绑定在友盟主站后台。
实现QQ登录
添加相关文件
解压已下载的zip文件,将platforms/qq_zone/libs中SocialSDK_QQZone_1.jar,SocialSDK_QQZone_2.jar,SocialSDK_QQZone_3.jar拷贝到工程的libs(如果没有此目录,新建libs目录)目录中。
鼠标右键--&Add to Build Path。
将解压目录中platforms/qq_zone/res文件拷贝至你工程res目录
添加配置代码
//参数1为当前Activity, 参数2为开发者在QQ互联申请的APP ID,参数3为开发者在QQ互联申请的APP kEY.
UMQQSsoHandler qqSsoHandler = new UMQQSsoHandler(getActivity(), "",
"caab60104f0ba");
qqSsoHandler.addToSocialSDK();
修改Android manifest XML中的配置
&!-- ############ QQ空间和QQ SSO授权的Activity注册 ############ --&
android:name="com.tencent.tauth.AuthActivity"
android:launchMode="singleTask"
android:noHistory="true" &
&intent-filter&
&action android:name="android.intent.action.VIEW" /&
&category android:name="android.intent.category.DEFAULT" /&
&category android:name="android.intent.category.BROWSABLE" /&
&data android:scheme="tencent你的QQ互联APPID" /&
&/intent-filter&
&/activity&
&activity android:name="com.mon.AssistActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:screenOrientation="portrait"&
&/activity&
实现授权及获取用户资料
在QQ登录按钮中实现下面的方法
mController.doOauthVerify(mContext, SHARE_MEDIA.QQ, new UMAuthListener() {
public void onStart(SHARE_MEDIA platform) {
Toast.makeText(mContext, "授权开始", Toast.LENGTH_SHORT).show();
public void onError(SocializeException e, SHARE_MEDIA platform) {
Toast.makeText(mContext, "授权错误", Toast.LENGTH_SHORT).show();
public void onComplete(Bundle value, SHARE_MEDIA platform) {
Toast.makeText(mContext, "授权完成", Toast.LENGTH_SHORT).show();
//获取相关授权信息
mController.getPlatformInfo(MainActivity.this, SHARE_MEDIA.QQ, new UMDataListener() {
public void onStart() {
Toast.makeText(MainActivity.this, "获取平台数据开始...", Toast.LENGTH_SHORT).show();
public void onComplete(int status, Map&String, Object& info) {
if(status == 200 && info != null){
StringBuilder sb = new StringBuilder();
Set&String& keys = info.keySet();
for(String key : keys){
sb.append(key+"="+info.get(key).toString()+"\r\n");
Log.d("TestData",sb.toString());
Log.d("TestData","发生错误:"+status);
public void onCancel(SHARE_MEDIA platform) {
Toast.makeText(mContext, "授权取消", Toast.LENGTH_SHORT).show();
实现微信登录
添加微信相关文件
1 解压已下载的zip文件,将platforms/weixin/libs中SocialSDK_WeiXin_1.jar,SocialSDK_WeiXin_2.jar拷贝到工程的libs(如果没有此目录,新建libs目录)目录中.
2 在libs目录中找到SocialSDK_WeiXin_1.jar,SocialSDK_WeiXin_2.jar文件,鼠标右键--&Add to Build Path.
3 将解压目录中platforms/weixin/res拷贝至你工程的res目录
申请微信登录权限
参照 注册应用及填写签名,并且 申请微信登录权限
添加微信配置
// 添加微信平台
UMWXHandler wxHandler = new UMWXHandler(getActivity(),appId,appSecret);
wxHandler.addToSocialSDK();
在AndroidManifest.xml中下注册下面的回调Activity,
直接复制到Android manifest XML 即可,不需要进行修改
android:name=".wxapi.WXEntryActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges="keyboardHidden|orientation|screenSize"
android:exported="true"
android:screenOrientation="portrait" /&
将SDK包weixin目录下的wxapi文件夹拷贝到您的工程的包目录下, 然后修改WXEntryActivity的完整路径即可。
例如social_sdk_example的包名为com.umeng.soexample,因此将wxapi文件夹拷贝到com.umeng.soexample下,最终WXEntryActivity的 完整路径为com.umeng.soexample.wxapi.WXEntryActivity。
实现授权及获取用户资料
在微信登录按钮中实现下面的方法
mController.doOauthVerify(mContext, SHARE_MEDIA.WEIXIN, new UMAuthListener() {
public void onStart(SHARE_MEDIA platform) {
Toast.makeText(mContext, "授权开始", Toast.LENGTH_SHORT).show();
public void onError(SocializeException e, SHARE_MEDIA platform) {
Toast.makeText(mContext, "授权错误", Toast.LENGTH_SHORT).show();
public void onComplete(Bundle value, SHARE_MEDIA platform) {
Toast.makeText(mContext, "授权完成", Toast.LENGTH_SHORT).show();
//获取相关授权信息
mController.getPlatformInfo(MainActivity.this, SHARE_MEDIA.WEIXIN, new UMDataListener() {
public void onStart() {
Toast.makeText(MainActivity.this, "获取平台数据开始...", Toast.LENGTH_SHORT).show();
public void onComplete(int status, Map&String, Object& info) {
if(status == 200 && info != null){
StringBuilder sb = new StringBuilder();
Set&String& keys = info.keySet();
for(String key : keys){
sb.append(key+"="+info.get(key).toString()+"\r\n");
Log.d("TestData",sb.toString());
Log.d("TestData","发生错误:"+status);
public void onCancel(SHARE_MEDIA platform) {
Toast.makeText(mContext, "授权取消", Toast.LENGTH_SHORT).show();
注销登录的方法
注销登录用于清空已经获取的accesstoken信息,注销之后,下次用户需要重新输入密码完成登录过程。
以新浪微博为例,注销新浪微博登录方法为:
mController.deleteOauth(mContext, SHARE_MEDIA.SINA,
new SocializeClientListener() {
public void onStart() {
public void onComplete(int status, SocializeEntity entity) {
if (status == 200) {
Toast.makeText(mContext, "删除成功.",
Toast.LENGTH_SHORT).show();
Toast.makeText(mContext, "删除失败",
Toast.LENGTH_SHORT).show();
平台jar文件对应列表
SocialSDK_TencentWB_1.jar,SocialSDK_TencentWB_2.jar
SocialSDK_QQZone_1.jar,SocialSDK_QQZone_2.jar,SocialSDK_QQZone_3.jar
SocialSDK_WeiXin.jar
SocialSDK_QQZone_1.jar,SocialSDK_QQZone_2.jar,SocialSDK_QQZone_3.jar
应用信息注册地址列表
下面是Social SDK不同平台应用信息注册网站的地址:
为了保证引用友盟Social SDK jar文件以及腾讯jar文件被混淆,请在proguard.cfg文件中添加以下代码避免被混淆.
-dontshrink
-dontoptimize
-dontwarn com.google.android.maps.**
-dontwarn android.webkit.WebView
-dontwarn com.umeng.**
-dontwarn com.tencent.weibo.sdk.**
-dontwarn com.facebook.**
-libraryjars libs/SocialSDK_QQZone_2.jar
-keep enum com.facebook.**
-keepattributes Exceptions,InnerClasses,Signature
-keepattributes *Annotation*
-keepattributes SourceFile,LineNumberTable
-keep public interface com.facebook.**
-keep public interface com.tencent.**
-keep public interface com.umeng.socialize.**
-keep public interface com.umeng.socialize.sensor.**
-keep public interface com.umeng.scrshot.**
-keep public class com.umeng.socialize.* {*;}
-keep public class javax.**
-keep public class android.webkit.**
-keep class com.facebook.**
-keep class com.umeng.scrshot.**
-keep public class com.tencent.** {*;}
-keep class com.umeng.socialize.sensor.**
-keep class com.tencent.mm.sdk.modelmsg.WXMediaMessage {*;}
-keep class com.tencent.mm.sdk.modelmsg.** implements com.tencent.mm.sdk.modelmsg.WXMediaMessage$IMediaObject {*;}
-keep class im.yixin.sdk.api.YXMessage {*;}
-keep class im.yixin.sdk.api.** implements im.yixin.sdk.api.YXMessage$YXMessageData{*;}
-keep public class [your_pkg].R$*{
public static final int *;
国外分享平台的集成
支持的国外平台概述
友盟社会化组件支持多个国外平台的分享功能,包括:Facebook、Twitter、Instagram、印象笔记、Pinterest、Linkedlin、Pocket、G+ ,国外分享平台凡直接调用客户端进行分享,均不支持URL图片及资源的分享,因此调用时使用本地图片,或将URL图片进行下载再分享
添加Facebook分享
在 注册应用,未审核通过前,如果需要其他用户参与测试,则需要在facebook开发者官网添加测试帐号。
添加相关文件及资源
1.解压已下载的zip文件,将platforms/facebook目录中的SocialSDK_facebook_1.jar,SocialSDK_facebook_2.jar拷贝到工程的libs(如果没有此目录,新建libs目录)目录中.
2.把工程中libs目录下的SocialSDK_facebook_1.jar,SocialSDK_facebook_2.jar文件添加到编译路径,操作方式为点击鼠标右键--&Add to Build Path.
3.将解压目录中platforms/facebook/res拷贝至你工程的res目录.
添加Facebook到分享列表
注册Android manifest XML
&!-- facebook相关 --&
android:name="com.facebook.FacebookActivity"
android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
android:label="@string/app_name"
android:theme="@android:style/Theme.Translucent.NoTitleBar" /&
android:name="com.facebook.FacebookContentProvider"
android:authorities="com.facebook.app.FacebookContentProvider[FB的AppId]"
android:exported="true" /&
&meta-data
android:name="com.facebook.sdk.ApplicationId"
android:value="@string/facebook_app_id" /&
然后在你的res/values/strings.xml中,对facebook_app_id进行定义。
添加集成代码
Facebook对Activity和Fragment的集成方式做了不同的处理,分别如下:
1:Activity的方式集成
1.1 添加如下代码:
UMFacebookHandler mFacebookHandler = UMFacebookHandler(activity);
mFacebookHandler.addToSocialSDK();
1.2 在你的Activity中覆盖onActivityResult方法。如下:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// 根据requestCode获取对应的SsoHandler
UMSsoHandler ssoHandler = mController.getConfig().getSsoHandler(
requestCode);
if (ssoHandler != null) {
ssoHandler.authorizeCallBack(requestCode, resultCode, data);
2:Fragment的方式集成
2.1 添加如下代码:
UMFacebookHandler mFacebookHandler = UMFacebookHandler(fragment);
mFacebookHandler.addToSocialSDK();
2.2 在你的Fragment中覆盖onActivityResult方法,如下:
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
UMSsoHandler ssoHandler = mController.getConfig().getSsoHandler(
requestCode);
if (ssoHandler != null) {
ssoHandler.authorizeCallBack(requestCode, resultCode, data);
注意:Facebook在有客户端的时候分享支持的的类型有:纯文本、纯图片(url和本地)、图文(图片必须是url);在无客户端的时候仅仅支持纯文本分享。对于纯文本、图文必须设置targetUrl字段。
添加Twitter分享
添加Twitter到分享列表中
添加下面的集成代码即可将Twitter添加到分享列表中
mController.getConfig()supportAppPlatform(mContext, SHARE_MEDIA.TWITTER,
"这里你构造mController填写的字符串参数", true) ;
Twitter分享不支持URL图片分享,因此需要传递本地图片
添加Instagram分享
添加相关文件及资源
1 解压已下载的zip文件,将platforms/instagram/libs目录下的SocialSDK_instagram.jar拷贝到工程的libs(如果没有此目录,新建libs目录)目录中.
2 把工程目录的libs目录下的SocialSDK_instagram.jar文件添加到编译路径,操作方式为点击鼠标右键--&Add to Build Path.
3 将instagram中res目录下的资源文件添加到工程对应的文件夹下
添加Instagram到分享列表
在集成代码中添加下面的代码
// 构建Instagram的Handler
UMInstagramHandler instagramHandler = new UMInstagramHandler(getActivity());
// 将instagram添加到sdk中
instagramHandler.addToSocialSDK();
// 本地图片
UMImage localImage = new UMImage(getActivity(), R.drawable.testimg);
// 设置分享到Instagram的内容, 注意由于instagram客户端的限制,目前该平台只支持纯图片分享,文字、音乐、url图片等都无法分享。
InstagramShareContent instagramShareContent = new InstagramShareContent(localImage);
// 设置Instagram的分享内容
mController.setShareMedia(instagramShareContent);
更多详情,请参考social_sdk_example中com.umeng.soexample.socialize.fragments.CustomPlatformFragment类中的addInstagram方法.
添加印象笔记分享
添加相关文件及资源
1.解压已下载的zip文件,将platforms/evernote/libs/SocialSDK_evernote.jar拷贝到你工程libs目录中。
2.在libs工程找到SocialSDK_evernote.jar文件,鼠标右键--&Add to Build Path。
3.将res中的资源添加到你工程对应的res目录中。
添加印象笔记到分享列表
在集成代码中添加下面的代码
// 添加evernote平台
UMEvernoteHandler evernoteHandler = new UMEvernoteHandler(getActivity());
evernoteHandler.addToSocialSDK();
添加WhatsApp分享
添加相关文件及资源
1.解压已下载的zip文件,将platforms/whatsapp/libs/SocialSDK_whatsapp.jar拷贝到你工程libs目录中。
2.在libs工程找到SocialSDK_whatsapp.jar文件,鼠标右键--&Add to Build Path。
3.将res中的资源添加到你工程对应的res目录中。
添加Pinterest到分享列表
在集成代码中添加下面的代码
// 添加WhatsApp平台
UMWhatsAppHandler whatsAppHandler = new UMWhatsAppHandler(getActivity());
whatsAppHandler.addToSocialSDK();
添加如上代码后,WhatsApp平台就会添加到SDK中
添加Line分享
添加相关文件及资源
1.解压已下载的zip文件,将platforms/line/libs/SocialSDK_line.jar拷贝到你工程libs目录中。
2.在libs工程找到SocialSDK_line.jar文件,鼠标右键--&Add to Build Path。
3.将res中的资源添加到你工程对应的res目录中。
添加Line到分享列表
在集成代码中添加下面代码
// 添加LINE平台
UMLineHandler lineHandler = new UMLineHandler(getActivity());
lineHandler.addToSocialSDK();
添加Tumblr分享
添加相关文件及资源
1.解压已下载的zip文件,将platforms/tumblr/libs/SocialSDK_tumblr.jar拷贝到你工程libs目录中。
2.在libs工程找到SocialSDK_tumblr.jar文件,鼠标右键--&Add to Build Path。
3.将res中的资源添加到你工程对应的res目录中。
添加Tumblr到分享列表
在集成代码中添加下面代码
// 添加Tumblr平台
UMTumblrHandler tumblrHandler = new UMTumblrHandler(getActivity());
tumblrHandler.addToSocialSDK();
添加KaKao分享
添加相关文件及资源
1.解压已下载的zip文件,将platforms/kakao/libs/SocialSDK_kakao.jar拷贝到你工程libs目录中。
2.在libs工程找到SocialSDK_kakao.jar文件,鼠标右键--&Add to Build Path。
3.将res中的资源添加到你工程对应的res目录中。
添加Kakao到分享列表
在集成代码中添加下面的代码
// 添加KaKao平台
UMKakaoHandler kakaoHandler = new UMKakaoHandler(getActivity());
kakaoHandler.addToSocialSDK();
添加flickr分享
添加相关文件及资源
1.解压已下载的zip文件,将platforms/flickr/libs/SocialSDK_flickr.jar拷贝到你工程libs目录中。
2.在libs工程找到SocialSDK_flickr.jar文件,鼠标右键--&Add to Build Path。
3.将res中的资源添加到你工程对应的res目录中。
添加Flickr到分享列表
在集成代码中添加下面的代码
// 添加Flickr平台
UMFlickrHandler flickrHandler = new UMFlickrHandler(getActivity());
flickrHandler.addToSocialSDK();
添加相关文件及资源
1.解压已下载的zip文件,将platforms/pinterest/libs/SocialSDK_pinterest.jar拷贝到你工程libs目录中。
2.在libs工程找到SocialSDK_pinterest.jar文件,鼠标右键--&Add to Build Path。
3.将res中的资源添加到你工程对应的res目录中。
添加Pinterest到分享列表
在集成代码中添加下面的代码
// 添加pinterest平台
UMPinterestHandler pinterestHandler = new UMPinterestHandler(getActivity(),"你的app id");
pinterestHandler.addToSocialSDK();
添加LinkedIn分享
添加相关文件及资源
1.解压已下载的zip文件,将platforms/linkedin/libs/SocialSDK_linkedin.jar拷贝到你工程libs目录中。
2.在libs工程找到SocialSDK_linkedin.jar文件,鼠标右键--&Add to Build Path。
3.将res中的资源添加到你工程对应的res目录中。
添加LinkedIn到分享列表
在集成代码中添加下面的代码
// 添加LinkedIn平台
UMLinkedInHandler linkedInHandler = new UMLinkedInHandler(getActivity());
linkedInHandler.addToSocialSDK();
添加Pocket分享
添加相关文件及资源
1.解压已下载的zip文件,将platforms/pocket/libs/SocialSDK_pocket.jar拷贝到你工程libs目录中。
2.在libs工程找到SocialSDK_pocket.jar文件,鼠标右键--&Add to Build Path。
3.将res中的资源添加到你工程对应的res目录中。
添加Pocket到分享列表
在集成代码中添加下面的代码
// 添加Pocket平台
UMPocketHandler pocketHandler = new UMPocketHandler(getActivity());
pocketHandler.addToSocialSDK();
添加G+分享
添加G+在分享列表中,调用下面的代码:
mController.getConfig()supportAppPlatform(mContext, SHARE_MEDIA.GOOGLEPLUS,
"这里你构造mController填写的字符串参数", true) ;
打开**com.umeng.socialize.utils.Log.LOG = true**,可在LogCat中观察错误日志
如果返回错误码不在以下表格中,请查阅相关分享平台错误码.
Social错误代码及错误信息
错误的友盟appkey,或者此appkey没有绑定任何平台.如果开发者绑定了,依然出现这个问题,让开发者再试一下,可能是刚绑定马上就测试的原因,最好等2分钟。
这个友盟appkey已经被禁止
请求的参数中没有uid
未知的错误,具体的错误信息会在log的输出中
访问频率超限,可一会儿再试
请求参数中没有content字段
请求参数中content字段的内容为空
没有上传图片
此友盟的appkey没有绑定对应平台的appkey和appsecret
userid无效,这个用户并没有进行授权
请求的参数中没有appkey这个字段
没有对此用户进行授权
分享信息重复
分享图片大小有问题
获取access token失败,具体看log输出
获取access token失败,具体看log输出
授权已经过期
授权已经过期
请求中没有state参数
发送了重复内容的微博
图像文件大小不正确
appurl不正确
图像url不正确
没有使用Qzone add_share接口的权限
该用户已经关注过了
没有使用此api的权限
openid错误
用户不存在或者用户无法在平台发言
请求参数非法
用户不在平台的应用测试列表当中
发布内容频率太高
IMEI参数错误
此App尚未授权过
给定uid的用户并不存在
绑定账户失败
网络异常或连接服务器失败
获取评论失败
用户被加入黑名单
获取好友失败
获取授权url失败
解除授权失败
获取bar失败
从平台获取用户信息失败
url跳转失败
从social获取用户信息失败
请求的参数错误
请求喜欢失败
版本号错误
没有Oauth授权
服务器没响应
初始化失败
其他平台错误码}

我要回帖

更多关于 新浪微博sso是什么 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信