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常见问题