抖音短视频授权登录功能介绍及适用场景说明

2024-07-05
来源:网络整理

特征

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

适用场景

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

注:此授权SDK不适用于抖音快车版,请下载抖音主版本才能完成授权功能。

一般授权声明

抖音短视频移动应用授权基于.0协议标准,抖音短视频授权采用.0授权code(code)方式,首先需要获取临时,然后使用临时获取(),再通过获取用户信息,详情见整体授权说明。

注意:授权功能已适配至11,如在11上遇到授权功能异常,请升级SDK版本至0.1.4.0及以上版本,请参考配置包可见性,确保SDK能正确获取抖音的应用签名。

准备

使用授权访问前,您需要完成访问指南中的申请及配置流程,配置流程详情请参见访问指南。

我们提供授权书供参考,如果您无法直接运行完整流程,请参考以下说明进行修改,点击下载:授权书

操作步骤 步骤1:初始化

在()中初始化

String clientkey = "xxxxxx"; // 需要到开发者网站申请 DouYinOpenApiFactory.init(new DouYinOpenConfig(clientkey));

第 2 步:注册信息

登记

<uses-permission android:name="android.permission.INTERNET" /> <activity android:name=".douyinapi.DouYinEntryActivity" android:launchMode="singleTask" android:taskAffinity="你的包名" android:exported="true"> </activity>

步骤3:设置参数

开发者接入,设置授权域(),调用如下方法后会打开授权接口,用户选择需要开放给第三方的信息并确认后,服务器会返回一个临时的授权(code)给第三方应用。

DouYinOpenApi douyinOpenApi = DouYinOpenApiFactory.create(this); Authorization.Request request = new Authorization.Request(); request.scope = "user_info"; // 用户授权时必选权限 //request.state = "ww"; // 用于保持请求和回调的状态,授权请求后原样带回给第三方。 //request.callerLocalEntry = "com.xxx.xxx...activity"; return douyinOpenApi.authorize(request); // 优先使用抖音app进行授权,如果抖音app因版本或者其他原因无法授权,则使用web页授权

参数描述是否必填?

授权域是指您的应用使用抖音授权后,可以获取抖音用户的哪些信息。目前授权域是开放的,也就是说您可以获取请求用户头像、昵称等相关信息的权限。若需要的权限有多个,请使用逗号分隔,"xxx,xxx"

是的

用于维护请求和回调的状态,将授权请求完整地返回给第三方。

第三方指定自定义回调类,自定义时请注意实现此方法

用户可选择的授权域,默认未选中

用户可选择的授权域,默认勾选

结果显示:

执行代码后会显示的授权登录页面(若未安装则会显示网页授权页面)。

结果显示:

步骤4:接受返回的信息

在应用名下(或者你自己的)创建一个包,初始化,实现接口,并在方法中获取授权码结果

public class DouYinEntryActivity extends Activity implements IApiEventHandler { DouYinOpenApi douYinOpenApi; @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); douYinOpenApi = DouYinOpenApiFactory.create(this); douYinOpenApi.handleIntent(getIntent(), this); } @Override public void onReq(BaseReq req) { } @Override public void onResp(BaseResp resp) { // 授权成功可以获得authCode if (resp.getType() == CommonConstants.ModeType.SEND_AUTH_RESPONSE) { Authorization.Response response = (Authorization.Response) resp; if (resp.isSuccess()) { Toast.makeText(this, "授权成功,获得权限:" + response.grantedPermissions, Toast.LENGTH_LONG).show(); } else { Toast.makeText(this, "授权失败" + response.grantedPermissions, Toast.LENGTH_LONG).show(); } finish(); } } @Override public void onErrorIntent(@Nullable Intent intent) { // 错误数据 Toast.makeText(this, "intent出错啦", Toast.LENGTH_LONG).show(); finish(); }

注意:如果您的应用代码经过混淆,获取授权后将无法获取授权结果回调,请将您收到的回调(或您自定义的回调)加入非混淆列表。

第五步:获取授权码结果说明

返回值及相关说明

返回值说明

OK = 0 授权成功,= -1 未知错误,= -2 用户手动取消更多错误码请参考.java

临时票号,用于兑换

用于标识第三方程序发送的请求的唯一标识,在第三方程序调用.()时传入,由抖音终端返回。

第三方通过用户授权获取的授权域

第 6 步。获取

(此接口及后续接口请求建议在服务端调用,原因见注释)

成功获取auth code后,需要调用接口获取,具体请参见:获取授权接入说明

注意

它是应用密钥,一旦泄露,可能存在用户隐私数据泄露的风险,存放在客户端不安全,容易被窃取。

用户授权第三方接口调用的凭证保存在客户端,可能被窃取,风险同上。

仅用于刷新,如果泄露则相当于泄漏,风险同上,建议放在服务器保存使用。

SDK 演示下载

授权仅供参考,若无法直接运行完整流程,请参考以上说明进行修改,点击下载授权

SDK 0.0.1.X到新版SDK 0.1.1.0以上版本其他主要变化 1.类库引入方法

dependencies { implementation 'com.bytedance.ies.ugc.aweme:opensdk-china-external:0.1.1.0' implementation 'com.bytedance.ies.ugc.aweme:opensdk-common:0.1.1.0' }

第三方抖音数据平台_抖音第三方平台是干什么的_抖音第三方数据平台

新版SDK需要导入两个AAR,这是和旧版SDK最大的区别

2.将主类名由原来的名称改为现在的名称

r

3.授权包名的类名变更

在引入这些类的时候只要改成正确的包名就可以了。

默认回调类已更改为..

默认回调..改为..,自定义回调可以忽略此项

将改为 code,方便大家统一查找,原错误码描述

好 = 0

成功

= -1

未知错误

= -2

用户手动取消

= -12

网络未连接

= -13

网络连接超时

= -14

网络超时

= -15

网络 io 错误

= -16

网络未知主机错误

= -21

网络 SSL 错误

=

系统异常

=

参数错误

=

非法配置()

=

授权域配置错误

=

缺少参数

=

非法重定向 URL

=

代码无效

=

无效的

=

非法参数

=

已到期

=

授权认证失败

授权认证失败,需要完善签名信息,点击查看详情,请在手机上安装您的在线包(应用市场发布的包),然后使用签名工具生成签名。

常问问题

问:全屏和半屏有什么区别?

全屏:或iOS App集成授权SDK,打开授权登录页面

半屏:抖音端h5页面使用抖音授权登录,需要集成js sdk才能拉起抖音授权登录页面

问:取消授权通知

用户可以在抖音APP-设置-账号与安全-授权管理中撤销应用的授权。如需及时获知用户取消授权的消息,请接入取消授权事件通知,具体调用方式请参考-事件。

Q:为什么同一个应用程序,签名工具得到的签名信息不一样?

签名工具的使用方法是:先下载你的应用的包(发布到应用市场的包)到手机,然后安装签名工具,输入你的应用的包名,然后就可以获取签名了。如果你安装电脑本地打印出来的包来获取签名,此时获取到的签名和在线包的签名不一样,会造成错误代码。

分享