前言:
最近更好在接vk授权登录 所以就写了一个文章来分享一下那么废话不多说我们正式开始。
需要的依赖
implementation("com.vk.id:vkid:2.2.1")
然后再
manifestPlaceholders = [
"VKIDClientID": "123456", // 应用的 ID (app_id)
"VKIDClientSecret": "xxxxxxxxxx", // 安全密钥 (client_secret)
"VKIDRedirectHost": "vk.com", // 通常使用 vk.com
"VKIDRedirectScheme": "vk123456" // 通常使用 vk{应用ID}
]
注意这里的的 VKIDRedirectScheme 是 VKIDClientID 前面拼接vk来的 例如vk123456
在最外层添加kotlin的插件支持
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:2.0.0"
接入代码
-
初始化我们需要在appliction 的init方法里面调用这个
fun init(context: Context) {
CoroutineScope(Dispatchers.Main).launch {
VKID.init(context) // 调用 VKID 的 init 方法webstorm
}
}
-
登录授权方法
fun login(activity: Activity,logintype:Int) {
this.logintype=logintype;
CoroutineScope(Dispatchers.Main).launch {
VKID.instance.authorize(vkAuthCallback)
}
}
-
登录回调
private val vkAuthCallback=object : VKIDAuthCallback {
override fun onAuth(accessToken: AccessToken) {
Log.e(TAG,"onCreate:idToken "+accessToken.idToken )
Log.e(TAG,"onCreate:token "+accessToken.token )
Log.e(TAG,"onCreate:expireTime "+accessToken.expireTime )
Log.e(TAG,"onCreate: email "+accessToken.userData.email)
Log.e(TAG,"onCreate:userData "+accessToken.userData )
Log.e(TAG,"onCreate:userID "+accessToken.userID )
if(logintype==1){
}else {
Log.e(TAG, "onAuth: vk绑定 " )
}
}
override fun onFail(fail: VKIDAuthFail) {
when (fail) {
is VKIDAuthFail.Canceled -> { /*...*/ }
else -> {
}
}
}
override fun onAuthCode(data: AuthCodeData, isCompletion: Boolean) {
super.onAuthCode(data, isCompletion)
}
}
配置签名
最后总结
vk登录主要是没有Java版本的所以只有kotlin 所以我们需要 桥接一层。上面有具体代码,同学们可以自行去查阅出处理。