作为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"
