Твиттер Twitter для Android
Я пытаюсь использовать новый API-интерфейс Fabric, который Twitter предлагает пользователям входить в мое приложение. Я точно следил за учебником (по крайней мере, я думаю, что, возможно, я допустил некоторые ошибки) здесь после настройки моего проекта со всеми необходимыми шагами; теперь, когда я нажимаю кнопку входа в систему и аутентифицирую кнопку, возвращает успешный ответ, но когда я иду, чтобы получить сеанс Twitter после этого, я получаю исключение, которое выглядит как
Caused by: java.lang.IllegalStateException: Must start Twitter Kit with Fabric.with() first
(опять же, я следовал за учебником до T до этого момента, но если вы можете что-нибудь придумать, я бы попробовал его)
Ответы
Ответ 1
Fabric SDK разделяет функциональность на модули под названием Kits. Вы должны указать, какие комплекты вы хотите использовать через Fabric.with(). Обычно это делается путем расширения класса приложений Androids.
package com.example.app;
import android.app.Application;
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
TwitterAuthConfig authConfig =
new TwitterAuthConfig("consumerKey",
"consumerSecret");
Fabric.with(this, new Twitter(authConfig));
// Example: multiple kits
// Fabric.with(this, new Twitter(authConfig),
// new Crashlytics());
}
}
Дополнительная информация: https://dev.twitter.com/twitter-kit/android/integrate
См. приложение для канонического образца по адресу: https://github.com/twitterdev/cannonball-android
Ответ 2
Ошибка моего случая: Должно начинаться с Fabric.with() перед вызовом набора твиттов
Решение:
До этого я использовал:
Fabric.with(это новый Crashlytics()); а также Fabric.with(это новый Twitter (authConfig));
Наконец, не работает.
Перед интеграцией Twitter мой код
- Fabric.with(это новый Crashlytics());
После интеграции Twitter я заменяю
- Fabric.with(это новый Twitter (authConfig), новый Crashlytics());
Теперь, работая как шарм,
Ответ 3
Вот как я реализовал вход в Twitter с тэгом:
-
Объявление твиттер-ключа и секрет:
private static final String TWITTER_KEY = "r5nPFPbcDrzoJM9bIBCqyfHPK";
private static final String TWITTER_SECRET = "oJ8y2KPIySPpoBX3eCcqgcnmPGXLI94BR4g9ZztnApSmXQG9Ij ";
//Twitter Login Button
TwitterLoginButton twitterLoginButton;
-
метод onCreate():
//Initializing TwitterAuthConfig, these two line will also added automatically while configuration we did
TwitterAuthConfig authConfig = new TwitterAuthConfig(TWITTER_KEY, TWITTER_SECRET);
Fabric.with(this, new Twitter(authConfig));
setContentView(R.layout.activity_main);
//Initializing twitter login button
twitterLoginButton = (TwitterLoginButton) findViewById(R.id.twitterLogin);
//Adding callback to the button
twitterLoginButton.setCallback(new Callback<TwitterSession>() {
@Override
public void success(Result<TwitterSession> result) {
//If login succeeds passing the Calling the login method and passing Result object
login(result);
}
@Override
public void failure(TwitterException exception) {
//If failure occurs while login handle it here
Log.d("TwitterKit", "Login with Twitter failure", exception);
}
});
3.override onActivityResult():
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
//Adding the login result back to the button
twitterLoginButton.onActivityResult(requestCode, resultCode, data);
}
4. Наконец, login():
public void login(Result<TwitterSession> result) {
//Creating a twitter session with result data
TwitterSession session = result.data;
//Getting the username from session
final String username = session.getUserName();
//This code will fetch the profile image URL
//Getting the account service of the user logged in
Twitter.getApiClient(session).getAccountService()
.verifyCredentials(true, false, new Callback<User>() {
@Override
public void failure(TwitterException e) {
//If any error occurs handle it here
}
@Override
public void success(Result<User> userResult) {
//If it succeeds creating a User object from userResult.data
User user = userResult.data;
//Getting the profile image url
String profileImage = user.profileImageUrl.replace("_normal", "");
Log.d("done","name-->"+username + "url-->"+profileImage);
// Toast.makeText(this,"name-->"+username + "url-->"+profileImage,Toast.LENGTH_LONG).show();
}
});
}
У вас есть имя пользователя и profilepicture url в login()
для использования, где хотите.
Ответ 4
Последняя интеграция Twitter с Android Studio
В приведенной ниже ссылке приведен пример кода, в котором вы можете использовать этот код для интеграции twitter latest sdk (Fabric). он обеспечивает все функции, которые мы можем легко интегрировать меньше времени
Twitter Пример кода
Код ссылки Plz проверить его