快速实现抖音的分享&登录(android)

简介: 快速实现抖音分享与第三方登录准备工作1、注册抖音的key到抖音开放平台,点击这里查看步骤;2、集成ShareSDK到Mob官网文档页面查看即可,点击这里查看集成;业务代码分享要求:视频:1、时长不符合要求,最大不能超过1小时,最小值抖音动态配置;2、非mp4文件;3、画幅比例不支...

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

准备工作

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

分享效果
分享图片:

1.png

2.png

3.png

分享视频:

4.png

5.png

6.png

7.png

授权登录

登录后可以返回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

相关文章
|
3月前
|
Android开发 数据安全/隐私保护 虚拟化
安卓手机远程连接登录Windows服务器教程
安卓手机远程连接登录Windows服务器教程
538 4
|
4月前
|
安全 Java 网络安全
Android远程连接和登录FTPS服务代码(commons.net库)
Android远程连接和登录FTPS服务代码(commons.net库)
61 1
|
4月前
|
XML Java 数据库
安卓项目:app注册/登录界面设计
本文介绍了如何设计一个Android应用的注册/登录界面,包括布局文件的创建、登录和注册逻辑的实现,以及运行效果的展示。
307 0
安卓项目:app注册/登录界面设计
|
6月前
|
开发工具 Android开发
|
6月前
|
安全 Java 网络安全
Android远程连接和登录FTPS服务代码(commons.net库)
很多文章都介绍了FTPClient如何连接ftp服务器,但却很少有人说如何连接一台开了SSL认证的ftp服务器,现在代码来了。
134 2
|
8月前
|
数据库 Android开发 数据安全/隐私保护
在 Android Studio 中结合使用 SQLite 数据库实现简单的注册和登录功能
在 Android Studio 中结合使用 SQLite 数据库实现简单的注册和登录功能
311 2
|
8月前
|
存储 数据库 Android开发
在 Android Studio 中结合使用 SQLite 数据库实现简单的注册和登录功能
在 Android Studio 中结合使用 SQLite 数据库实现简单的注册和登录功能
254 0
|
8月前
|
XML Android开发 数据格式
【Android UI】使用RelativeLayout与TableLayout实现登录界面
【Android UI】使用RelativeLayout与TableLayout实现登录界面
72 5
|
9月前
|
XML Android开发 数据格式
Android注册登录页面2
Android注册登录页面
67 2
|
9月前
|
Java Android开发 数据安全/隐私保护
Android注册登录页面1
Android注册登录页面
47 1

热门文章

最新文章

  • 1
    如何修复 Android 和 Windows 不支持视频编解码器的问题?
  • 2
    Android历史版本与APK文件结构
  • 3
    【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 4
    【04】flutter补打包流程的签名过程-APP安卓调试配置-结构化项目目录-完善注册相关页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程
  • 5
    当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡
  • 6
    APP-国内主流安卓商店-应用市场-鸿蒙商店上架之必备前提·全国公安安全信息评估报告如何申请-需要安全评估报告的资料是哪些-优雅草卓伊凡全程操作
  • 7
    【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 8
    Android经典面试题之Kotlin中Lambda表达式和匿名函数的区别
  • 9
    【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
  • 10
    【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
  • 1
    Cellebrite UFED 4PC 7.71 (Windows) - Android 和 iOS 移动设备取证软件
    24
  • 2
    【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
    32
  • 3
    Android历史版本与APK文件结构
    120
  • 4
    【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
    27
  • 5
    【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
    23
  • 6
    APP-国内主流安卓商店-应用市场-鸿蒙商店上架之必备前提·全国公安安全信息评估报告如何申请-需要安全评估报告的资料是哪些-优雅草卓伊凡全程操作
    56
  • 7
    【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
    37
  • 8
    当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡
    73
  • 9
    【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
    118
  • 10
    Android经典面试题之Kotlin中Lambda表达式和匿名函数的区别
    29