我通过添加文档的所有数据来添加Twitter的应用程序登录。但是当编译我的项目并在Twitter上按下登录时,请转到加载数据,然后从登录屏幕加载到活动:)
这是我通过Twitter登录的活动
@BindView(R.id.signInTwitterButton)
TwitterLoginButton signInTwitterButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FacebookSdk.sdkInitialize(getApplicationContext());
setContentView(R.layout.activity_login);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
ButterKnife.bind(this);
mAuth = FirebaseAuth.getInstance();
TwitterAuthConfig authConfig = new TwitterAuthConfig(getString(R.string.twitter_api), getString(R.string.twitter_consumer_secret));
TwitterConfig twitterConfig = new TwitterConfig.Builder(this)
.twitterAuthConfig(authConfig)
.build();
Twitter.initialize(twitterConfig);
signInTwitterButton.setCallback(new Callback<TwitterSession>() {
@Override
public void success(Result<TwitterSession> result) {
handleTwitterSession(result.data);
}
@Override
public void failure(TwitterException exception) {
Toast.makeText(LoginActivity.this, "Login Error " + exception.getMessage(), Toast.LENGTH_LONG).show();
}
});
}
private void handleTwitterSession(TwitterSession session) {
AuthCredential credential = TwitterAuthProvider.getCredential(
session.getAuthToken().token,
session.getAuthToken().secret);
mAuth.signInWithCredential(credential)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
goMainScreen();
} else {
Log.w(TAG, "signInWithCredential:failure", task.getException());
Toast.makeText(LoginActivity.this, "Authentication failed.",
Toast.LENGTH_SHORT).show();
}
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
signInTwitterButton.onActivityResult(requestCode, resultCode, data);
}
这是我的错误日志
09-21 18:20:50.538 10055-10055/magdalena.pl.dreamguide E/Twitter: Failed to get request token
com.twitter.sdk.android.core.TwitterApiException: HTTP request failed, Status: 400
at com.twitter.sdk.android.core.Callback.onResponse(Callback.java:42)
at retrofit2.ExecutorCallAdapterFactory$ExecutorCallbackCall$1$1.run(ExecutorCallAdapterFactory.java:68)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5451)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
09-21 18:20:50.568 10055-10055/magdalena.pl.dreamguide E/Twitter: Authorization completed with an error
com.twitter.sdk.android.core.TwitterAuthException: Failed to get request token
at com.twitter.sdk.android.core.identity.OAuthController$1.failure(OAuthController.java:94)
at com.twitter.sdk.android.core.internal.oauth.OAuth1aService$1.failure(OAuth1aService.java:191)
at com.twitter.sdk.android.core.Callback.onResponse(Callback.java:42)
at retrofit2.ExecutorCallAdapterFactory$ExecutorCallbackCall$1$1.run(ExecutorCallAdapterFactory.java:68)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5451)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)