分享内容至抖音 H5 场景
当前功能建议网站应用开发者使用,可以在移动端 H5 或 PC 端网站上进行接入。
移动应用的开发者,如果有 APP,更建议接入分享 SDK,链路和体验会更顺畅:
H5 分享是指第三方应用通过接入该功能,让用户可以从网页或者外部应用分享在线视频或图片等信息到抖音。目前抖音支持的内容格式为单图、单视频。 目前分享分为两种形式的分享:
1. 分享到抖音编辑页
分享到抖音编辑页流程一般为:三方制作好要分享的视频之后,调用该能力分享到抖音,会先吊起抖音裁剪页,然后再到抖音编辑页最后再到抖音发布页。
2.直接分享到抖音发布页
分享到抖音无需经过抖音的裁剪页和抖音的编辑页,可以直接到抖音发布页,减少了分享的链路。
分享到发布页目前只支持单视频发布。
注意事项:
目前支持该能力的抖音最低版本为安卓 20.8, iOS 21.5.
接入步骤
1. 申请 scope
视频权限下 h5.share
特殊权限下 open.get.ticket
2.获取 client_access_token(开发者必须在自己的服务全局缓存 access_token)
Method | HTTP request |
---|---|
POST /oauth/client_token/ |
3. 使用 client_access_token 获取 ticket(有效期 7200 秒左右,具体时效需依赖接口返回,开发者必须在自己的服务全局缓存 ticket)
Method | HTTP request |
---|---|
GET /open/getticket/ |
4.根据 ticket 和其他字段进行签名计算
参与签名的字段包括 noncestr(随机字符串), 有效的 ticket, timestamp(时间戳,秒级别,类型为 String)
例如:
nonce_str | Wm3WZYTPz0wzccnW |
---|---|
ticket | @ml6sqYBGgTKmQNajnKNkaj8yksCAY++adIhlGIqfTiKyvBqOIkzdJ6WRgP+nO+wtVItqKbX4iZ+mFIYkyPJjpQ== |
timestamp | 1650941858 |
步骤一
对所有待签名参数按照字段名的 ASCII 码从小到大排序(字典序)后,使用 URL 键值对的格式(即 key1=value1&key2=value2…)拼接成字符串 string1:
nonce_str=Wm3WZYTPz0wzccnW&ticket=@ml6sqYBGgTKmQNajnKNkaj8yksCAY++adIhlGIqfTiKyvBqOIkzdJ6WRgP+nO+wtVItqKbX4iZ+mFIYkyPJjpQ==×tamp=1650941858
步骤二
对 string1 进行 md5 签名,得到 signature: e9e2aa8136260a22b0b09fdee43ccb8a
注意事项:
1、签名用的 nonce_str 和 timestamp 必须与 schema 中的 nonce_str 和 timestamp 相同。
2、出于安全考虑,开发者必须在服务器端实现签名的逻辑。
3、timestamp 类型为 String
5. 生成分享 Schema
分享 schema 格式为 snssdk1128://openplatform/share?share_type=h5&client_key=xx&key=value...
其中关键字段如下:
参数 | 必填 | 类型 | 默认值 | 备注 |
---|---|---|---|---|
share_type | 是 | string | 写死为h5 | |
client_key | 是 | string | 应用key | |
nonce_str | 是 | string | 随机字符串 | |
timestamp | 是 | string | 时间戳 | |
signature | 是 | string | 验签签名 | |
state | 否 | string | 建议填写,按照文档获取,可以获取视频发布情况 | |
image_path | 否 | string | 图片文件路径(单个) 当image_list_path存在时优先使用image_list_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() | 无 | |
micro_app_info | 否 | json.tostring | 添加小程序。视频成功发布视频后,在视频左下角带有小程序入口。 { "appId":"小程序appId", "appTitle":"小程序标题", "description":"小程序描述语", "appUrl":"小程序中生成该页面时写的path地址" } 注:需要添加的小程序需先在小程序平台开通「通用短视频挂载」能力后,才能被添加并显示 | |
share_to_publish | 否 | number | 0 | 为1时直接分享到抖音发布页(仅视频) |
title | 否 | string | 视频标题 注:抖音22.2.0版本以上支持 | |
poi_id | 否 | string | 地理位置信息锚点id 注:抖音22.2.0版本以上支持 |
注意事项:
1、生成 Schema 的参考方式如下:
2、想获取用户分享结果,请获取将其填写到 state 字段
3、图片格式支持:png/jpg/gif (多图分享不支持 gif);视频格式支持:mp4/mov。
4、iOS 21.8 版本以下存在以下问题:
- 依赖HTTP HEAD请求判断视频/图片格式, 资源链接需要保证HTTP HEAD content-Type返回格式正确。
- 不传入hashtag情况需要hashtag_list传入空格字符串绕开iOS当前崩溃.
6.拉起抖音分享
目前拉起分享支持以下两种方式:
- Schema生成二维码,用户使用抖音扫描二维码
- 移动端H5或者APP通过schema直接拉起抖音分享