Podczas korzystania z biblioteki twitter4j nie znaleziono wyzwań związanych z uwierzytelnianiem

Obecnie pracuję nad integracją Twittera w mojej aplikacji na Androida. Z powodzeniem zintegrowałem go w pewnym stopniu. Jednak dostajęNo authentication challenges found wyjątek w następującym scenariuszu.

używamApp-only authentication (bez logowania do Twittera), aby pobrać publiczne kanały z Twittera. Przynoszę je z powodzeniem.Kiedy próbuję odpowiedzieć lub przesłać wiadomość dalej lub oznaczyć ją jako ulubioną, sprawdzam, czy użytkownik jest już zalogowany, czy nie, jeśli nie jest zalogowany, staram się najpierw zalogować, a następnie wykonać odpowiedź lub przesłać dalej.Ale dostaję wyżej wspomniany wyjątek podczas próby logowania się, więc nie docieram do odpowiedzi ani nie przesyłam dalej.

Uwaga: Jeśli nie użyjęApp-only authentication i wybierz logowanie bezpośrednio (bez pobierania publicznego kanału), wtedy działa dobrze i mogę się zalogować.

Oto ślad stosu:

11-14 19:33:03.597: W/System.err(3305): No authentication challenges found
11-14 19:33:03.667: W/System.err(3305): Relevant discussions can be found on the Internet at:
11-14 19:33:03.667: W/System.err(3305):     http://www.google.co.jp/search?q=9ddbeb3a or
11-14 19:33:03.727: W/System.err(3305):     http://www.google.co.jp/search?q=937eec8d
11-14 19:33:03.747: W/System.err(3305): TwitterException{exceptionCode=[9ddbeb3a-937eec8d c8a7b39b-dc5ea0d9], statusCode=-1, message=null, code=-1, retryAfter=-1, rateLimitStatus=null, version=3.0.4}
11-14 19:33:03.797: W/System.err(3305):     at twitter4j.internal.http.HttpClientImpl.request(HttpClientImpl.java:177)
11-14 19:33:03.857: W/System.err(3305):     at twitter4j.internal.http.HttpClientWrapper.request(HttpClientWrapper.java:61)
11-14 19:33:03.897: W/System.err(3305):     at twitter4j.internal.http.HttpClientWrapper.post(HttpClientWrapper.java:98)
11-14 19:33:03.957: W/System.err(3305):     at twitter4j.auth.OAuthAuthorization.getOAuthAccessToken(OAuthAuthorization.java:145)
11-14 19:33:04.097: W/System.err(3305):     at twitter4j.auth.OAuthAuthorization.getOAuthAccessToken(OAuthAuthorization.java:165)
11-14 19:33:04.107: W/System.err(3305):     at twitter4j.TwitterBaseImpl.getOAuthAccessToken(TwitterBaseImpl.java:381)

EDYTOWAĆ:

Poniżej znajduje się kod, którego używam do przełączania konfiguracji w zależności od tego, czy użytkownik jest zalogowany, czy nie.

private TwitterInstance(boolean withLoginConfig) {

        ConfigurationBuilder configurationBuilder = new ConfigurationBuilder();
        configurationBuilder
                .setOAuthConsumerKey(STAConstants.TWITTER_CONSUMER_KEY);
        configurationBuilder
                .setOAuthConsumerSecret(STAConstants.TWITTER_CONSUMER_SECRET);
        // configuration required to fetch feeds without login.
        if (!withLoginConfig) {
            configurationBuilder.setUseSSL(true);
            // IMPORTANT: set T4J to use App-only authentication
            configurationBuilder.setApplicationOnlyAuthEnabled(true);
            configurationBuilder.setOAuth2TokenType(getOAuth2Token()
                    .getTokenType());
            configurationBuilder.setOAuth2AccessToken(getOAuth2Token()
                    .getAccessToken());
        }
        Configuration configuration = configurationBuilder.build();
        twitterFactory = new TwitterFactory(configuration);
        twitter = twitterFactory.getInstance();
        requestToken = null;
    }

Szukałem rozwiązania również na SO i innych stronach, ale nie dostałem żadnego.

Każda pomoc jest bardzo ceniona.

questionAnswers(2)

yourAnswerToTheQuestion