快速實現抖音分享與第三方登陸

快速實現抖音分享與第三方登陸
準備工做
一、註冊抖音的key到抖音開放平臺,點擊這裏查看步驟;android

二、集成ShareSDK到Mob官網文檔頁面查看便可,點擊這裏查看集成;web

業務代碼
分享要求:
視頻:app

一、時長不符合要求,最大不能超過1小時,最小值抖音動態配置;ide

二、非mp4文件;this

三、畫幅比例不支持;spa

四、視頻文件不能正常解析;code

五、視頻文件分辨率過大(最小邊小於1100);orm

圖片:視頻

一、寬高小於360;圖片

二、寬高比不符合(需1/2.2<=寬高比<=2.2)

分享類型 參數 參數 參數
分享圖片 shareType(SHARE_IMAGE) imagePath(「/sdcard/」) setActivity//適配9.0系統
分享圖片 shareType(SHARE_IMAGE) imagePath(「/sdcard/」) setActivity//適配9.0系統
分享多圖 shareType(SHARE_IMAGE) imageArray(String[] AVATARS(多個本地圖片)) setActivity//適配9.0系統
分享視頻 shareType(SHARE_VIDEO) FilePath(「/sdcard/下的視頻路徑」) setActivity//適配9.0系統
多段視頻拼接分享 shareType(SHARE_VIDEO) VideoPathArray(String[] AVATARS(多個本地視頻路徑)) setActivity//適配9.0系統
注意:目前分享圖片只支持本地圖片分享,建議直接保存到手機相冊路徑下分享,不然抖音可能沒法找到圖片

分享代碼
1.自有界面分享
onekeyshare的分享,SDK提供了界面,能夠直接調用,不須要本身寫界面進行觸發,代碼以下所示:

OnekeyShare oks = new OnekeyShare();
    oks.setImagePath("/storage/emulated/0/DCIM/Camera/icon.png");//分享單獨圖片,圖片建議放到相冊目錄下

// oks.setFilePath(testVideo);//分享單獨視頻

String[] AVATARS = {
            imagepath,
            imagepath2 };

// oks.setImageArray(AVATARS);//分享多圖

String[] vedioarray =
            new String[]{
                    testVideo,
                    testVideo
            };
    oks.setVideoPathArray(vedioarray);//分享多段視頻,自動拼接
    oks.setShareContentCustomizeCallback(new ShareContentCustomizeCallback() {
        @Override
        public void onShare(Platform platform,
                            cn.sharesdk.framework.Platform.ShareParams paramsToShare) {
            // TODO Auto-generated method stub
            if(platform.getName().equals("Douyin")){
                paramsToShare.setShareType(Platform.SHARE_IMAGE);//設置抖音分享類型,圖片是SHARE_IMAGE;視屏是SHARE_VEDIO
            }

        }
    });
    // 啓動分享GUI
    oks.show(MobSDK.getContext());

2.單獨圖片分享

Platform douyin = ShareSDK.getPlatform(Douyin.NAME);
    Platform.ShareParams sp = new Platform.ShareParams();
    sp.setImagePath("/storage/emulated/0/DCIM/Camera/icon.png");//暫時只支持本地圖
    sp.setShareType(Platform.SHARE_IMAGE);//設置分享圖片類型
    sp.setActivity(this);//android9.0及以上系統須要配置
    douyin.setPlatformActionListener (this);//分享回調
    douyin.share(sp);

3.多圖分享

Platform douyin = ShareSDK.getPlatform(Douyin.NAME);
    Platform.ShareParams sp = new Platform.ShareParams();
    sp.setActivity(this);//適配android9.0
    //多圖
    String[] AVATARS = {
            "/storage/emulated/0/DCIM/Camera/icon.png",                
            "/storage/emulated/0/Pictures/Instagram/IMG_20181024_145311_121.jpg"        };

    sp.setImageArray(AVATARS);
    sp.setShareType(Platform.SHARE_IMAGE);
    douyin.setPlatformActionListener (this);//分享回調監聽
    douyin.share(sp);

4.單獨視頻分享

Platform douyin = ShareSDK.getPlatform(Douyin.NAME);
    Platform.ShareParams sp = new Platform.ShareParams();
    sp.setActivity(this);//適配android9.0
    sp.setFilePath(testVideo);//配置視頻本地路徑
    sp.setShareType(Platform.SHARE_VIDEO);//設置分享視頻類型
    douyin.setPlatformActionListener (this);//設置分享回調監聽
    douyin.share(sp);

5.多個視頻拼接分享

Platform douyin = ShareSDK.getPlatform(Douyin.NAME);
    Platform.ShareParams sp = new Platform.ShareParams();
    sp.setActivity(this);
    String[] vedioarray =
            new String[]{
                    testVideo,
                    testVideo
            };
    sp.setVideoPathArray(vedioarray);
    sp.setShareType(Platform.SHARE_VIDEO);
    douyin.setPlatformActionListener (this);
    douyin.share(sp);

分享效果
分享圖片:
圖片描述

分享視頻:
圖片描述
圖片描述

受權登陸
登陸後能夠返回userid,咱們拿到userid能夠做爲用戶登陸的惟一標識,進行綁定帳戶就能夠,還能夠獲取一些用戶的頭像和暱稱信息,這樣能夠用來顯示用戶的信息頁面中;

cn.sharesdk.framework.Platform dylogin = ShareSDK.getPlatform(Douyin.NAME);
    if(dylogin.isAuthValid()){//判斷是否受權過,能夠在這裏實現本身的邏輯,受權過了能夠在這裏直接獲取用戶信息,id等,不須要重複登陸驗證
        dylogin.removeAccount(true);//能夠移除受權

// return;

}

    if(dylogin.isClientValid()){//判斷手機中是否有抖音客戶端,若是存在執行客戶端操做,不存在實現web受權
        Toast.makeText(MobSDK.getContext(), "抖音客戶端", Toast.LENGTH_SHORT).show();
    }

    dylogin.setPlatformActionListener(new PlatformActionListener() {

        @Override
        public void onError(Platform arg0, int arg1, Throwable arg2) {
            // TODO Auto-generated method stub
            System.out.println("------------失敗"+arg2.toString());
            arg2.printStackTrace();//打印失敗錯誤碼log
            runOnUiThread(new Runnable() {
                public void run() {
                    Toast.makeText(MobSDK.getContext(),"失敗", Toast.LENGTH_SHORT).show();
                    System.out.println("----------");
                }
            });
        }

        @Override
        public void onComplete(Platform arg0, int arg1, HashMap<String, Object> arg2) {
            // TODO Auto-generated method stub
            System.out.println("--------Platform----"+arg0.getDb().exportData());//查看受權信息,能夠拿到後作後續操做;
            runOnUiThread(new Runnable() {
                public void run() {
                    Toast.makeText(MobSDK.getContext(),"成功", Toast.LENGTH_SHORT).show();
                    System.out.println("----------");
                }
            });
        }

        @Override
        public void onCancel(Platform arg0, int arg1) {
            // TODO Auto-generated method stub
            System.out.println("-------取消");
        }
    });
    dylogin.SSOSetting(true);//設置SSO(客戶端受權),false爲優先客戶端受權

ShareSDK.setActivity(this);//適配android9.0

dylogin.showUser(null);//受權並獲取受權信息

注意事項:抖音申請的key是綁定包名的,因此綁定的key與app的包名不一致,會返回errcode:-4

相關文章
相關標籤/搜索