资讯中心 / 快速实现抖音分享与第三方登录

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

2019-04-02

前言:

我们终于等到了抖音的分享问世,我们可以对小视频进行处理分享到抖音,提高自己的app在抖音中的曝光度,提高自己的app的宣传效果,下面我们看下具体的分享步骤吧;

 

第一步:申请抖音与mob账号

抖音账号申请:

http://bbs.mob.com/thread-26199-1-1.html         

Mob账号申请:

http://bbs.mob.com/forum.php?mod=viewthread&tid=8212&extra=page%3D1

得到appkey与appsecret

 

第二步:抖音分享类型与要求

       抖音分享类型可以查看此链接:

http://wiki.mob.com/%E4%B8%8D%E5%90%8C%E5%B9%B3%E5%8F%B0

%E5%88%86%E4%BA%AB%E5%86%85%E5%AE%B9%E7%9A%84%E8%AF%A6%E7%BB%86%E8%AF%B4%E6%98%8E/#map-2

了解抖音分享的注意事项和要求,如下说明:

 

注意:目前分享图片只支持本地图片分享,建议直接保存到手机相册路径下分享,否则抖音可能无法找到图片

要求:

视频:


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系统

 

第三步:集成SDK

可查看文档:http://wiki.mob.com/sdk-share-android-3-0-0/

主要步骤如下:

  1. 配置根目录gradle文件:
  2. 在根目录下的build.gradle中配置如下classpath;

    buildscript {

        repositories {

            jcenter()

        }

        dependencies {

            ...

            classpath "com.mob.sdk:MobSDK:2018.0319.1724"

        }

    }

     

     

  3. 配置mob与抖音的key
  4. 在使用到Mob产品的module下面的build.gradle文件里面添加引用,配置上第一步申请的mob的key和appsecret,还有抖音的appkey与appsecret,配置完,重新编译下即可;

    apply plugin: 'com.mob.sdk'

    MobSDK {

        appKey "d580ad56b4b5"

        appSecret "7fcae59a62342e7e2759e9e397c82bdd"

     

        ShareSDK {

            //平台配置信息

            devInfo {

                Wechat {

                    appId "wx4868b35061f87885"

                    appSecret "64020361b8ec4c99936c0e3999a9f249"

                }

    Douyin{

        AppKey="8148612606"

           AppSecret="mCltrhUqwshFa86egDTs0491ibaAulKA"

                    Enable= "true"

                }

            }

        }

      

    }

     

  5. 别忘记添加混淆代码
  6. -keep class cn.sharesdk.**{*;}

    -keep class com.sina.**{*;}

    -keep class **.R$* {*;}

    -keep class **.R{*;}

    -keep class com.mob.**{*;}

    -keep class m.framework.**{*;}

    -keep class com.bytedance.**{*;}

    -dontwarn cn.sharesdk.**

    -dontwarn com.sina.**

    -dontwarn com.mob.**

    -dontwarn **.R$*

     好了到此,集成完毕,如果更多查看需求,可以查看官方集成文档;

  7. 第四步:分享代码调用

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

     

    分享效果:

    分享图片:

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

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

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

 

第五步:第三方登录-抖音

登录文档:

http://wiki.mob.com/%E8%8E%B7%E5%8F%96%E6%8E%88%E6%9D%83%E7%94%A8%E6%88%B7%E8%B5%84%E6%96%99-2/

 

登录后可以返回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 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);//授权并获取授权信息

 

 

 

注意事项:

  1. 抖音申请的key是绑定包名的,所以绑定的key与app的包名不一致,会返回errcode:-4
  2. 抖音分享适配android9.0要在参数中调用       

Platform.ShareParams sp = new Platform.ShareParams();

        sp.setActivity(this);

抖音登录适配android9.0要在登录前添加ShareSDK.setActivity(this);//适配android9.0

 

3、以上介绍的是gradle集成方式,如果采用离线jar包方式集成,需要在AndroidManifest中加入权限等配置,还需要加上回调类的配置,具体可以参考官方的离线集成文档;

 

上一篇 下一篇
SDK打包中 — 0%

SDK下载

正在根据您选择的SDK打包中,完成后自动下载
0%