作为Android登录 之 GooglePlay登录的姊妹篇,这俩篇主要是对接国外平台登录的文章。作者文笔并不好,但是,管他呢,实现功能不就得了嘛。
兄弟们自带梯子啊
然后按照流程,创建申请什么的,也就不多说了。
接下来就是咱对程序动手的时候了
老规矩,咱一步步来
首先
在我们的根目录中的build.gradle文件添加jcenter()
repositories { jcenter() }
根目录的build.gradle文件有jcenter()之后,在我们项目目录下的build.gradle文件中添加
dependencies { implementation 'com.twitter.sdk.android:twitter-core:3.1.1' }
同步之后就可以使用里面的文件,进行代码书写了。
与google登录不同,Twitter需要在Application中进行初始化。也就是说我们需要写一个自己的application。
class MyApplication : Application() { override fun onCreate() { super.onCreate() val config = TwitterConfig.Builder(this) .logger(DefaultLogger(Log.DEBUG)) .twitterAuthConfig(TwitterAuthConfig("你的consumerKey", "你的consumerSecret")) .debug(true) .build() Twitter.initialize(config) }
Application 完成之后,在AndroidManifest.xml修改一下application的指向
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" package="你的包名"> <application android:name=".app.MyApplication" ...... ...... > </application> </manifest>
这些完成之后,在我们的登录页面中,添加Twitter的登录按钮(必须)
<com.twitter.sdk.android.core.identity.TwitterLoginButton android:id="@+id/rf_twitter_login" android:layout_width="50dp" android:layout_height="50" />
点击按钮之后,SDK内部会自行发起授权的流程,我们只需要在onActivityResult之中吧返回的东西发给SDK即可
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) twitter_login.onActivityResult(requestCode, resultCode, data) }
给SDK提供的按钮绑定回调
<com.twitter.sdk.android.core.identity.TwitterLoginButton android:id="@+id/twitter_login" android:layout_width="1px" android:layout_height="1px" android:layout_gravity="center" /> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:src="@mipmap/twitter" />
rf_twitter_login.setOnClickListener { twitter_login.performClick() }
这样就可以了
ps:如果登录请求回调失败,提示
"detailMessage":"Failed to get request token"