现在大火的app,抖音肯定有姓名。19年初抖音就开始支持Android应用接入抖音分享以及登录了,目前市场上我知道的轻颜相机已经集成分享。最近有一个新需求就是集成抖音分享,集成较为简单,但是也由于疏忽遇到了小的问题。这里整体梳理集成流程供大家参考。

抖音分享开发者文档:http://open.douyin.com/platform/doc/m-1-3-2

集成准备:

  1. SDK最低支持:Android API 16 - 4.1.x版本 (这里需要升级自己项目的minSdkVersion>=16 如果满足条件请忽略)
  2. 向抖音短视频申请你的clientkey及相关权限  (这里授权登录,携带话题等需要另外申请,目前我这里只集成分享)
  3. 集成SDK分别在gradle文件中添加如下图

maven { url 'https://dl.bintray.com/aweme-open-sdk-team/public' }compile 'com.bytedance.ies.ugc.aweme:open-sdk:0.0.1.1'

开始集成:

1.添加权限

 <uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

2.初始化在Application中,初始化TikTokOpenApiFactory

String clientkey = "XXXXX"; // 修改为在开发者应用登记页面申请的clientkey
TikTokOpenApiFactory.init(new BDOpenConfig(clientkey));

3.目前抖音支持视频和图片分享这里举例视频分享

 ArrayList<String> mUri = new ArrayList<>();mUri.add(UriUtil.convertUriToPath(activity, Uri.parse(shareBean.video_url)));
TiktokOpenApi bdOpenApi = TikTokOpenApiFactory.create(activity);Share.Request request = new Share.Request();DYVideoObject videoObject = new DYVideoObject();videoObject.mVideoPaths = mUri;DYMediaContent content = new DYMediaContent();content.mMediaObject = videoObject;request.mMediaContent = content;request.mState = "ss";request.callerLocalEntry = "xx.bdopen.BdEntryActivity";request.mTargetApp = DYOpenConstants.TARGET_APP.AWEME;bdOpenApi.share(request);

注意:request.mTargetApp = DYOpenConstants.TARGET_APP.AWEME;    抖音文档没有明确说明,但是必须设置,否则你别想调起抖音,别问我为啥知道,都是泪啊

其次视频路径必须是绝对路径抖音提供的demo里有获取绝对路径的util代码

4.接受回调类,这里使用抖音提供demo里的方式

包名下创建bdopen.BdEntryActivity,初始化TikTokOpenApiFactory,实现BDApiEventHandler接口,在onResp方法中回调授权结果。

注:bdopen.前边的package路径需和app的包名一致,否则回调将找不到这个类,也可以选择在传分享参数时,通过request.callerLocalEntry参数来自己指定接收回调的全路径 例如request.callerLocalEntry = "xx.bdopen.BdEntryActivity";

public class BdEntryActivity extends Activity implements BDApiEventHandler {private static PlatformUtils.OnPlatformShareListener mOnPlatformShareListener;private static Activity mActivity;TiktokOpenApi ttOpenApi;@Overridepublic void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);ttOpenApi = TikTokOpenApiFactory.create(this);ttOpenApi.handleIntent(getIntent(), this);}public static void shareDouYin(Activity activity, ShareBean shareBean, PlatformUtils.OnPlatformShareListener onPlatformShareListener) {mActivity = activity;mOnPlatformShareListener = onPlatformShareListener;ShareDouYinUtil.getInstance().share(activity, shareBean);}@Overridepublic void onReq(BaseReq req) {}@Overridepublic void onResp(BaseResp resp) {if (resp.getType() == DYOpenConstants.ModeType.SHARE_CONTENT_TO_DY_RESP) {Share.Response response = (Share.Response) resp;if (response != null && response.errorCode == DYOpenConstants.ErrorCode.ERR_OK)mOnPlatformShareListener.onShareComplete(PlatformConst.PLAT_NAME_DOU_YIN);elsemOnPlatformShareListener.onError();startActivity(new Intent(this, mActivity.getClass()));finish();}}@Overridepublic void onErrorIntent(@Nullable Intent intent) {mOnPlatformShareListener.onError();startActivity(new Intent(this, mActivity.getClass()));finish();}
}

这里有两个需要注意的点:

  1. 收到回调处理完逻辑之后记得finish()这个页面否则你会一脸懵逼咋一片白我的布局呢,哈哈。
  2. 如果只集成分享记得在回调分享结果外层添加if (resp.getType() ==BDOpenConstants.ModeType.SEND_AUTH_RESPONSE)

5.抖音分享对图片视频有一定限制

//视频限制

* 检测文件是否可以导入,要求如下

* 1、时长不满足,要求视频在3s-1小时内;

* 2、格式要求mp4文件,且文件支持解析

* 3、画幅尺寸 最小边 小于1100;

* 4、多图生成照片电影,暂无限制;

//图片限制

* 检测图文是否可以导入,要求如下

* 条件一:宽高都大于360

* 条件二:高宽比小于等于2.2

* 条件三:高宽比大于等于1/2.2

返回码参考:

public interface ErrCode {

int ERR_OK = 0;      // 成功

int ERR_FAILED_COMMON = -1; // 通用错误类型, 一般未知的错误会走这个回调

int ERR_USER_CANCEL = -2; // 用户手动取消,用户拒绝权限,中断流程等

int ERR_SEND_FAIL = -3; // 发送失败

int ERR_AUTH_DENIED = -4; // 权限错误, 第三方未获取相关分享权限或获取权限失败

int ERR_UNSUPPORT = -5; // 文件解析过程出错或命中其它的一些限制

}

6.混淆

千万记得混淆,要不然打包你的抖音分享就无法成功。但是抖音开发者文档并没有加混淆说明,这一点很不友好。这是我自己加的,后面打包分享正常。

#抖音混淆
-keep class com.bytedance.** { *;}

大概集成流程就是这样,欢迎有问题共同探讨。

Android快速集成抖音分享相关推荐

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

    准备工作 1.注册抖音的key到抖音开放平台: 2.集成ShareSDK到Mob官网文档页面查看即可: 业务代码 分享要求: 视频: 1.时长不符合要求,最大不能超过1小时,最小值抖音动态配置: 2. ...

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

    前言: 我们终于等到了抖音的分享问世,我们可以对小视频进行处理分享到抖音,提高自己的app在抖音中的曝光度,提高自己的app的宣传效果,下面我们看下具体的分享步骤吧: 第一步:申请抖音与mob账号 抖 ...

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

    快速实现抖音分享与第三方登录 准备工作 1.注册抖音的key到抖音开放平台,点击这里查看步骤: 2.集成ShareSDK到Mob官网文档页面查看即可,点击这里查看集成: 业务代码 分享要求: 视频: ...

  4. 快速实现抖音的分享登录(android) 1

    快速实现抖音分享与第三方登录 准备工作 1.注册抖音的key到抖音开放平台,点击这里查看步骤: 2.集成ShareSDK到Mob官网文档页面查看即可,点击这里查看集成: 业务代码 分享要求: 视频: ...

  5. Android app快速集成Mob shareSDK分享到微信和QQ

    Android app集成Mob shareSDK分享到微信和QQ 在线安装方法介绍 注意需要用到的appKey和appSecret 请自行到http://www.mob.com官网申请,这里不介绍申 ...

  6. Android逆向之旅---微信封了抖音分享功能,而我要把短视频分享到朋友圈!

    一.前言 本文写的目的很简单,因为微信封了抖音短视频分享功能,但是这个对于用户来说都是不好的体验,当初3Q大战,损害的是用户利益,现在也是用户最后都是最受伤的一个.而这两次都和企鹅有关.先看看企鹅为了 ...

  7. 如何快速去除抖音短视频水印

    如何快速去除抖音短视频水印?当前市面上去水印工具并不是直接将视频上的水印去掉,而是使用爬虫技术从抖音的服务器上面吧没有水印的视频给抓取下来.你看到的手机上的视频没有水印吧,好,我就把没有水印这个视频的 ...

  8. 快速成为抖音内容运营高手的心法

    玩抖音的朋友都知道视频内容很重要,平时我们在抖音平台看到上热门的爆款视频基本都具有一定的创意性. 因此笔者认为,要玩好抖音,那就先从内容开始做起:今天在这里就给大家分享一下,有关快速成为抖音内容高手的 ...

  9. 最简单的方法快速生成抖音风格文字——使用HTML和CSS代码

    最简单的方法快速生成抖音风格文字--用HTML和CSS代码 大家好! 这是我第一次与大家分享心得.希望能与大家共同学习.共同提升. 抖音作为近年来大火的APP,其具有特色的图标和字体收到了不少人的喜爱 ...

最新文章

  1. Python2+Selenium入门03-元素定位
  2. sql server 2005 sa登录失败解决方法
  3. 请定义一个宏,比较两个数的a、b的大小,不能使用大于、小于、if语句
  4. c++时间类型详解 time_t
  5. 人工智能一种现代的方法 --第2章 智能Agent
  6. 计算机就业前景调查报告问题,计算机专业就业前景调查报告.docx
  7. 分享:你必须知道的H5加速器九大常识!
  8. 风控策略分析师日常--代码、数据、策略
  9. 网站域名要加www吗?没有www会影响网站SEO吗?
  10. 华硕启动vmware 虚拟机,显示Intel VT-x但Intel VT-x处于禁用状态 ,开始vt
  11. 解决报错“RuntimeError - [Xcodeproj] Unknown object version.”
  12. 正则校验必须由数字 字母 和 特殊符号组成的正则
  13. 使用mybatis进行四表联查
  14. 将Discuz!设置到新版应用中心,无需升级Discuz!版本的方法(临时方案)
  15. (附源码)springboot萌宠宠物网店的开发与设计 毕业设计 011042
  16. P14-统计英语文章出现最多的英语单词
  17. IT小天个人技术博客
  18. hadoop-mapreduce-example中实例介绍
  19. CSS3简单魔方动画效果
  20. 【Laravel3.0.0源码阅读分析】文件缓存类file.php

热门文章

  1. 下列的前缀中的哪一个和地址152.7.77.159及152.31.47.252都匹配?请说明理由。
  2. Python地球科学领域应用:python处理遥感数据、站点数据、遥感水文数据、气候变化数据、WRF模式数据后处理、运行生态模型
  3. gmoj 6860. 【2020.11.14提高组模拟】鬼渊传说
  4. 松下服务器A系列点动,松下A5系列伺服驱动器的恢复出厂参数、点动运行设置和报警解除...
  5. JSON解析:JSON对象还能这样???
  6. Java程序设计--集合(下)(十三)
  7. cv2.inRange()函数---提取票据中红色印章
  8. JavaScript 加减乘除运算
  9. 升级版Python学习教程:SQLAlchemy太庞大,不妨试试这位小清新-Peewee
  10. java 判断是否包含中文_Java中判断字符串中是否包含中文汉字