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

前言:
我们终于等到了抖音的分享问世,我们可以对小视频进行处理分享到抖音,提高自己的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/不同平台分享内容的详细说明/#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文件:
在根目录下的build.gradle中配置如下classpath;
buildscript {
repositories {
jcenter()
}
dependencies {

classpath “com.mob.sdk:MobSDK:2018.0319.1724”
}
}

2、 配置mob与抖音的key
在使用到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”
}
}
}

}

3、 别忘记添加混淆代码
-keep class cn.sharesdk.{*;}
-keep class com.sina.
{*;}
-keep class *.R ∗ ∗ ; − k e e p c l a s s ∗ ∗ . R ∗ ; − k e e p c l a s s c o m . m o b . ∗ ∗ ∗ ; − k e e p c l a s s m . f r a m e w o r k . ∗ ∗ ∗ ; − k e e p c l a s s c o m . b y t e d a n c e . ∗ ∗ ∗ ; − d o n t w a r n c n . s h a r e s d k . ∗ ∗ − d o n t w a r n c o m . s i n a . ∗ ∗ − d o n t w a r n c o m . m o b . ∗ ∗ − d o n t w a r n ∗ ∗ . 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 ;keepclass.R;keepclasscom.mob.;keepclassm.framework.;keepclasscom.bytedance.;dontwarncn.sharesdk.dontwarncom.sina.dontwarncom.mob.dontwarn.R
好了到此,集成完毕,如果更多查看需求,可以查看官方集成文档;

第四步:分享代码调用
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/获取授权用户资料-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<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);//授权并获取授权信息

注意事项:
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中加入权限等配置,还需要加上回调类的配置,具体可以参考官方的离线集成文档;

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MobTech袤博科技

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值