Twitter曾经举行了自己四年以来的第一场开发者大会。而这场名为“Flight”的大会,也是以后它的年度惯例。

这次大会的主题也完全围绕开发者进行。大会的焦点是一个名叫Fabric的新SDK,里面包括三个开发者工具包:面向Twitter本身的 Twitter Kit、面向Twitter广告网络的MoPub,以及基于Twitter 2013年收购的移动应用崩溃分析工具Crashlytics的Crashlytics Kit

我还是先贴上twitter登录的官方网站:https://dev.twitter.com/twitterkit/android/log-in-with-twitter,不过都是英文,当然,我们还需要爬过一堵墙才能够上网。

首先我们要先去注册twitter开发者账号,并且创建应用,https://apps.twitter.com.

点击右上角创建应用:

然后会进入下图:

我们需要填入应用的名称,还有应用的描述,至于website,下面解释的意思大概是:
您的应用程序的可公开访问的主页,用户可以下载,使用或查找有关您的应用程序的更多信息。该完全限定的URL用于源应用程序创建的tweets,并将显示在面向用户的授权屏幕中。
(如果你还没有URL,只需在这里放置一个占位符,但记住稍后再改变它。)

应用创建完成之后,我们可以进入应用查看相关的设置,点击Keys and Access Tokens,可以看到Consumer Key (API Key)和Consumer Secret (API Secret),这两个需要用到

好了,创建应用就到这里,接下来讲讲如何集成到我们的项目:

(一)首先我们要集成twitter相关的sdk,官网上写得比较多,如果仅仅需要登录功能,那么就只需要

在build.gradle(app)里面写上

dependencies {
compile 'com.twitter.sdk.android:twitter-core:3.1.1'
}

在build.gradle(project)的 repositories里写上

repositories {
jcenter()
}

(二)在我们的资源文件里面添加API KEY,这个API KEY在twitter的应用管理可以看到,就是我们上面说的那两个

<resources>
<string android:name="com.twitter.sdk.android.CONSUMER_KEY">XXXXXXXXXXX</string>
<string android:name="com.twitter.sdk.android.CONSUMER_SECRET">XXXXXXXXXXX</string>
</resources>

(三)建立一个自定义的Application,在onCreate()方法里面初始化

 Twitter.initialize(this);
TwitterConfig config = new TwitterConfig.Builder(this)
.logger(new DefaultLogger(Log.DEBUG))
.twitterAuthConfig(new TwitterAuthConfig("CONSUMER_KEY", "CONSUMER_SECRET"))
.debug(true)
.build();
Twitter.initialize(config);

(四)我们可以用twitter提供好的登录按钮,当然也可以自定义,接下来会讲。

<com.twitter.sdk.android.core.identity.TwitterLoginButton
android:id="@+id/login_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />

(五)在代码中:

loginButton = (TwitterLoginButton) findViewById(R.id.login_button);
loginButton.setCallback(new Callback<TwitterSession>() {
@Override
public void success(Result<TwitterSession> result) {
// Do something with result, which provides a TwitterSession for making API calls
     result里面包含了用户的信息,我们可以从中取出token,tokenSecret
(如果我们有自己的后台服务器,发送这两个到我们自己的后台,后台再去验证)
     TwitterAuthToken authToken = result.data.getAuthToken();

     String token = authToken.token;
     String appId = getResources().getString(R.string.twitter_app_id);
String tokenSecret = authToken.secret;
  }

 @Override public void failure(TwitterException exception) { // Do something on failure  } });

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data); // Pass the activity result to the login button.
loginButton.onActivityResult(requestCode, resultCode, data);
}
 

 如果登录按钮是在fragment中的话,那么onActivityResult应该用如下代码:

应该

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data); // Pass the activity result to the fragment, which will then pass the result to the login
// button.
Fragment fragment = getFragmentManager().findFragmentById(R.id.your_fragment_id);
if (fragment != null) {
fragment.onActivityResult(requestCode, resultCode, data);
}
}

其余的可以参考官网

接下来讲的一个是自定义登录按钮,其实有一个妙计,请看下面界面代码:

<FrameLayout
android:id="@+id/frameLayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/facebook"
android:layout_marginTop="@dimen/login_button_margin_bottom"
android:layout_centerHorizontal="true"> <com.twitter.sdk.android.core.identity.TwitterLoginButton
android:id="@+id/login_button"
android:layout_width="@dimen/button_width"
android:layout_height="@dimen/button_height"
android:layout_marginTop="@dimen/button_margin_bottom"
android:visibility="gone"/> <ImageView
android:id="@+id/login_image"
android:layout_width="@dimen/button_width"
android:layout_height="@dimen/button_height"
android:src="@drawable/twitter" />
</FrameLayout>

然后代码中:

@Override
public void onClick(View view) {
switch (view.getId()){case R.id.login_image:
LoginButton.performClick();
break;
default:
break;
}
}

即,点击我们自定义的按钮的时候,让twitter登录按钮执行点击操作。

先到这里,以后慢慢补充。

转载请标明出处:http://www.cnblogs.com/tangZH/p/8206569.html

android集成twitter登录的更多相关文章

  1. Android Facebook和Twitter登录和分享完整版

    最近公司的软件需要改国际版,需要Facebook和Twitter的登录和分享. 本人先用Umeng的第三方社会化分享实现了该功能,但是后来一想问题来了,经过查证.Umeng只在中国和美国有服务器,那也 ...

  2. android应用集成facebook登录

      之前都是做国内的应用开发,没有用过国外的三方登录,比如谷歌登录.facebok登录,最近参与了一个海外的支付相关的项目,调研了一下谷歌登录和facebook登录,其实调研之后觉得也是很简单的,尤其 ...

  3. android应用集成google登录

        集成google登录之前需要有一下三点要求,只有具备一下两点要求才能集成google登录:         1,android 运行版本4.0及更新版本         2,android 设 ...

  4. android 集成QQ互联 (登录,分享)

    参考:http://blog.csdn.net/syz8742874/article/details/39271117 http://blog.csdn.net/woblog/article/deta ...

  5. Android UmengShareSDK第三方登录

    Android UmengShareSDK 第三方登录- 今天就不废话了,集成平台第三方登录.市面上集成平台有shareSDK 和 Ument两种,shareSDK的ipa和服务好些,如果自己研究会很 ...

  6. 个推用户画像产品(个像)Android集成实践

    我们团队之前一直是个推推送的忠实用户,近期个推新推出了产品“个像·用户画像”,刚好非常契合我们的业务需求,于是我们也试用了一下.总的来说效果还不错,这篇文章就为大家介绍一下如何从零开始快速集成个像An ...

  7. Android ShareSDKQQ 第三方登录so easy?

    昨天群里有个群友看到我之前做的那个qq第三方登录怎么做的,于是乎思考了一下,还是决定写一篇博客记录下.事实上都不难的,事实上之前我又写到FaceBook的第三方登录不知道看下这Android集成Fac ...

  8. [置顶] Android ShareSDKQQ 第三方登录so easy?

    昨天群里有个群友看到我之前做的那个qq第三方登录怎么做的,于是乎思考了一下,还是决定写一篇博客记录下,其实都不难的,其实之前我又写到FaceBook的第三方登录不知道看下这Android集成FaceB ...

  9. Android 微信第三方登录(个人笔记)

    今天在写微信登录,花了半天时间搞定.然后写下自己的笔记,希望帮助更多的人...欢迎各位指教. 微信授权登录,官方说的不是很清楚.所以导致有一部分的坑. 微信注册应用平台的应用签名,下载 微信签名生成工 ...

随机推荐

  1. FFmpeg 结构体学习(六): AVCodecContext 分析

    在上文FFmpeg 结构体学习(五): AVCodec 分析我们学习了AVCodec结构体的相关内容.本文,我们将讲述一下AVCodecContext. AVCodecContext是包含变量较多的结 ...

  2. linux 完全关闭tomcat

    由于直接调用tomcat的 shutdown.sh 有时无法完全关闭掉tomcat,使用 ps -ef | grep tomcat 查找发现tomcat依然还存在,并未完全关掉.在 catalina. ...

  3. [Swift]LeetCode556. 下一个更大元素 III | Next Greater Element III

    Given a positive 32-bit integer n, you need to find the smallest 32-bit integer which has exactly th ...

  4. 【git】idea /git bash命令 操作分支

    1.需求 因为目前要对项目做一些改动,而项目又即将上线,这些新的改动又不需要一起上线,所以这个时候需要在原有的master分支上重新拉出一个分支进行开发. 2.分支操作 打开git bash工具→切换 ...

  5. java线程阻塞唤醒的四种方式

    java在多线程情况下,经常会使用到线程的阻塞与唤醒,这里就为大家简单介绍一下以下几种阻塞/唤醒方式与区别,不做详细的介绍与代码分析 suspend与resume Java废弃 suspend() 去 ...

  6. ElasticSearch(1)---Mysql同步数据到ElSearch

    ElasticSearch同步Mysql 先讲项目需求:对于资讯模块添加搜索功能 这个搜索功能我就是采用ElasticSearch实现的,功能刚实现完,所以写这篇博客做个记录,让自己在记录下整个步骤和 ...

  7. Centos7 防火墙 firewalld 实用操作

    一.前言 Centos7以上的发行版都试自带了firewalld防火墙的,firewalld去带了iptables防火墙.其原因是iptables的防火墙策略是交由内核层面的netfilter网络过滤 ...

  8. Metal并行计算以及Metal程序的命令行编译

    本来Cuda用的挺好,为了Apple,放弃Cuda,改投OpenCl.好不容易OpenCl也算熟悉了,WWDC2018又宣布了Metal2,建议大家放弃OpenCl,使用Metal Performan ...

  9. 《HelloGitHub月刊》第 04 期(秋招临近,本期加入了面试相关的项目)

    兴趣是最好的老师,而<HelloGitHub> 就是帮你找到兴趣! 因为我比较熟悉python语言,所以月刊中python语言的项目居多,个人能力有限,其他语言涉及甚少,欢迎各路人士加入, ...

  10. 使用mpvue开发小程序教程(二)

    在上篇文章中,我们介绍了使用mpvue开发小程序所需要的一些开发环境的搭建,并创建了第一个mpvue小程序代码骨架并将其运行起来.在本文中,我们来研究熟悉一下mpvue项目的主要目录和文件结构. 在V ...