Android端TikTok Login Kit登录回调无法触发如何解决?
TikTok Login Kit 回调不触发问题修复方案
你修改的SDK初始化逻辑是正确的,官方文档给出的双参构造示例是版本不匹配导致的笔误,0.2.0.2版本的TikTokOpenConfig仅支持传入clientKey字符串的单参构造,这部分代码不需要调整。
回调不触发、onErrorIntent返回空数据的问题由以下三个常见错误导致,按顺序排查修复即可:
- Activity启动模式与回跳scheme配置缺失
接收回调的ATikTokAuth必须配置为singleTask启动模式,同时配置TikTok要求的intent-filter接收回跳intent,否则授权完成后系统无法正确把结果传回你的应用。
在AndroidManifest.xml中给对应Activity添加如下配置:
注意scheme拼写错误是最高发的问题,不要直接填clientKey,必须带<activity android:name=".ATikTokAuth" android:launchMode="singleTask" android:exported="true"> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <!-- scheme格式固定为tiktokopenapi拼接你自己的clientKey,不要加额外字符 --> <data android:scheme="tiktokopenapi${替换为你的TIKTOK_CLIENT_KEY}" /> </intent-filter> </activity>tiktokopenapi前缀。 - 未重写onNewIntent方法处理回跳intent
singleTask模式下,授权回跳不会重新执行Activity的onCreate生命周期,而是通过onNewIntent传回新的intent。你当前仅在onCreate中调用了tikTokOpenApi.handleIntent,回跳时根本不会执行回调解析逻辑。
首先把onCreate中初始化的tikTokOpenApi提升为类的成员变量,再添加如下生命周期方法:private lateinit var tikTokOpenApi: TikTokOpenApi override fun onNewIntent(intent: Intent?) { super.onNewIntent(intent) tikTokOpenApi.handleIntent(intent, this) } - callerLocalEntry参数校验
你在授权请求中填写的request.callerLocalEntry必须和Manifest中声明的Activity全类名完全一致,包名、类名任何一个字符不匹配,SDK都会直接丢弃授权结果,不会触发onResp回调。
以上配置修改完成后,重新运行授权流程,授权完成回跳即可正常进入onResp回调拿到authCode。
内容的提问来源于stack exchange,提问作者andrewedgar
相关产品推荐
相关产品推荐

