调起用户授权(半屏)
本方法用于唤起半屏原生授权界面,实现抖音开放平台 OAuth 登录和授权功能。
版本要求
- •抖音:10.8.0 及以上版本
- •JS SDK:1.0.3 及以上版本
抖音版本差异
openConfig 验签上线抖音版本为10.4.0, showOpenAuth 上线抖音版本为10.8.0,低版本抖音是无法唤起半屏授权的,所以请先判断抖音版本号,在符合要求的版本上面再使用该功能。
判断抖音版本号代码:
const APP_VERSION_REGX = { android: new RegExp("app_version/", "i"), ios: new RegExp("aweme_", "i"), }; const ua = navigator.userAgent; const os = /(Android);?\s+([\d.]+)?/i.test(ua) ? "android" : "ios"; const version = parseFloat(ua.split(APP_VERSION_REGX[os])[1]);
调用方法
const sdk = window.douyin_open; sdk.showOpenAuth({ params: { client_key: clientKey, // clientKey 在你的网页应用申请通过后得到 state: "", // 自定义状态,详见下方说明 scopes: { user_info: 0, // 0: 必选;1: 可选,默认不选中; 2: 可选,默认选中 }, response_type: "code", // 默认填‘code’,详见下方说明 }, success: ({ ticket, grant_permissions }) => { // ticket: Oauth 凭据,详见下方说明 // grant_permissions: String 类型,用户授权的所有 scope,以“,”拼接,例:user_info,mobile }, error: (res) => {}, });
问题排查
利用返回给应用的错误信息
showOpenAuth 调用不成功时,会有错误码返回给应用,告诉应用错误原因。
- •iOS 返回数据格式:
{ "code": -2, "msg": "Error Domain=AWEOpenPlatformErrorDomain Code=-2 \"(null)\"", "res": { "code": 0, "errorMsg": "Error Domain=AWEOpenPlatformErrorDomain Code=-2 \"(null)\"", "errorCode": -2, "respJsTime": "1593694298166" } }
- •Android 返回数据格式:
{ "code": -2, "msg": "用户取消", "res": { "code": 0, "errorCode": -2, "errorMsg": "用户取消" } }
code 说明:
- •1:成功
- •0:失败
- •-2:手动取消
说明:
在支持该 JS Bridge 功能的环境下,开发者 Web 页面可直接通过调用该方法打开抖音客户端授权页面;如使用不支持版本的抖音和 JS SDK,需要使用原方法,跳转到 https://open.douyin.com/platform/oauth/connect/ 页面进行授权。