帮助与文档

> >

一、设置和取消SSO

新浪微博、腾讯微博、QQ空间、人人网、Facebook和Dropbox已经提供了Single Sign-On(SSO)的授权方式。就是利用这些平台的手机客户端来完成授权。由于SSO的授权方式对于用户来说更加便捷,因此各大平台均建议开发者优先使用这一种授权方式。ShareSDK提供SSO的授权实现,并且默认情况下是使用的。但是如果您想关闭SSO功能,可以调用类似于下面的代码来关闭:

Platform facebook = ShareSDK.getPlatform(Facebook.NAME);
facebook.SSOSetting(true); // true表示不使用SSO方式授权
facebook.setPlatformActionListener(paListener);
facebook.authorize();

为方法SSOSetting传递参数true,表示不使用SSO方式授权。

二、新浪微博

新浪官方微博客户端自版本4.0以后升级了SSO授权验证机制,会在授权的时候验证第三方应用的包名与签名的有效性。这些数据会在开放平台上注册应用时要求开发者填写,操作步骤类似于微信开放平台上的操作,可以参考微信的注册和签名中的说明,或者阅读新浪微博官方文档的说明。
为了简化开发者的集成步骤,ShareSDK已经将原来的“com.sina.sso. RemoteSSO.aidl”文件集成到其对应的平台jar包中,开发者不需要再复制此包到自己的src里,但是混淆脚本里面依然需要keep这个类

三、Facebook

Facebook的SSO要求您到自己的应用详情页面中,如快速集成指南“签名”章节中类似的描述,注册您的报名和签名SHA值的Base64编码结果。具体流程如下:

wiki_and_sso_1

1)如上图。在facebook开发者平台注册、登录。然后进入您的应用详情页面。在应用配置信息界面中选择左侧的“Settings”—“Basic”。
2)参考facebook开发文档中的示例代码,计算出您签名keystore文件SHA值的Base64编码结果。

wiki_and_sso_2

3)回到应用详情的右侧,填写“Native Android App”项目中的应用包名,类名,和应用签名的hash值并保存。
为了演示方便,ShareSDK发布的时候,其Sample项目已经在Facebook上完成了上述的注册,如果您需要调试Sample项目的Facebook功能,请使用Sample目录下的”demokey.keystore”来给Sample签名。

四、Dropbox

Dropbox的SSO也有额外的要求。需要如下面示例,对ShareSDKUIShell添加一个intent-filter:

<activity
android:name="com.mob.tools.MobUIShell"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges="keyboardHidden|orientation|screenSize"
android:windowSoftInputMode="stateHidden|adjustResize" >
<!--
Dropbox的SSO功能需要在此处添加一个对ACTION_VIEW事件的过滤器,其中的scheme是
“db-”前缀再开发者应用的加上appKey。如果此过滤器不设置,则不能完成SSO功能授权
-->
<intent-filter>
<data android:scheme="db-7janx53ilz11gbs" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE"/>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>

其中的scheme需要根据您的应用信息作修改,其他的内容无须改变。
SSO只是授权方式的区别,不管是授权数据的管理或者是后续的其他操作,由于都与授权方式无关,因此不受SSO影响。