0

我一直在关注集成 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'

在我的清单中。我究竟做错了什么?

4

1 回答 1

0

我移动了 tikTokOpenConfig 的初始化

val tiktokOpenConfig = TikTokOpenConfig(clientKey)
TikTokOpenApiFactory.init(tiktokOpenConfig)

进入自定义 App 类。

于 2021-12-20T14:49:30.370 回答