JS 接入指南
前提条件
抖音 App 10.4.0 以上版本才能使用 JS SDK。
操作步骤
第一步:申请网站应用
如还未申请过网站应用,请先申请网站应用。网站应用申请审核通过后,您可以获得该应用所属的 Client Key 和 Client Secret。具体操作,请参见创建移动应用或网站应用。
第二步:申请 JSBridge 能力
第三步:填写 JSBridge 安全域名
在该应用管理中心的基础信息选项卡中,修改 JSBridge 安全域名。
安全域名用于初始化验证签名过程,只有在安全域名内的页面才能通过签名验证。
第四步:引入 JS SDK 文件
注意:低版本抖音是无法调起半屏授权的,所以请先判断抖音版本号,再在符合要求的版本上使用该功能。
- •openConfig 验签的抖音上线版本为 10.4.0
- •showOpenAuth 的抖音上线版本为 10.8.0。
第五步:通过 config 方法验证签名
const sdk = window.DouyinOpenJSBridge; const timestamp = String(parseInt(Date.now() / 1000)); // 类型为 String const nonceStr = ""; // 生成签名用的随机字符串 const url = location.href; sdk.config({ params: { client_key: clientKey, // clientKey在你的网页应用申请通过后得到 signature: calcSig(timestamp, nonceStr, url), // 服务端计算的签名,该签名被抖音开放平台验证通过后方可调用jsb方法 timestamp: timestamp, // 时间戳 nonce_str: nonceStr, url: url, // 为应用申请的 JSB 安全域名下的链接,需要携带协议。e.g. https://jsb.security.domain/page.html }, });
警告
url 参数的值必须是当前页面的 url,如果填入的 url 与当前页面的 url 不相符,可能导致鉴权失败或后续调用 showOpenAuth 接口失败。
第六步:通过 ready 方法处理成功验证
sdk.ready(() => { // Config Ready回调 });
第七步:通过 error 方法处理失败验证
sdk.error((res) => { // Config error回调,res示例:{ status_code: 5, status_msg: '错误信息' } });
第八步:调用申请通过的 JSBridge 能力
// 授权JSB sdk.showOpenAuth({ params: { ... // JSB方法参数 }, success: res => { // 成功回调 }, error: res => { // 失败回调 } }); // 其他JSB方法 sdk.bridge.call('jsbName',{ // JSB方法名,如 music params: { ... // JSB方法参数 }, success: res => { // 成功回调,必需 }, error: res => { // 失败回调,必需 } });
常见问题
error 方法错误码
错误码 | 描述 |
4 | 服务器内部错误,例如网络错误 |
5 | 参数不合法 |
3073 | 请求参数为空 |
16386 | host不合法 |
16387 | js ticket不合法 |
16388 | 签名不正确 |
Host 不合法
确认页面所在域名是否与应用配置的 JSB 安全域名一致。JSB 安全域名可在 「抖音开放平台首页」>「右上角控制台」>「我的应用」>「网站应用」>「设置」> 「应用信息」>「JSBridge 安全域名」中进行配置和修改。
签名不正确
请下载 React 示例代码,查看签名算法文档,确认按照配置与示例进行签名生成。
常见的签名不正确的原因有:
- •timestamp 类型为 String。
- •sdk.config 用的 URL 必须是调用 JS 接口页面的完整 URL(但是不包括#及后面部分)。