热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

androidtwitter第三方登录,android中接入twitter进行第三方登录

在应用中接入Twitter进行第三方登录时,开发人员遇到了一点问题,主要是概念有点混乱,这里把经验记录一下,帮助遇到同样问题

在应用中接入Twitter进行第三方登录时,开发人员遇到了一点问题,主要是概念有点混乱,这里把经验记录一下,帮助遇到同样问题的朋友。

一、注册应用并配置登录权限

这一步比较简单,就不多说了,直接去官网添加应用,给读写权限就行了。

网址:https://dev.twitter.com/apps

这一步完成后,最重要的是得到两个数据,一个是app_key,一个是app_secret。这两个字符串在后面会用到。

二、添加依赖的包(引用sdk)

这一步要注意的是,twitter的sdk是放在自己的maven库中,而现在AndroidStudio默认用的是jCenter,所以这里我们要在build.gradle中添加maven库,然后引入twitter sdk。

首先在整个项目的build.gradle中的 repositories 里添加maven如下:

repositories {

mavenCentral()

maven { url 'https://maven.fabric.io/public' }

jcenter()

}

然后在模块的build.gradle中添加maven库并引入sdk:

repositories {

mavenCentral()

maven { url 'https://maven.fabric.io/public' }

}

dependencies {

compile fileTree(dir: 'libs', include: ['*.jar'])

testCompile 'junit:junit:4.12'

...

compile('com.twitter.sdk.android:twitter-core:1.3.1@aar') {

transitive = true;

}

}

这里大家可以看到出现了Fabric,这个是什么东西呢,其实是Twitter开发的开发者工具包。

三、在Mainfest中配置Fabric ApiKey

在AndroidManifest.xml中的application节点内添加如下代码:

四、添加登录按钮

现在我们就可以在activity的布局文件中添加登录按钮了,代码如下:

五、sdk初始化

在我们注册登录按钮事件之前,还有一件事很重要,就是初始化sdk。这里有个需要注意的地方就是sdk的初始化一定要在setContentView之前。

初始化代码如下:

import io.fabric.sdk.android.Fabric;

import com.twitter.sdk.android.core.TwitterCore;

import com.twitter.sdk.android.core.TwitterAuthConfig;

public class LoginActivity extends AppCompatActivity {

private static final String TWITTER_KEY = "app_id";

private static final String TWITTER_SECRET = "app_secret";

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

TwitterAuthConfig authConfig =

new TwitterAuthConfig(TWITTER_KEY, TWITTER_SECRET);

Fabric.with(this, new TwitterCore(authConfig));

setContentView(R.layout.activity_login);

}

}

六、注册登录事件并添加回调

上面都完成后,就可以注册登录按钮事件并添加结果的回调了,然后获取token等信息。

整个登录activity代码如下:

import io.fabric.sdk.android.Fabric;

import com.twitter.sdk.android.core.Callback;

import com.twitter.sdk.android.core.Result;

import com.twitter.sdk.android.core.TwitterAuthToken;

import com.twitter.sdk.android.core.TwitterCore;

import com.twitter.sdk.android.core.TwitterAuthConfig;

import com.twitter.sdk.android.core.TwitterException;

import com.twitter.sdk.android.core.TwitterSession;

import com.twitter.sdk.android.core.identity.TwitterLoginButton;

public class LoginActivity extends AppCompatActivity {

private static final String TWITTER_KEY = "app_id";

private static final String TWITTER_SECRET = "app_secret";

TwitterLoginButton loginButton;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

TwitterAuthConfig authConfig =

new TwitterAuthConfig(TWITTER_KEY, TWITTER_SECRET);

Fabric.with(this, new TwitterCore(authConfig));

setContentView(R.layout.activity_login);

loginButton = (TwitterLoginButton) findViewById(R.id.twitter_button);

loginButton.setCallback(new Callback() {

@Override

public void success(Resultresult) {

TwitterAuthToken authToken = result.data.getAuthToken();

String token = authToken.token;

String secret = authToken.secret;

Log.i("token", token);

Log.i("secret", 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);

loginButton.onActivityResult(requestCode, resultCode, data);

}

}

以上就是完整的步骤了,希望对大家有帮助。



推荐阅读
  • 本文详细介绍了Java中org.eclipse.ui.forms.widgets.ExpandableComposite类的addExpansionListener()方法,并提供了多个实际代码示例,帮助开发者更好地理解和使用该方法。这些示例来源于多个知名开源项目,具有很高的参考价值。 ... [详细]
  • Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 金山与万普广告争议:APP开发者权益受侵害
    探讨了金山毒霸对嵌入特定广告SDK的APP进行封禁的行为,分析其对安卓开发者的影响,并揭示了这一系列事件背后的复杂性。 ... [详细]
  • 在创建新的Android项目时,您可能会遇到aapt错误,提示无法打开libstdc++.so.6共享对象文件。本文将探讨该问题的原因及解决方案。 ... [详细]
  • 为了解决不同服务器间共享图片的需求,我们最初考虑建立一个FTP图片服务器。然而,考虑到项目是一个简单的CMS系统,为了简化流程,团队决定探索七牛云存储的解决方案。本文将详细介绍使用七牛云存储的过程和心得。 ... [详细]
  • 主调|大侠_重温C++ ... [详细]
  • 本文详细介绍如何使用 Python 集成微信支付的三种主要方式:Native 支付、APP 支付和 JSAPI 支付。每种方式适用于不同的应用场景,如 PC 网站、移动端应用和公众号内支付等。 ... [详细]
  • NVIDIA Titan RTX深度评测
    NVIDIA的Titan RTX被誉为当前最强大的桌面显卡之一,其卓越的性能和高昂的价格吸引了众多专业人士和技术爱好者的关注。本文将详细介绍Titan RTX的技术规格、性能表现及应用场景。 ... [详细]
  • 本题探讨了一种字符串变换方法,旨在判断两个给定的字符串是否可以通过特定的字母替换和位置交换操作相互转换。核心在于找到这些变换中的不变量,从而确定转换的可能性。 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • 本文详细介绍了如何在BackTrack 5中配置和启动SSH服务,确保其正常运行,并通过Windows系统成功连接。涵盖了必要的密钥生成步骤及常见问题解决方法。 ... [详细]
  • 本文介绍了如何使用JQuery实现省市二级联动和表单验证。首先,通过change事件监听用户选择的省份,并动态加载对应的城市列表。其次,详细讲解了使用Validation插件进行表单验证的方法,包括内置规则、自定义规则及实时验证功能。 ... [详细]
  • 本文深入探讨 MyBatis 中动态 SQL 的使用方法,包括 if/where、trim 自定义字符串截取规则、choose 分支选择、封装查询和修改条件的 where/set 标签、批量处理的 foreach 标签以及内置参数和 bind 的用法。 ... [详细]
  • 本文探讨了如何在发布 XenApp 应用时,通过命令行参数实现启动时的参数传递。特别介绍了静态和动态参数传递的方法,并详细解释了 ICA 文件中两种参数传递方式的区别及安全检查机制。 ... [详细]
author-avatar
渭南电信贺平
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有