iOS授权登录开发手册

功能介绍

本文档旨在说明:授权登录通过使用抖音短视频授权,获取使用抖音短视频登录第三方应用的权限。通过用户同意授权允许您的 App 访问用户相关个人信息,包括用户昵称、头像等信息。

适用场景

本能力适用于通过使用抖音短视频授权,获取使用抖音短视频登录第三方应用的权限

总体授权说明

移动应用使用抖音短视频授权是基于 OAuth2.0 协议标准。抖音短视频授权采用 OAuth2.0 的授权码 (authorization code) 方式,首先需要获取一个临时票据,再用该临时票据获取令牌 (access_token) ,然后通过该令牌获取用户信息。详见总体授权说明

准备工作

在使用iOS授权接入之前,您需要完成接入指南中的申请、配置过程。配置过程详见:iOS接入指南

操作步骤

第一步 引入头文件

引入DouyinOpenSDKAuth.h这个头文件

#import <DouyinOpenSDK/DouyinOpenSDKAuth.h>

第二步 构造授权的请求

构造发送给抖音的授权请求。

DouyinOpenSDKAuthRequest *req = [[DouyinOpenSDKAuthRequest alloc] init];

第三步 设置参数

设置授权域( permissions ,授权域是指第三方使用抖音授权之后,可以获得抖音用户的哪些信息

目前只开放了 user_info 一种授权域,表示可以获得请求用户头像、昵称等相关信息的权限)

req.permissions = [NSOrderedSet orderedSetWithObject:@"user_info"];

设置可选授权

request.additionalPermissions = [NSOrderedSet orderedSetWithObjects:
@{ @"permission" : @"mobile", @"defaultChecked" : @"0" },
nil];

第四步:发送请求

1.在设置好授权需要带入的信息之后 通过

-[DouyinOpenSDKAuthRequest sendAuthRequestViewController:completeBlock:]

发送授权请求,结果将通过CompleteBlock进行回调

  [request sendAuthRequestViewController:self completeBlock:^(DouyinOpenSDKAuthResponse * _Nonnull resp) {
        __strong typeof(ws) sf = ws;
        NSString *alertString = nil;
 if (resp.errCode == 0) {
            alertString = [NSString stringWithFormat:@"Author Success Code : %@, permission : %@",resp.code, resp.grantedPermissions];
        } else{
            alertString = [NSString stringWithFormat:@"Author failed code : %@, msg : %@",@(resp.errCode), resp.errString];
        }
        [UIAlertController showMsg:alertString inVC:sf];
    }];

2.授权结果说明

(1) 成功:可通过respond.code 获取用户在选择开放给第三方的信息并确认之后,抖音服务器会返回给第三方应用授权临时票据 (authorization code)

(2)失败: 可通过respond.errCode获取错误码对应枚举值DouyinOpenSDKErrorCode 通过respond.errString会返回报错信息。

错误码对应表:

SDK Demo下载

提供授权的SDKDemo供参考,涉及clientkey不能直接运行完整流程,参见上面的说明修改. 点击下载

FAQ

1. 无法分享或者授权无法打开抖音短视频

答: 检查 Info.plist 中是否正确设置LSApplicationQueriesSchemes 各个 URLSchema 的用途:

  • douyinopensdk 用于授权登录和抖音短视频通讯
  • douyinsharesdk 用于分享和抖音短视频通讯
  • snssdk1128 用于检测是否安装抖音短视频 如果没有正确设置会导致你的App不能正常打开抖音短视频

2.报 Category 找不到的错误 e.g.+[NSString bdsdk_timeStamp]: unrecognized selector sent to class 0x2279a02d0

答 : 在TARGETS->Build Settings->Other Linker Flags 中添加-ObjC,字母 O 和 C 大写

3. 无法从抖音短视频回跳到您的 APP

答: 检查工程配置中是否正确设置了 URL Schemes 检查在 Xcode 中,选择你的 TARGETS,在 info 标签栏的最下面的 URL Types,在 URL Schemes 里面的你申请得到的 ClientKey 是否正确

4.无法分享

答: 确定您 App 的 工程内设置的 BundleID 和 ClientKey 和您在平台网站上申请的是一致的

5.分享携带 ShareID 并没有受到回调

答: 分享携带 ShareID 需要抖音短视频版本大于V7.4.0

解除授权通知:

用户可在抖音APP-设置-帐号与安全-授权管理中解除对应用的授权,如需及时获知用户解除授权通知,请接入解除授权事件通知,具体调用方式参考 Webhooks-事件 。

更多FAQ,详见:iOS常见问题

诚邀您对本文档易读易用性进行评价
好用
不好用