分享图片或链接到抖音

article/2025/8/28 4:53:53

目录

前言

一、官方文档

二、开始配置

第一步:向抖音短视频申请你的 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>


http://chatgpt.dhexx.cn/article/J0uKDOw9.shtml

相关文章

仅用一个 HTML 标签,实现带动画的抖音 Logo

作者 | 零一 来源 | 前端印象 今天给大家表演 仅用一个HTML标签实现带动画的抖音LOGO&#xff0c;涉及了很多知识点&#xff0c;欢迎交流讨论 先上结果&#xff0c;最终实现效果如下&#xff1a; 成品图 还原度应该还可以吧&#xff1f; 抖音Logo结构 想要用CSS来画抖音的Logo&…

用python+pillow模块实现抖音晃眼睛的特效,图像处理之路(附源码)

前言 利用Python实现抖音晃眼睛的特效&#xff0c;让我们愉快地开始吧~ 开发工具 Python版本&#xff1a; 3.6.4 相关模块&#xff1a; pillow模块&#xff1b; numpy模块&#xff1b; argparse模块&#xff1b; 以及一些Python自带的模块。 环境搭建 安装Python并添加到…

仅用一个HTML标签,实现带动画的抖音LOGO

大家好&#xff0c;我是零一&#xff0c;今天给大家表演 仅用一个HTML标签实现带动画的抖音LOGO&#xff0c;涉及了很多知识点&#xff0c;欢迎交流讨论 先上结果&#xff0c;最终实现效果如下&#xff1a; 还原度应该还可以吧&#xff1f; 抖音Logo结构 想要用CSS来画抖音的…

uni-app项目引入图标

uni-app项目引入图标 普通图标引入 1、阿里巴巴矢量图官网创建图标项目 2、将搜索的图标添加进购物车&#xff0c;在购物车里面将图标添加进项目里面 3、下载该文件到本地&#xff0c;将该文件的css文件复制到项目里面 &#xff08;并设置大小&#xff09; 4、修改icon…

免费下载无水印抖音视频

今天&#xff0c;跟大家分享一个免费下载抖音视频的方法&#xff0c;可以去除抖音上的id水印。话不多说&#xff0c;直接上图。 1.复制手机端抖音链接。 点击这个分享图标 复制链接 发送到电脑&#xff0c;打开网页http://douyin.adsond.com/&#xff08;点此直接进入&…

抖音下载android,抖音完整版

《抖音完整版》这是一款可以发布完整版视频资源的软件&#xff0c;在软件中多种精彩丰富的视频内容&#xff0c;拥有各种最新的潮流以及特色的丰富内容&#xff0c;等你来看&#xff01;这里超多种丰富好玩的视频资源&#xff0c;特色的观看体验&#xff01;(以下来为大家介绍详…

CSS3解析抖音 LOGO制作

“抖音”,人气也是非常高,据说拥有7亿用户。 今天我们就来研究研究抖音的logo,蹭蹭热度。 效果预览: 主要用css3新增属性mix-blend-mode,”组成,然后有3种颜色,白色、红色、和天蓝色。 ok,我们先来完成一个“J”。根据以往的经验,我们把它拆分成3部分。 下面我们来…

抖音logo制作教程

1.新建1200*1200PX的画板 2.创建484*484px、216*216px、630*630px、362*362px四个圆形和134*520px的矩形,并按照一下规则进行排放 3.对这几个圆形和矩形进行合并图层操作 合并后效果如下 4.利用路径选择工具进行路径的选择并进行布尔运算 4.1选中中央的两个圆 4.2对中央的两个圆…

CDR绘制抖音APP图标

先看看效果图 感兴趣可加:741090028 第一步:首先建个方形画布,大小自己掌握。 第二步:画一个3cm3cm的正圆,然后原位复制一个选中修改尺寸1.5cm1.5cm,就会得到下图效果 第三步:再画一个2.5cm2.5cm的正圆,然后原位复制一个选中修改尺寸1cm1cm,就会得到下图效果。 为什…

【有利可图网】PS实战系列:制作抖音UI图标

今天给大家更新一个有趣的制作抖音图标的教程。 1、首先新建一个1024X768分辨率为72像素/英寸的温度&#xff0c;为了看得清楚一点&#xff0c;给背景填充一个浅蓝色#8d8dff&#xff0c;然后现在椭圆选框工具&#xff0c;属性栏上将样式改成固定大小&#xff0c;把宽度和高度都…

天呐 这么多人还不知道tiktok也是抖音(字节跳动集团旗下)的?

天呐 这么多人还不知道tiktok也是抖音&#xff08;字节跳动集团旗下&#xff09;的&#xff1f; 短视频忽然间的一阵大风&#xff0c;再恍惚一阵子&#xff0c;你我就都被这一阵风刮成地中海了。最早的短视频源于印象里的QQ音乐相册和微机课上的PPT动画。 但是转眼之间的短视频…

Flutter 自定义控件-仿照安卓和抖音图标绘制

抖音图标&#xff1a; 1、绘制黑色圆角矩形 class MyTrillPainter extends CustomPainter {overridevoid paint(Canvas canvas, Size size) {var paint Paint()..isAntiAlias true..style PaintingStyle.fill //..strokeWidth 1.0..color Colors.black; //背景为纸红色//…

Unity之ASE实现 故障干扰 效果(抖音图标)

前言 今天我们来实现一个类似抖音图标的 故障干扰效果,如下图所示: 原理 我们看到效果图里面有看到红色和蓝色的颜色左右扰动偏移,其实它的实现原理很简单。就是一个图片的R通道和B通道左右偏移,加上一个扰动效果即可,下面我们来打个分析下。 1.扰动效果 扰动我们说…

PS—制作 抖音 图标

博客概要 私下自学过ps&#xff0c;短学期的时候在上UID&#xff0c;巩固了一些ps技巧&#xff0c;至此总结一下~模仿制作 抖音 图标。 文章目录 博客概要总流程图标的详细制作过程 总流程 1.准备Photoshop软件,运行软件并新建合适大小的画布 2.在画布上制作完成 抖音 图标 图标…

PS教程:如何制作抖音UI图标

说到抖音,大家都不陌生,无论是老人还是小孩在闲暇时间都喜欢刷抖音,大家知道抖音图标是怎样制作成的吗?下面将方法告诉大家!   1.首先新建一个1024X768分辨率为72像素/英寸的文档,为了看的清楚一点,给背景填充一个浅蓝色#8d8dff,然后选择椭圆选框工具,属性栏上将样…

摩尔定律还会一直生效吗?

摩尔定律是由英特尔&#xff08;Intel&#xff09;创始人之一戈登摩尔&#xff08;Gordon Moore&#xff09;提出来的。其内容为&#xff1a;当价格不变时&#xff0c;集成电路上可容纳的元器件的数目&#xff0c;约每隔18-24个月便会增加一倍&#xff0c;性能也将提升一倍。换…

芯片——摩尔定律的传奇(下)

芯片——摩尔定律的传奇&#xff08;下&#xff09; 引自: http://www.ccf.org.cn/c/2017-08-16/603629.shtml 50多年来&#xff0c;集成电路(IC)一直按照摩尔定律前行。但是&#xff0c;IC芯片的密度和计算机的速度能够一直按照摩尔定律前行吗&#xff1f;又有哪些物理极限和…

摩尔定律的瓶颈

摩尔定律的瓶颈 上世纪60年代&#xff0c;摩尔发现半导体晶体管制程发展的速度对于一个半导体厂商至关重要。 随着制程的进化&#xff0c;同样的芯片的制造成本会更低&#xff0c;因为单位面积晶体管数量提升导致相同的芯片所需要的面积缩小。所以制程发展速度如果过慢&#…

摩尔定律将失效后的发展方向

1. 摩尔定律 摩尔在1965年4月19日的《电子学》杂志上公布了这一著名预言。英特尔CEO科再奇(Brian Krzanich)表示&#xff1a;“摩尔定律是一项经济定律&#xff0c;与物理和化学并无太大关系。在几年时间里&#xff0c;我们将使芯片上的晶体管数量增加一倍。实际上&#xff0c…

摩尔定律的失效

摩尔定律由英特尔公司&#xff08;Intel&#xff09;的创始人之一的戈登摩尔与1965年提出。 摩尔定律的定义归纳起来有三种说法&#xff1a; 1.集成电路芯片上所集成的电路的数目&#xff0c;每隔18个月就翻一倍。 2.微处理器的性能每隔18个月提高一倍&#xff0c;或价格下…