Подтвердить что ты не робот

Твиттер Twitter для Android

Я пытаюсь использовать новый API-интерфейс Fabric, который Twitter предлагает пользователям входить в мое приложение. Я точно следил за учебником (по крайней мере, я думаю, что, возможно, я допустил некоторые ошибки) здесь после настройки моего проекта со всеми необходимыми шагами; теперь, когда я нажимаю кнопку входа в систему и аутентифицирую кнопку, возвращает успешный ответ, но когда я иду, чтобы получить сеанс Twitter после этого, я получаю исключение, которое выглядит как

Caused by: java.lang.IllegalStateException: Must start Twitter Kit with Fabric.with() first    

(опять же, я следовал за учебником до T до этого момента, но если вы можете что-нибудь придумать, я бы попробовал его)

4b9b3361

Ответ 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 проверить его