ShareSDK MOB 第三方分享 包括抖音分享
作者:互联网
MobSDK { appKey "888888888888888888" appSecret "888888888888888888" ShareSDK { //平台配置信息 devInfo { SinaWeibo { appKey "888888888888888888" appSecret "888888888888888888" callbackUri "去新浪配置的地址" } Wechat { appId "888888888888888888" appSecret "888888888888888888" } WechatMoments { appId "888888888888888888" appSecret "888888888888888888" } WechatFavorite { appId "888888888888888888" appSecret "888888888888888888" } QQ { appId "888888888888888888" appKey "888888888888888888" } QZone { appId "888888888888888888" appKey "888888888888888888" } } } } 你需要分享什么平台,就往里面加就行可以了,有什么疑问可以直接给我留言
一.集成准备
1.注册应用申请Mob的 AppKey 和 AppSecret
2.需要申请第三方平台的key
注:使用ShareSDK Gradle集成方式,不需要在AndroidMainfest.xml下面配置任何权限和Activity
二.集成配置
1、打开项目根目录的build.gradle,在buildscrip–>dependencies 模块下面添加 classpath ‘com.mob.sdk:MobSDK:2018.0319.1724’,如下所示;
buildscript {
repositories {
...
}
dependencies {
...
classpath "com.mob.sdk:MobSDK:2018.0319.1724"
}
}
2、在使用到Mob产品的module下面的build.gradle文件里面添加引用
apply plugin: 'com.mob.sdk'
3、然后添加MobSDK方法,配置mob的key和秘钥 (与第2步是一个gradle中;注意:MobSDK方法是配置到文件根目录,与android并列,不要配置到android里面哦)
MobSDK {
appKey "申请Mob的appkey"
appSecret "申请Mob的AppSecret"
ShareSDK {}
}
4、Gradle集成方式可以在Mob产品的module下面的build.gradle文件里面配置ShareSDK各个社交平台的key信息
MobSDK {
appKey "申请Mob的appkey"
appSecret "申请Mob的AppSecret"
ShareSDK {
//平台配置信息
devInfo {
Wechat {
appId "wx4868b35061f87885"
appSecret "64020361b8ec4c99936c0e3999a9f249"
}
QQ {
appId "100371282"
appKey "aed9b0303e3ed1e27bae87c33761161d"
shareByAppClient true
}
Facebook {
appKey "1412473428822331"
appSecret "a42f4f3f867dc947b9ed6020c2e93558"
callbackUri "https://mob.com"
}
SinaWeibo {
appKey "568898243"
appSecret "38a4f8204cc784f81f9f0daaf31e02e3"
callbackUri "http://www.sharesdk.cn"
shareByAppClient true
}
}
}
}
其中的devInfo为来自社交平台的应用信息,完整的各个平台参数请点击这里参考详情; 具体字段参数说明等,点击这里查看详情
三、添加代码
根据国家法律法规要求(详见关于中华人民共和国工业和信息化部网络安全管理局印发《App违法违规收集使用个人信息行为认定方法》的通知),开发者在使用MobTech提供的各SDK产品时,需向终端用户展示MobTech的隐私服务协议,并获取用户的授权。
MobTech提供了隐私服务相应的接口供开发者使用。
注意:请所有开发者务必按照本文档接入MobTech隐私服务流程,否则可能造成无法使用MobTech各SDK提供的相关服务。
MobTech隐私服务流程接入指导
MobTech隐私流程中,主要包含“隐私协议授权”与“查看MobTech隐私协议内容”,涉及到接口如下:
1、向终端用户展示MobTech隐私协议,并回传用户授权结果
2、查询MobTech隐私协议内容
隐私协议授权
展示MobTech隐私协议:开发者需要展示MobTech隐私条款,并将同意结果回传给MobTech即可,推荐如下方式:
将MobTech隐私协议的URL嵌入app自身隐私协议描述中(推荐使用)
第一步:推荐添加隐私策略文本:为了实现分享和推送功能,我们使用了MobTech的ShareSDK产品,此产品的隐私策略条款,可以参考:http://www.mob.com/about/policy
第二步:回传用户授权结果
当终端用户对隐私协议弹框做出选择后,无论同意还是拒绝,开发者都应及时将授权结果回传给SDK。
接口 | 参数 |
---|---|
MobSDK.submitPolicyGrantResult(boolean granted, OperationCallback callback) | granted 是否同意隐私协议 callback 结果回调,可为null |
示例代码
调用位置开发者可以自己制定,只需要在使用SDK功能之前调用即可。
private void submitPrivacyGrantResult(boolean granted) {
MobSDK.submitPolicyGrantResult(granted, new OperationCallback<Void>() {
@Override
public void onComplete(Void data) {
Log.d(TAG, "隐私协议授权结果提交:成功");
}
@Override
public void onFailure(Throwable t) {
Log.d(TAG, "隐私协议授权结果提交:失败");
}
});
}
注意:该接口必须接入,否则可能造成无法使用MobTech各SDK提供的相关服务。到此处,将结果回传给Mob就大功告成了
其他嵌入方式可参考:其他展现方式
ShareSDK功能使用
1.分享代码调用
添加配置后,即可调用授权、获取资料、分享等操作,如一键分享的代码:
//java
private void showShare() {
OnekeyShare oks = new OnekeyShare();
// title标题,微信、QQ和QQ空间等平台使用
oks.setTitle(getString(R.string.share));
// titleUrl QQ和QQ空间跳转链接
oks.setTitleUrl("http://sharesdk.cn");
// text是分享文本,所有平台都需要这个字段
oks.setText("我是分享文本");
// imagePath是图片的本地路径,确保SDcard下面存在此张图片
oks.setImagePath("/sdcard/test.jpg");
// url在微信、Facebook等平台中使用
oks.setUrl("http://sharesdk.cn");
// 启动分享GUI
oks.show(this);
}
注:抖音分享登录需要设置如下配置
抖音分享或者登录返回之后,会默认留在抖音,需要将 callbackAct 属性的值配置成您需要返回的界面的全路径,即可成功返回
Douyin {
appKey "aw9ivykfjvi4hpwo"
appSecret "42b4caa6bda60bd49f05f06d0a4956e1"
callbackAct "com.mob.demo.TestActivity"
enable true
}
2.第三方登录代码调用
//java
Platform plat = ShareSDK.getPlatform(QQ.NAME);
//移除授权状态和本地缓存,下次授权会重新授权
plat.removeAccount(true);
//SSO授权,传false默认是客户端授权
plat.SSOSetting(false);
//授权回调监听,监听oncomplete,onerror,oncancel三种状态
plat.setPlatformActionListener(platformActionListener);
//抖音登录适配安卓9.0
ShareSDK.setActivity(MainActivity.this);
//要数据不要功能,主要体现在不会重复出现授权界面
plat.showUser(null);
四、混淆设置
ShareSDK已经做了混淆处理,再次混淆会导致不可预期的错误,请在您的混淆脚本中添加如下的配置,跳过对ShareSDK的混淆操作:
-keep class cn.sharesdk.**{*;}
-keep class com.sina.**{*;}
-keep class com.mob.**{*;}
-keep class com.bytedance.**{*;}
-dontwarn cn.sharesdk.**
-dontwarn com.sina.**
-dontwarn com.mob.**
针对主流的andRes举例说明:白名单设置如下
andResGuard {
whiteList = [
"R.layout.mob_authorize_*",
"R.drawable.mobcommon_authorize_*",
"R.drawable.ssdk_*",
"R.drawable.ssdk_oks_*",
"R.string.ssdk_oks_*",
"R.string.ssdk_*",
"R.style.mobcommon_*",
"R.ssdk_strings.*",
"R.string.mobdemo_authorize_*",
]
}
备注:如果混淆了assets下的文件,则ShareSDK.xml也需要过滤。
五、注意事项
-
ShareSDK默认会添加OnekeyShare库,如果您不需要这个库,可以在ShareSDK下设置“gui false”来关闭OnekeyShare
-
MobSDK默认为ShareSDK提供最新版本的集成,如果您想锁定某个版本,可以在ShareSDK下设置“version “某个版本””来固定使用这个版本
-
如果使用MobSDK的模块会被其它模块依赖,请确保依赖它的模块也引入MobSDK插件,或在此模块的gradle中添加:
repositories { jcenter() }
六. 可选权限说明
<!-- 可选权限说明-->
android.permission.READ_PHONE_STATE 读取设备标识
android.permission.WRITE_EXTERNAL_STORAGE 用于缓存分享图片、log日志和设备标识,以及文件锁的使用
android.permission.ACCESS_FINE_LOCATION
android.permission.ACCESS_COARSE_LOCATION 用于分享SDK管理后台的区域分析功能展示
备注:去除Gradle自动加载的可选权限方法:在module模块中的build.gradle文件中添加以下的配置
permissions {
exclude "需要去除的权限1", "需要去除的权限2"
}
比如需要去除掉“android.permission.READ_PHONE_STATE”权限,则直接添加如下配置即可,
MobSDK {
appKey "1ea..."
appSecret "3ad..."
ShareSDK { ... }
permissions {
exclude "android.permission.GET_ACCOUNTS",
}
}
标签:888888888888888888,MobTech,appSecret,隐私,MobSDK,ShareSDK,分享,抖音 来源: https://blog.csdn.net/jokeYJW/article/details/104775211