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",
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章