如何快速实现抖音分享与第三方登录?

准备工作

1、注册抖音的key到抖音开放平台;

2、集成ShareSDK到Mob官网文档页面查看即可;

     

业务代码

分享要求:

视频:
1、时长不符合要求,最大不能超过1小时,最小值抖音动态配置;
2、非mp4文件;
3
、画幅比例不支持;
4
、视频文件不能正常解析;
5
、视频文件分辨率过大(最小边小于1100;
图片:
1、宽高小于360;
2
、宽高比不符合(需1/2.2<=宽高比<=2.2

 

分享类型:

分享图片

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的分享,ShareSDK提供了界面,可以直接调用,不需要自己写界面进行触发,代码如下所示:

        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

 

由于平台排版限制,想要Mob官方关于快速实现抖音分享与第三方登录分享word版本,可再下方留言或者到mob官方网站查看!

猜你喜欢

转载自blog.csdn.net/Mobholly/article/details/88976409
今日推荐