android集成twitter登录
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登录的更多相关文章
- Android Facebook和Twitter登录和分享完整版
最近公司的软件需要改国际版,需要Facebook和Twitter的登录和分享. 本人先用Umeng的第三方社会化分享实现了该功能,但是后来一想问题来了,经过查证.Umeng只在中国和美国有服务器,那也 ...
- android应用集成facebook登录
之前都是做国内的应用开发,没有用过国外的三方登录,比如谷歌登录.facebok登录,最近参与了一个海外的支付相关的项目,调研了一下谷歌登录和facebook登录,其实调研之后觉得也是很简单的,尤其 ...
- android应用集成google登录
集成google登录之前需要有一下三点要求,只有具备一下两点要求才能集成google登录: 1,android 运行版本4.0及更新版本 2,android 设 ...
- android 集成QQ互联 (登录,分享)
参考:http://blog.csdn.net/syz8742874/article/details/39271117 http://blog.csdn.net/woblog/article/deta ...
- Android UmengShareSDK第三方登录
Android UmengShareSDK 第三方登录- 今天就不废话了,集成平台第三方登录.市面上集成平台有shareSDK 和 Ument两种,shareSDK的ipa和服务好些,如果自己研究会很 ...
- 个推用户画像产品(个像)Android集成实践
我们团队之前一直是个推推送的忠实用户,近期个推新推出了产品“个像·用户画像”,刚好非常契合我们的业务需求,于是我们也试用了一下.总的来说效果还不错,这篇文章就为大家介绍一下如何从零开始快速集成个像An ...
- Android ShareSDKQQ 第三方登录so easy?
昨天群里有个群友看到我之前做的那个qq第三方登录怎么做的,于是乎思考了一下,还是决定写一篇博客记录下.事实上都不难的,事实上之前我又写到FaceBook的第三方登录不知道看下这Android集成Fac ...
- [置顶]
Android ShareSDKQQ 第三方登录so easy?
昨天群里有个群友看到我之前做的那个qq第三方登录怎么做的,于是乎思考了一下,还是决定写一篇博客记录下,其实都不难的,其实之前我又写到FaceBook的第三方登录不知道看下这Android集成FaceB ...
- Android 微信第三方登录(个人笔记)
今天在写微信登录,花了半天时间搞定.然后写下自己的笔记,希望帮助更多的人...欢迎各位指教. 微信授权登录,官方说的不是很清楚.所以导致有一部分的坑. 微信注册应用平台的应用签名,下载 微信签名生成工 ...
随机推荐
- Eclipse极致性能调优
直接复制以下到eclipse.ini里面 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 -Xverify:n ...
- [Swift]LeetCode179. 最大数 | Largest Number
Given a list of non negative integers, arrange them such that they form the largest number. Example ...
- [Swift]LeetCode247.对称数 II $ Strobogrammatic Number II
A strobogrammatic number is a number that looks the same when rotated 180 degrees (looked at upside ...
- [Swift]LeetCode528. 按权重随机选择 | Random Pick with Weight
Given an array w of positive integers, where w[i] describes the weight of index i, write a function ...
- [Swift]LeetCode865. 具有所有最深结点的最小子树 | Smallest Subtree with all the Deepest Nodes
Given a binary tree rooted at root, the depth of each node is the shortest distance to the root. A n ...
- [Swift]LeetCode1025. 除数博弈 | Divisor Game
Alice and Bob take turns playing a game, with Alice starting first. Initially, there is a number N o ...
- awk小例子_2_数值统计脚本
通信公司工作,经常处理各种协议接口,在统计协议接口字段内容时,需要统计字段填写的内容是否正确,和占比是多少.要是单次统计,估计会把人累死,写个脚本统计,轻松便捷. 举例:接口内容 这是一条话单,这样的 ...
- Android开发:Android虚拟机启动错误Can't find 'Linux version ' string in kernel image file
Android启动出错,虚拟机报错信息如下: Starting emulator for AVD 'test' emulator: ERROR: Can't find 'Linux version ' ...
- Python - Python2与Python3的区别、转换与兼容
区别 Python2.x与Python3.x版本区别:http://www.runoob.com/python/python-2x-3x.html 示例解读Python2和Python3之间的主要差异 ...
- 专访 | 新浪架构师:0-5年Java工程师的职业规划如何做?
经历了2018年末的阵痛,大家都积攒着一股暗劲蠢蠢欲动. 3月初即将迎来2019年互联网行业换工作的大潮,技术工程师的升级换位对于一家互联网公司来说无疑是命脉般的存在——技术强则公司强! 如何做一个抢 ...