2016-11-23 2 views
0

Ich konnte mehrere Twitter-Accounts seit Monaten authentifizieren, aber ich habe nur die Berechtigungen meiner App geändert, um DM-Viewing zu erlauben. Danach habe ich meine Konten wieder authentifiziert und der erste funktionierte gut, aber jeder zusätzliche Account nicht.Twitter4j OAuth "Schlechte Authentifizierungsdaten" Code 215 nach dem Ändern der App-Berechtigungen

Ich entschied mich, den Consumer Key, Consumer Secret, Access Token und Access Token Secret auf der Konsole auszudrucken. Für den ersten Account gibt es keine Leerzeichen und sie sehen korrekt aus. Das Zugriffstoken des zweiten Kontos ist jedoch 10 Zeichen länger als jedes der Zugriffstokens, bevor direkte Nachrichten zugelassen wurden. Auch wenn ich zu authentifizieren versuchen, bekomme ich diesen Fehler:

400:The request was invalid. An accompanying error message will explain why. This is the status code will be returned during version 1.0 rate limiting(https://dev.twitter.com/pages/rate-limiting). In API v1.1, a request without authentication is considered invalid and you will get this response. 
message - Bad Authentication data. 
code - 215 

Nach der Fehlermeldung und einig Google-Suche scheint es, wie diese Fehler ran, wenn eine Anfrage ohne Authentifizierung durchgeführt wird. Ich authentifiziere mich jedoch. Auch wenn ich die Schlüssel in irgendeiner Weise ändere, gibt es mir einen völlig anderen Fehler über ungültige oder abgelaufene Token (Fehler 89).

Dies geschieht nur mit zusätzlichen Konten, und nicht das erste Konto, das ich authentifizieren (das erste Konto funktioniert einwandfrei, wie erwartet). Dies ist der Code, den ich laufe:

public class Tweeter { 
    private String consumerKey = null; 
    private String consumerSecret = null; 
    private String accessToken = null; 
    private String accessSecret = null; 
    private Twitter twitter = null; 

    public Tweeter(String consumerKey, String consumerSecret, String accessToken, String accessSecret) { 
     this.consumerKey = consumerKey; 
     this.consumerSecret = consumerSecret; 
     this.accessToken = accessToken; 
     this.accessSecret = accessSecret; 

     ConfigurationBuilder cb = new ConfigurationBuilder(); 
     cb.setOAuthConsumerKey(consumerKey).setOAuthConsumerSecret(consumerSecret).setOAuthAccessToken(accessToken).setOAuthAccessTokenSecret(accessSecret); 

     TwitterFactory factory = new TwitterFactory(cb.build()); 
     twitter = factory.getInstance(); 

     Logger.log("\"" + factory.getInstance().getConfiguration().getOAuthConsumerKey() + "\""); 
     Logger.log("\"" + factory.getInstance().getConfiguration().getOAuthConsumerSecret() + "\""); 
     Logger.log("\"" + factory.getInstance().getConfiguration().getOAuthAccessToken() + "\""); 
     Logger.log("\"" + factory.getInstance().getConfiguration().getOAuthAccessTokenSecret() + "\""); 
    } 

    public String getConsumerKey() { 
     return consumerKey; 
    } 

    public String getConsumerSecret() { 
     return consumerSecret; 
    } 

    public String getAccessToken() { 
     return accessToken; 
    } 

    public String getAccessSecret() { 
     return accessSecret; 
    } 

    public Twitter getTwitter() { 
     return twitter; 
    } 
} 

Dies ist der gleiche Code, den ich in dem Projekt verwendet habe, arbeite ich jetzt seit Monaten auf, auch mit einigen der gleichen zusätzlichen Twitter-Konten. Das einzige, was sich geändert hat, sind die App-Berechtigungen, mit denen ich jetzt DMs anzeigen kann. Irgendwelche Ideen, wie ich das wieder zum Laufen bringen kann? Danke

Antwort

0

Das Problem ist gelöst. Ich bin mir nicht sicher, warum das passiert ist, aber ich habe versucht, weitere Konten erneut zu authentifizieren, und es funktioniert jetzt. Ich bin mir nicht sicher, ob es ein Problem am Ende von Twitter gab oder was, ich glaube nicht, dass ich irgendeinen Code geändert habe, der das System in irgendeiner Weise beeinflusst hat.

Verwandte Themen