发布内容至抖音 H5 场景收藏我的收藏
收藏
我的收藏H5 分享是指第三方应用通过接入该功能,让用户可以从网页或者外部应用分享在线视频或图片等信息到抖音。
- •当前功能建议网站应用开发者使用,可以在移动端 H5 或 PC 端网站上进行接入。
- •移动应用的开发者,如果有 App,更建议接入分享 SDK,链路和体验会更顺畅。具体操作,请参见发布内容至抖音。
注意
目前抖音支持的内容格式为单图、单视频。
目前 H5 分享分为两种形式:分享到抖音编辑页、分享到抖音发布页。参考示例图如下
分享到抖音编辑页
分享到抖音编辑页流程一般为:
- 1.三方制作好要分享的视频。
- 2.调用该能力分享到抖音。
会先调起抖音裁剪页,然后再到抖音编辑页,最后再到抖音发布页。
分享到抖音发布页
分享到抖音无需经过抖音的裁剪页和抖音的编辑页,可以直接到抖音发布页,缩短了分享的链路。
注意
分享到抖音发布页目前只支持单视频发布。
Android 和 iOS 支持分享到抖音发布页功能的最低抖音版本为:
- •Android:20.8.0
- •iOS:21.5.0
接入步骤
1. 申请开通相关能力
- •需要提前申请开通【发布内容至抖音】 。
- •开通H5场景(h5.share):能力管理 > 视频权限 > 开通H5场景 > 申请开通
- •获取 openTicket(open.get.ticket):能力管理 > 特殊权限 > 获取 openTicket > 申请开通
2. 获取 client_token
注意
client_token 的有效时间 7200 秒左右,具体时效依赖接口返回,开发者必须在自己的服务全局缓存 client_token。
Method | HTTP request |
POST /oauth/client_token/ |
3. 使用 client_token 获取 ticket
注意
ticket 的有效期 7200 秒左右,具体时效需依赖接口返回,开发者必须在自己的服务全局缓存 ticket。
Method | HTTP request |
GET /open/getticket/ |
4. 根据 ticket 和其它字段进行签名计算
参与签名的字段包括:
- •
nonce_str
(随机字符串)- •有效的
ticket
- •
timestamp
(秒级时间戳,类型为 String)例如:
参数 | 示例 |
nonce_str | Wm3WZYTPz0wzccnW |
ticket | @ml6sqYBGgTKmQNajnKNkaj8yksCAY++adIhlGIqfTiKyvBqOIkzdJ6WRgP+nO+wtVItqKbX4iZ+mFIYkyPJjpQ== |
timestamp | 1650941858 |
签名计算:
- 1.对所有待签名参数按照字段名的 ASCII 码从小到大排序(字典序)后,使用 URL 键值对的格式(即
key1=value1&key2=value2…
)拼接成字符串 string1:nonce_str=Wm3WZYTPz0wzccnW&ticket=@ml6sqYBGgTKmQNajnKNkaj8yksCAY++adIhlGIqfTiKyvBqOIkzdJ6WRgP+nO+wtVItqKbX4iZ+mFIYkyPJjpQ==×tamp=1650941858
- 2.对 string1 进行 MD5 签名,得到 signature:
3f7b739a91a52cb7d85c4f89c5f611fe
。注意
- 1.签名用的
nonce_str
和 timestamp
必须与 schema 中的 nonce_str
和 timestamp
相同。- 2.出于安全考虑,开发者必须在服务器端实现签名的逻辑。
- 3.
timestamp
类型为 String。- 4.iOS 和 Android 抖音端内扫码 schema 头需要使用:
snssdk1128://openplatform/share
5. 生成分享 Schema
分享 schema 格式为
snssdk1128://openplatform/share?share_type=h5&client_key=xx&key=value...
,建议将参数都进行urlencode
处理。其中关键字段如下:
参数 | 必填 | 类型 | 说明 |
share_type | 是 | string | 固定值为 h5 |
client_key | 是 | string | 应用 key,在控制台中应用的总览页面获取 |
nonce_str | 是 | string | 随机字符串 |
timestamp | 是 | string | 时间戳 |
signature | 是 | string | 验签签名 |
state | 否 | string | 建议填写 |
image_path | 否 | string | 图片文件路径(单个,不能超过 20M) 当 video_path 存在时优先使用 video_path 当前支持的格式包含 png/jpg/gif 关于该参数请阅读表格下面的注意事项。 |
image_list_path | 否 | JsonArray.toString() | 当 video_path 存在时优先使用 video_path 当前支持的格式包含 png/jpg。 注意 抖音 22.2.0 版本以上支持该参数。 关于该参数请阅读表格下面的注意事项。 |
video_path | 否 | string | 视频文件路径(单个,不能超过 128M)。 当前支持的格式包含 mp4/mov。 关于该参数请阅读表格下面的注意事项。 |
hashtag_list | 否 | JsonArray.toString() | 支持有第三方预设内容分享抖音时默认携带的话题,指定的话题会展现在发布页面。示例:'["hashtag1","hashtag2"]' 用户可自行删除该话题,该话题类型支持商业化话题和普通话题。发布后和抖音原生话题没有差别。 |
micro_app_info | 否 | Json.toString() | 添加小程序。视频成功发布视频后,在视频左下角带有小程序入口。 示例:'{"appId":"小程序appId","appTitle":"小程序标题","description":"小程序描述语","appUrl":"小程序中生成该页面时写的 path 地址"}' 注意 要添加的小程序需跟应用为同一主体下才能挂载成功。 |
share_to_publish | 否 | number | 为 1 时直接分享到抖音发布页(仅视频) |
title | 否 | string | 视频标题 注意 抖音 22.2.0 版本以上支持该参数。 |
poi_id | 否 | string | 地理位置信息锚点 id,与小程序 appId 互斥,优先展示小程序。 注意 抖音 22.2.0 版本以上支持该参数。 |
share_to_type | 否 | int | 0:投稿 1:转发到日常 注意 抖音 25.4.0 版本以上支持该参数。 警告 投稿能力(aweme.share)和转发到日常能力(aweme.forward)均需应用申请对应能力的权限。 在抖音 30.5.0 以下版本,应用只需申请 h5.share 权限,即可在H5场景下使用投稿能力和转发到日常能力。 在抖音 30.5.0 及以上版本,用户需先申请h5.share能力开通H5场景,然后需申请 aweme.share 权限以使用投稿能力,申请 aweme.forward 权限以使用转发到日常能力。 |
short_title | 否 | string | 短标题 注意 抖音 30.0.0 版本以上支持该参数 |
download_type | 否 | int | 是否允许下载 1:允许,2:不允许 注意 抖音 30.0.0 版本以上支持该参数 |
private_status | 否 | int | 视频公开范围 0:全部人可见,1:自己可见,2:好友可见 注意 抖音 30.0.0 版本以上支持该参数 |
feature | 否 | string | 可选值: note:当整体投稿流程为"普通投稿",且投稿内容为"多图",投稿类型为“图文”时,可以设置这个值,将体裁转变为"笔记"。 注意
|
注意事项:
- •
image_path
、image_list_path
和 video_path
三者至少要传一个,否则会报错。- •想获取用户分享结果,请调用查询视频发布结果获取
share_id
,将其填写到 state
字段。- •参数需要编码,生成 Schema 请参考 H5 分享 Schema 生成示例。
- •图片格式支持:png/jpg/gif/(多图分享不支持 gif),视频格式支持:mp4/mov。
- •目前通过请求头中
content-type
进行校验,视频格式支持的 content-type 有 video/3gpp、video/quicktime、video/mp4,图片格式是 image/*。- •iOS设备只有在 title 不为空的情况下,hashtag_list 能力才生效。
- •iOS设备暂不支持含有中文字符的文件路径URL(图片/视频/appUrl)
6. 拉起抖音分享
目前拉起分享支持以下两种方式:
- •Schema 生成二维码,用户使用抖音扫描二维码。
- •移动端 H5 或者 app 通过 schema 直接拉起抖音分享。
H5 页面示例: