twitter Verbindung fehlgeschlagen

? Bhavesh Jethani @ | Original: StackOverFlow
---

In Android, Twitter -Verbindung fehlgeschlagen . SSL ist erforderlich?

Mein Code funktionierte perfekt und es ist derzeit eine Live -Anwendung. Da jedoch 2014 es nicht gearbeitet, und ich habe gehört, dass Twitter hat https aufgetragen oder mit SSL -Konzept .

mir helfen, dieses Problem zu lösen .

Here is my log.

 03-14 15:00:02.838: D/TwitterApp(697): Error getting access token
03-14 15:00:02.878: W/System.err(697): 403:The request is understood, but it has been refused. An accompanying error message will explain why. This code is used when requests are being denied due to update limits (https://support.twitter.com/articles/15364-about-twitter-limits-update-api-dm-and-following).
03-14 15:00:02.878: W/System.err(697): message - SSL is required
03-14 15:00:02.878: W/System.err(697): code - 92
03-14 15:00:02.878: W/System.err(697): Relevant discussions can be found on the Internet at:
03-14 15:00:02.878: W/System.err(697):  http://www.google.co.jp/search?q=6f0f59ca or
03-14 15:00:02.888: W/System.err(697):  http://www.google.co.jp/search?q=20d0f73f
03-14 15:00:02.888: W/System.err(697): TwitterException{exceptionCode=[6f0f59ca-20d0f73f], statusCode=403, message=SSL is required, code=92, retryAfter=-1, rateLimitStatus=RateLimitStatusJSONImpl{remaining=14, limit=15, resetTimeInSeconds=1394790328, secondsUntilReset=-18874}, version=3.0.3}
03-14 15:00:02.888: W/System.err(697):  at twitter4j.internal.http.HttpClientImpl.request(HttpClientImpl.java:177)
03-14 15:00:02.888: W/System.err(697):  at twitter4j.internal.http.HttpClientWrapper.request(HttpClientWrapper.java:61)
03-14 15:00:02.888: W/System.err(697):  at twitter4j.internal.http.HttpClientWrapper.get(HttpClientWrapper.java:89)
03-14 15:00:02.888: W/System.err(697):  at twitter4j.TwitterBaseImpl.fillInIDAndScreenName(TwitterBaseImpl.java:126)
03-14 15:00:02.888: W/System.err(697):  at twitter4j.TwitterImpl.verifyCredentials(TwitterImpl.java:592)
03-14 15:00:02.908: W/System.err(697):  at com.twitter.android.TwitterApp$3.run(TwitterApp.java:150)

twitter Verbindungscode .  http://www.androidhive.info/2012/09/android-twitter-oauth-connect-tutorial/ dies eine Entwicklung

---

Top 5 Antwort

1richhallstoke @

Meines Wissens hat sich nichts wesentlich mit der OAuth -Implementierung, die dies verursachen würde änderte sich jedoch, nachdem Sie mit OAuth, wenn Sie wurden dann unter Verwendung von nicht-SSL- Anforderungen für Daten dies zuvor gearbeitet haben, jetzt authentifiziert haben aber nicht. Twitter wurde eine Änderung https://dev.twitter.com/discussions/24239 am 14. Januar 2014 .

Irgendwo in Ihrem Java-Code wird es die URL, die verwendet werden, um Daten von den Servern von Twitter abrufen. Ich würde vorschlagen, Sie eine Suche / durch den Code, in dem für alle Vorkommen von http://api.twitter.com/ Sie diese mit https://api.twitter.com/ ersetzen zu ersetzen und dies hoffentlich auch dieses Problem zu lösen. Es ist möglich, es gibt andere Probleme, die später ans Licht kommen kann, aber zumindest ist dies der erste Schritt .

Durch die Angabe https das macht sicher, dass Sie das SSL-Protokoll, um sicherzustellen, dass Daten während der Übertragung zwischen der Anwendung und Twitter sicher aufbewahrt .

Wenn Sie weitere Informationen zu validieren optional und überprüfen Sie die SSL-Zertifikate in Ihrem Code für zusätzliche Sicherheit benötigen, dann lesen https://dev.twitter.com/docs/security/using-ssl Twitter -Entwickler -Dokumentation Webseite .

Edit: Nur weiter zu klären, um diese Fehlermeldung müssen Sie erfolgreich mit OAuth über eine SSL- URL authentifiziert wurden erhalten, aber dann kehrte zu Nicht-SSL- URL für Folgedatenanforderungen.

2Mitch Wong Ho @

Wenn Sie Wegweiser + Twitter4J sind, würden Sie Ihre OAuth -Anbieter wie folgt definieren:

private DefaultOAuthConsumer mOAuthConsumer = null;
private DefaultOAuthProvider httpOauthprovider = new DefaultOAuthProvider("https://api.twitter.com/oauth/request_token",
        "https://api.twitter.com/oauth/access_token",
        "https://api.twitter.com/oauth/authorize");

führen Sie dann die Benutzerauthentifizierung :

private void getTwitterAuthorisation() {
    if (backend.hasNetworkConnection(this, true)) {
        new Thread(new Runnable() {
            public void run() {
                try {
                    mOAuthConsumer = newOAuthConsumer();
                    String authUrl = httpOauthprovider.retrieveRequestToken(mOAuthConsumer, CALLBACK);
                    startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(authUrl)));
                } catch (Exception e) {
                    Log.e(TAG, "getTwitterAuthorisation()", e);
                }
            }
        }).start();
    }
}

dann erhalten die Zeichen :

TwitterCredentials creds = null;
            try {
                httpOauthprovider.retrieveAccessToken(mOAuthConsumer, verifier);
                final String token = mOAuthConsumer.getToken();
                final String secret = mOAuthConsumer.getTokenSecret();
                final AccessToken accessToken = new AccessToken(token, secret);
                final Twitter twitter = TwitterFactory.getSingleton();
                twitter.setOAuthConsumer(mOAuthConsumer.getConsumerKey(), mOAuthConsumer.getConsumerSecret());
                twitter.setOAuthAccessToken(accessToken);
                final long twitterId = twitter.getId();
                final String twitterScreenName = twitter.getScreenName();
                creds = new TwitterCredentials();
                creds.oauthToken = token;
                creds.oauthSecret = secret;
                creds.twitterId = twitterId;
                creds.screenName = twitterScreenName;
            } catch (Exception e) {
                Log.e(TAG, "doTwitterConnect", e);
            }
            return creds;
3Vaishali @

Ich hatte das gleiche Fehler und ein Upgrade auf die neueste Version von Twitter4J 3.0.5, das Problem behoben .

Holen Sie sich die neueste hier http://twitter4j.org/en/index.html#download

Ich sollte erwähnen, dass die Version i lief war Twitter4J 3.0.3 . geht auf die Version 3.0.5 oder 3.0.6 das Problem behoben für mich.