android中接入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节点内添加如下代码:
<meta-data android:name="io.fabric.ApiKey" android:value="第一步中得到的app_id"/>
四、添加登录按钮
现在我们就可以在activity的布局文件中添加登录按钮了,代码如下:
<com.twitter.sdk.android.core.identity.TwitterLoginButton
android:id="@+id/twitter_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_gravity="center"
android:clickable="true" />
五、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<TwitterSession>() {
@Override
public void success(Result<TwitterSession> result) {
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);
}
}
以上就是完整的步骤了,希望对大家有帮助。
android中接入twitter进行第三方登录的更多相关文章
- android使用友盟实现第三方登录、分享以及微信回调无反应问题解决办法
这里介绍微信和新浪登录.微信登录和新浪登录都需要申请第三方账号.可以参考官方文档http://dev.umeng.com/social/android/operation#2还是很清晰的. 新浪微博开 ...
- Android 中实现分享和第三方登陆---以新浪微博为例
第三方登陆和分享功能在目前大部分APP中都有,分享功能可以将自己觉得有意义的东西分享给身边的朋友,而第三方登陆可以借助已经有巨大用户基础的平台(如QQ和新浪微博)的账号,让用户在使用自己APP的时候不 ...
- 如何在Android中的Activity启动第三方应用程序?
如何在点击某个按键后,执行启动第三方应用程序界面? /** * <功能描述> 启动应用程序 * * @return void [返回类型说明] */ private void startU ...
- twitter集成第三方登录是窗口一直出现闪退的解决方法
需要创建自己的token,如下图
- Android 中模仿 Twitter 实现 Toolbar Indicator
项目地址:https://github.com/nekocode/ToolbarIndicator
- Android中用友盟实现QQ的第三方登录
//首先应该去友盟的官网注册你的账号,创建一个应用,获得它的APPkey,也可以用它的API上的appkey,下载SDK,下面根据API文档一步步实现就行了. //下面是友盟的APi文档 1. 产品 ...
- Android记录16-友盟第三方登录、分享实现
Android开发记录16-友盟第三方登录.分享实现 2014年博客之星,投票地址username=wwj_748#content" style="font-family: Kai ...
- 分享前端Facebook及Twitter第三方登录
最近公司要求做海外的第三方登录:目前只做了Facebook和Twitter;国内百度到的信息太少VPN FQ百度+Google了很久终于弄好了.但是做第三方登录基本上都有个特点就是引入必须的js,设置 ...
- Android 实现QQ第三方登录
Android 实现QQ第三方登录 在项目中需要实现QQ第三方登录,经过一番努力算是写出来了,现在总结以下,以防以后遗忘,能帮到其他童鞋就更好了. 首先肯定是去下载SDK和DEMO http://wi ...
随机推荐
- 【洛谷5294】[HNOI2019] 序列(主席树维护单调栈+二分)
点此看题面 大致题意: 给你一个长度为\(n\)的序列\(A\),每次询问修改一个元素(只对当前询问有效),然后让你找到一个不下降序列\(B\),使得这两个序列相应位置之差的平方和最小,并输出这个最小 ...
- 代码混淆和dump
首先是安装和使用dump: 下载dump地址 1.选择class-dump-3.5.dmg 下载: 2.下载之后,点击打开,复制class-dump文件, 3.shift+command+G 打开fi ...
- Zookeep启动异常:Error contacting service. It is probably not running.
异常提示: [root@hadoop bin]# ./zkServer.sh status JMX enabled by default Using config: /usr/local/zk/bin ...
- svg了解一下
工作需求,要用svg动态生成思维导图.我的天,这是我的短板. 但是没办法,需求在这,硬着头皮上吧. 本来想偷懒,看看网上有没有现成的可以copy的,逛了一圈发现没有. 这个过程种发现了D3.Three ...
- java实现简单计算器功能
童鞋们,是不是有使用计算器的时候,还要进入运行,输入calc,太麻烦了,有时候甚至还忘记单词怎么拼写,呵呵程序员自己写代码实现,又简单,又方便啊 以下为代码(想要生成可执行工具可参考:http://w ...
- VS中R转义字符处理
std::string s1 = R"(Name="Hello World ... ")"; std::string s2 = R"-(Name=&q ...
- Mysql8.0 3306端口无法远程连接
在阿里云上搭建MySql8.0数据库服务,在阿里云上可以成功连接登陆使用,但用自己的电脑远程连接时却无法成功连接 经过资料查找,找出原因如下: 1.首先通过查看MySQL的的用户信息 可以看到host ...
- Oracle VM VirtualBox 安装XP、Win 7
测试要求 为了少写点lr脚本(其实是不会写),看到fiddler的saz格式文件可以由loadrunner 12读取,本机安装了lr 11,打算虚拟机安装lr 12.通过共享文件夹把文件传过去,生成脚 ...
- 构建高可靠hadoop集群之2-机栈
本文主要参考 http://hadoop.apache.org/docs/r2.8.0/hadoop-project-dist/hadoop-common/RackAwareness.html had ...
- 快速解决Kali 更新失败问题
Kali Linux 2018.4 初学者在安装完kali 系统后第一件事往往就是更新软件,但在更新过程中通常会出现各种各样的问题,比如更新提示不含有 'maincontrib' 组件,跳过配置文件 ...