我一直在关注集成 TikTok 的 Android 登录工具包的文档。这是我从 TikTok SDK 提供的 IAPIEventHandler 接口接收回调的完整活动:
internal class ATikTokAuth : BaseActivity(), IApiEventHandler {
private val clientKey = TIKTOK_CLIENT_KEY
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.a_tik_tok_auth)
val tiktokOpenConfig = TikTokOpenConfig(clientKey)
TikTokOpenApiFactory.init(tiktokOpenConfig)
val tikTokOpenApi = TikTokOpenApiFactory.create(this)
tikTokOpenApi.handleIntent(intent, this)
val request = Authorization.Request()
request.scope = "user.info.basic"
request.state = "starting"
request.callerLocalEntry = "com.package.name.ATikTokAuth"
tikTokOpenApi.authorize(request)
}
override fun onReq(request: BaseReq?) {
Timber.d("onRequest called: ${request?.extras}")
}
override fun onResp(resp: BaseResp?) {
Timber.d("onResponse: isSuccess: ${resp?.isSuccess} If not, error: ${resp?.errorMsg}")
if (resp is Authorization.Response) {
val code = resp.authCode
Timber.d("onResponse authcode: $code ")
requestAccessToken(resp.authCode)
}
}
override fun onErrorIntent(intent: Intent?) {
Timber.d("onErrorIntent ${intent?.extras}")
}
}
运行此代码会创建 web 视图,供用户选择登录 TikTok 并将其 TikTok 帐户连接到我的应用程序的方式,但在授权后,用户将返回此活动,而不会调用 onResp。onErrorIntent() 在 webview 启动时被调用,但意图没有数据,因此没有对调试有用的信息。
此外,虽然文档初始化 TikTokOpenConfig 是这样的:
TikTokOpenConfig tiktokOpenConfig = new TikTokOpenConfig(clientKey);
TikTokOpenApiFactory.init(new TikTokOpenConfig(tiktokOpenConfig));
TikTokOpenConfig 只接受 clientKey 的字符串参数,所以我认为它应该是
val tiktokOpenConfig = TikTokOpenConfig(clientKey)
TikTokOpenApiFactory.init(tiktokOpenConfig)
我没有看到其他方法,因为文档中的代码甚至无法编译
TikTok被宣布为
implementation 'com.bytedance.ies.ugc.aweme:opensdk-oversea-external:0.2.0.2'
在我的清单中。我究竟做错了什么?