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"
    }
}

share1

2、在使用到Mob产品的module下面的build.gradle文件里面添加引用

apply plugin: 'com.mob.sdk'

share2

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也需要过滤。

五、注意事项

  1. ShareSDK默认会添加OnekeyShare库,如果您不需要这个库,可以在ShareSDK下设置“gui false”来关闭OnekeyShare

  2. MobSDK默认为ShareSDK提供最新版本的集成,如果您想锁定某个版本,可以在ShareSDK下设置“version “某个版本””来固定使用这个版本

  3. 如果使用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",
    }
}
发布了9 篇原创文章 · 获赞 15 · 访问量 7458

猜你喜欢

转载自blog.csdn.net/jokeYJW/article/details/104775211