我一直在遵循为Android集成TikTok登录工具包的文档。以下是我从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}")
}
}
运行此代码将创建网络视图,供用户选择登录TikTok的方式,并将其TikToks帐户连接到我的应用程序,但在授权后,用户将返回到此活动,而不会调用onResp。onErrorIntent((在启动web视图时被调用,但intent没有数据,因此没有对调试有用的信息。
此外,尽管文档像这样初始化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'
在我的清单上。我做错了什么?
您应该添加android:exported="真";在清单文件中。
<activity
android:name=".ATikTokAuth"
android:exported="true">
</activity>
我移动了tikTokOpenConfig 的初始化
val tiktokOpenConfig = TikTokOpenConfig(clientKey)
TikTokOpenApiFactory.init(tiktokOpenConfig)
转换为自定义应用程序类。
首先,如果你试图在印度使用tikTok登录工具包,首先你必须使用VPN。第二,如果你想要回调-你应该把tikTokOpenApi.handleIntent(intent, this)
添加到onNewIntent((方法中,我用这个解决了我的问题。
步骤:
-
使用VPN
-
在覆盖
onNewIntent()
方法中添加tikTokOpenApi.handleIntent(intent, this)
登录成功!