Android登录 之 Twitter登录

作者: android01 发布时间: 2022-10-22 浏览: 2874 次 编辑

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



这种情况下注意检测一下应用控制台中的配置


配置完成之后再试试,如果各位遇到问题的话,私信我,看到就会回复的

demo下载地址

Twitter官网Github