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

栏目: IOS · Android · 发布时间: 6年前

内容简介:快速实现抖音分享与第三方登录准备工作1、注册抖音的key到抖音开放平台,点击这里查看步骤;

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

准备工作

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) 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


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Beginning ASP.NET 4 in C# and Vb

Beginning ASP.NET 4 in C# and Vb

Imar Spaanjaars / Wrox / 2010-3-19 / GBP 29.99

This book is for anyone who wants to learn how to build rich and interactive web sites that run on the Microsoft platform. With the knowledge you gain from this book, you create a great foundation to ......一起来看看 《Beginning ASP.NET 4 in C# and Vb》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具