首页 > 编程知识 正文

twitter能用谷歌账号直接登录,twitter第三方客户端ios

时间:2023-05-03 08:22:10 阅读:279416 作者:1131

在应用中接入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; 飞艇7码滚雪球技巧ity.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); }}

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

转载于:https://my.oschina.net/artwl/blog/694334

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。