目录

前言

一、官方文档

二、开始配置

第一步:向抖音短视频申请你的 clientkey 及相关权限

第二步:集成到开发环境

1.根目录下build.gradle引入库

2.app moudel目录下build.gradle引入库

3.配置抖音的软件包可见性

使用一:Android-分享给抖音好友or群

向抖音短视频申请你的clientkey及相关权限请到开发者应用登记页面进行申请,申请后将获得clientkey, 之后通过clientkey为应用申请相关的权限,如分享到抖音联系人/群(im.share)等;审核通过后即可使用相关的功能;

使用二:android 分享图片支持fileprovider方式

1. 配置



前言

此篇仅用来记录相关配置


一、官方文档

抖音开放平台抖音开放平台,致力于打造抖音开放的生态系统,将从基础能力、内容、数据、服务等层面的开放,为开发者提供高效便捷的解决方案https://open.douyin.com/platform/doc?doc=docs/develop/share/android

二、开始配置

SDK 最低支持:Android API 15 - 4.0.x 版本

SDK 接入目前需要引入两个依赖包,包括opensdk-china-externalopensdk-common,为了方便,两者使用同样的版本号。当前最新版本为 0.1.9.0。

第一步:向抖音短视频申请你的 clientkey 及相关权限

请到开发者应用登记页面进行申请,申请后将获得 clientkey, 之后通过 clientkey 为应用申请相关的权限,如分享、授权、默认话题等;审核通过后即可使用相关的功能;

第二步:集成到开发环境

1.根目录下build.gradle引入库

buildscript {repositories {google()jcenter()mavenCentral()maven { url "https://jitpack.io" }//抖音maven { url 'https://artifact.bytedance.com/repository/AwemeOpenSDK' }maven { url "https://maven.byted.org/repository/android_public/" }}dependencies {classpath "com.android.tools.build:gradle:7.0.2"classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.21'// NOTE: Do not place your application dependencies here; they belong// in the individual module build.gradle files}
}allprojects {repositories {google()jcenter()mavenCentral()maven { url "https://jitpack.io" }//抖音maven { url 'https://artifact.bytedance.com/repository/AwemeOpenSDK' }maven { url "https://maven.byted.org/repository/android_public/" }}
}task clean(type: Delete) {delete rootProject.buildDir
}

2.app moudel目录下build.gradle引入库

//抖音平台接入
implementation 'com.bytedance.ies.ugc.aweme:opensdk-china-external:0.1.9.0'
implementation 'com.bytedance.ies.ugc.aweme:opensdk-common:0.1.9.0'

3.配置抖音的软件包可见性

Android 11 为了加强了隐私保护策略,引入了很多变更和限制,其中软件包可见性 变更,将会导致第三方应用通过抖音开放平台的 SDK 无法正常拉起抖音,从而无法使用开放平台的全部功能,包括但不限于分享消息到抖音、通过抖音进行账号登陆等功能。

特别需要注意的是,Android11 的该变更只会影响到升级<strong>targetSdkVersion=30</strong>的应用,未升级的应用暂不受影响。


<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="你的包名"><queries><!--允许查询抖音和抖音极速版的软件包信息--><package android:name="com.ss.android.ugc.aweme" /><package android:name="com.ss.android.ugc.aweme.lite" /></queries>
</manifest>

使用一:Android-分享给抖音好友or群

向抖音短视频申请你的clientkey及相关权限请到开发者应用登记页面进行申请,申请后将获得clientkey, 之后通过clientkey为应用申请相关的权限,如分享到抖音联系人/群(im.share)等;审核通过后即可使用相关的功能;

  1. 初始化 在Application中,初始化DouYinOpenApiFactory
  // 修改为在开发者应用登记页面申请的clientkeyDouYinOpenApiFactory.init(new DouYinOpenConfig("[Client Key]"));

2. - Manifest中申请权限,注册接收回调activity

<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" />//如果第三方自定义了接收回调的activity则可以跳过此步骤
<activityandroid:name=".douyinapi.DouYinEntryActivity"android:launchMode="singleTask"android:taskAffinity="你的包名"android:exported="true">
</activity>

3.分享html (注意:如果您想要分享html链接到抖音联系人,请先到官网管理中心的您应用下的im.share 权限添加分享链接进行页面链接验证,才可以成功分享。)

        val douyinOpenApi = DouYinOpenApiFactory.create(activity)//抖音分享htmlval request = ShareToContact.Request().apply {htmlObject = ContactHtmlObject().apply {html = "https://www.baidu.com/" //你的html链接(必填)discription = "百度" // 你的html描述(必填)title = “App Name” // 你的html  title(必填)//thumbUrl // 你的html的封面图(远程图片) (选填,若不填,则使用开放平台官网申请时上传的图标)}}// 调起分享if (douyinOpenApi.isAppSupportShareToContacts) {douyinOpenApi.shareToContacts(request)} else {showToast(R.string.tiktok_version_not_support)}

4.接收回调的activity

/*** Description 接受返回信息* Version 1.0*/
public class DouYinEntryActivity extends Activity implements IApiEventHandler {DouYinOpenApi douYinOpenApi;@Overridepublic void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);douYinOpenApi = DouYinOpenApiFactory.create(this);douYinOpenApi.handleIntent(getIntent(), this);}@Overridepublic void onReq(BaseReq req) {}@Overridepublic void onResp(BaseResp resp) {if (resp instanceof ShareToContact.Response) {switch (resp.errorCode) {case 20000://TODO 分享成功break;case 20013://TODO 取消分享break;default://TODO 分享失败break;}finish();}}@Overridepublic void onErrorIntent(@Nullable Intent intent) {//TODO 分享失败}
}

5.混淆

-keep class com.bytedance.sdk.open.aweme.**

注意,若您的应用的代码存在混淆情况,吊起抖音IM分享之后,不能拿到IM分享结果的回调,请将您接收回调的activity(DouYinEntryActivity或者您自定义的回调activity) 也加入免混淆清单

使用二:android 分享图片支持fileprovider方式

主要目的是适配Android11

1. 配置

在项目的AndroidManifest.xml添加相关配置

   <!--${applicationId}为你的应用包名--><provider  android:name="android.support.v4.content.FileProvider"android:authorities="${applicationId}.fileprovider"android:exported="false"android:grantUriPermissions="true"><meta-dataandroid:name="android.support.FILE_PROVIDER_PATHS"android:resource="@xml/file_provider_paths" /></provider>

在res/xml目录(如果没有xml目录,则新建一个)下,添加文件file_provider_paths.xml,内容如下:

<paths xmlns:android="http://schemas.android.com/apk/res/android"><external-files-path name="sharedata" path="shareData/"/>
</paths>

2.使用FileProvider接口分享图片

    fun shareToDouYin(activity: Activity, bitmap: Bitmap) {//创建分享数据文件val pathDir = activity.getExternalFilesDir("shareData")!!.pathval filePath = "$pathDir/share.jpg"//存储val saveSuccess = save(bitmap, File(filePath), Bitmap.CompressFormat.JPEG, false)if (saveSuccess) {val fileUri = getFileUri(activity.applicationContext, filePath)//分享单图/多图val douyinOpenApi = DouYinOpenApiFactory.create(activity)val request = ShareToContact.Request().apply {mMediaContent = MediaContent().apply {mMediaObject = ImageObject().apply {mImagePaths = arrayListOf(fileUri)}}}// 判断是否可以分享到联系人if (douyinOpenApi.isAppSupportShareToContacts) {douyinOpenApi.shareToContacts(request);} else {Toast.makeText(activity, "当前抖音版本不支持", Toast.LENGTH_SHORT).show()}} else {Toast.makeText(activity, "分享失败", Toast.LENGTH_SHORT).show()}}/*** Save the bitmap.** @param src     The source of bitmap.* @param file    The file.* @param format  The format of the image.* @param recycle True to recycle the source of bitmap, false otherwise.* @return `true`: success<br></br>`false`: fail*/fun save(src: Bitmap, file: File, format: CompressFormat, recycle: Boolean): Boolean {var os: OutputStream? = nullvar ret = falsetry {os = BufferedOutputStream(FileOutputStream(file))ret = src.compress(format, 100, os)if (recycle && !src.isRecycled) src.recycle()} catch (e: IOException) {e.printStackTrace()} finally {try {os?.close()} catch (e: IOException) {e.printStackTrace()}}return ret}fun getFileUri(context: Context, filePath: String): String {// 该filePath对应于xml/file_provider_paths里的第一行配置:,因此才可被共享val file = File(filePath)// 要与`AndroidManifest.xml`里配置的`authorities`一致val contentUri: Uri = FileProvider.getUriForFile(context,context.packageName + ".fileprovider",file)// 授权给抖音访问路径,这里填抖音包名context.grantUriPermission("com.ss.android.ugc.aweme",contentUri,Intent.FLAG_GRANT_READ_URI_PERMISSION)// 使用contentPath作为文件路径进行分享 contentUri.toString() 即是以"content://"开头的用于共享的路径return contentUri.toString()}

总结

抖音的文档还是很清楚的,最后清单文件完整是这个样子的

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"package="你的包名"><uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /><queries><!--允许查询抖音和抖音极速版的软件包信息--><package android:name="com.ss.android.ugc.aweme" /><package android:name="com.ss.android.ugc.aweme.lite" /></queries><application><!--抖音分享结果页--><activityandroid:name=".douyinapi.DouYinEntryActivity"android:exported="true"android:launchMode="singleTask"android:taskAffinity="${applicationId}" /><provider  android:name="android.support.v4.content.FileProvider"android:authorities="${applicationId}.fileprovider"android:exported="false"android:grantUriPermissions="true"><meta-dataandroid:name="android.support.FILE_PROVIDER_PATHS"android:resource="@xml/file_provider_paths" /></provider><!--${applicationId}为你的应用包名--><!-- endregion--></application>
</manifest>

分享图片或链接到抖音相关推荐

  1. 抖音私信分享卡片如何制作,抖音私信卡片的优点。

    最近很多人在问如何实现在抖音私信/客户群/粉丝群内将链接转换为图文卡片呢,如何生成自己的抖音私信卡片呢? 抖音私信卡片制作教程: 1.点击前往 [小狐工具箱]后台创建卡片,先选择不开启跳转: 2.进入 ...

  2. 【方案分享】2022政务类抖音运营方案:政务短视频号运营指南.pptx(附下载链接)...

    省时查报告-专业.及时.全面的行研报告库 省时查方案-专业.及时.全面的营销策划方案库 近两年热门报告合集(按月度免费下载)[干货]2021社群运营策划方案.pptx 抖音平台新媒体百问百答 大萧条来 ...

  3. android带动画的饼图,Android部分源码资源共享(视屏转GIF图片工具、仿抖音、仿朋友圈、仿红包、饼状图、引导图,图灵源码等)...

    视屏转为gif图片工具: 下载地址:CSDN 下载 1.封装了各项工具类,例如,日志,打印,缓存等,可直接使用项目 百度网盘:下载    提取码:fq07 2.Android高仿抖音 1.项目 的bu ...

  4. 分享2019版最新仿抖音直播系统app源码,开源版本

    声明:本文章仅限于学习交流,一切商业行为与本人无关. 我是一个本本分分的程序猿,每天都是996.苦的一逼.也是偶然机会,入手一个个仿抖音直播的app,还是原生的,后台是Php语言写的,用的还是Lara ...

  5. Android部分源码资源共享(视屏转GIF图片工具、仿抖音、仿朋友圈、仿红包、饼状图、引导图,图灵源码等)

    视屏转为gif图片工具: 下载地址:CSDN 下载 1.封装了各项工具类,例如,日志,打印,缓存等,可直接使用项目 百度网盘:下载     提取码:fq07 2.Android高仿抖音 1.项目 的b ...

  6. 安卓 图片清晰度 判断_抖音短视频素材、图片、音乐、文案怎么找,工具用哪些(新手必备)...

    亲爱的知友你好,我是阿信,专注于短视频运营及变现已经快两年,这期间也和很多新手朋友去交流沟通过,发现很多人在找素材这一块就把自己难住了,找不到好的素材,做不出优质的视频,对此今天就花时间给大家分享一下 ...

  7. html怎么把图片作为背景_抖音背景图片怎么弄,抖音背景图片引导关注

    想了解更多的内容,请加我微信 2857999497 (←长按复制)送抖音短视频运营资料一套. 做好账号定位策划后,首先要做的是抖音账号的包装,比如名字,签名,背景图设计,这些是粉丝第一眼能看到的,第一 ...

  8. 简单html图片轮播_抖音图片轮播的视频怎么制作?小白1分钟就能学会,超简单...

    案例视频: https://www.zhihu.com/video/1145378376775880704 我们经常在抖音里面能看到这类的视频,而且点赞还不少,就很多小伙伴问,这种视频应该怎么做? 做 ...

  9. 寒门博士分享读博经历成“抖音网红”惹争议,博士该这么“不正经”吗?

    全世界只有3.14 % 的人关注了 爆炸吧知识 最近在抖音上,一个名叫"相宜"的主播火了.短短几个月时间内,她就涨粉940万. 而和一般网红不同的是,相宜是一位刚毕业的博士.带火她 ...

  10. python 广告联盟跳转链接_抖音视频加入广告跳转链接怎么做?

    抖音信息流广告是指将广告主投放的视频广告在抖音推荐频道的信息流中进行展示,同时支持从视频广告点击跳转至广告主设置的落地页,帮助广告主在抖音实现营销推广的目的.以下我们就来介绍下抖音视频加入广告跳转链接 ...

最新文章

  1. Android开发技巧--Application, ListView排列,格式化浮点数,string.xml占位符,动态引用图片...
  2. php显示服务器拒绝连接失败,php – SMTP ERROR:无法连接到服务器:连接被Office365拒绝(111)...
  3. GSON解析JSON
  4. 【Liunx】Linux 文件基本属性
  5. 网商微信实名认证FAQ
  6. 保罗兰德作品赏析_保罗兰德——理想化的设计师人生
  7. 从零基础入门Tensorflow2.0 ----六、32cifar10数据训练
  8. LINUX的VirtualBox安装Windows7
  9. gephi java教程_如何使用java 生成gephi类似使用YifanHu's Multilevel算法生成的gexf文件?...
  10. Ubuntu16.04安装微信亲测可用
  11. 2023华东师范大学计算机考研信息汇总
  12. 华为ENSP进行evn实验,尚不完整,但已经有RT1、RT2、RT3、RT4了
  13. torch 正确的测试模型推理时间 torch.cuda.synchronize()
  14. Zooming Slow-Mo: Fast and Accurate One-Stage Space-Time Video Super-Resolution---视频超分辨代码调试总结
  15. 门面(facade)模式
  16. 500元征集网站域名和网站名称
  17. 默认网络设备流量控制
  18. word2016使用Latex编辑公式
  19. 小森生活一直显示服务器连接异常,小森生活进不去怎么解决?无法进入游戏问题原因与解决办法[多图]...
  20. TikZ从零开始(一)——A Picture for Karl‘s Students(下篇)

热门文章

  1. Dump+mysql导入_mysql mysqldump导入数据库
  2. IDEA配置JAVA11
  3. 创新思维案列分析——苹果公司
  4. 油田大数据与创新之路的探究
  5. 图扑数字孪生智慧加油站,构建安全防护网
  6. dep指定版本 go_将 dep 更换为 go mod
  7. 机器学习模型评价指标(准确率、精度、召回率)
  8. MySQL数据库之分库分表方案
  9. CorelDRAW_X6使用汇总
  10. [洛谷P3376题解]网络流(最大流)的实现算法讲解与代码