Frage

Ich versuche, zu Update-Status auf Twitter Twitter4J verwenden. Alles funktioniert gut auf localhost, aber wenn ich versuche, es auf dem Server zu tun, erhalte ich Berechtigungsfehler:

  

401: Authentifizierungsinformationen fehlten oder nicht korrekt.   { "Error": "Invalid \ / gebrauchter Nonce", "Anforderung": "\ / 1 \ / Stati \ /update.json"}   TwitterException {Exception = [15bb6564-00e4d61f], status = 401, retryAfter = 0, ratelimitstatus = null, Version = 2.1.7-SNAPSHOT (Build: 6498f401635aacf3388891cc5140b2086ff3f8aa)}

I erzeugte Zugriffstoken für einen Benutzer „PIN“ Methode auf localhost verwenden. Ich denke, es sollte keine Rolle, wo es erzeugt wurde, accessToken.getToken() und accessToken.getTokenSecret() Werte nicht davon abhängen, sollte welcher Maschine ich sie laufen, sollten sie überall arbeiten, nicht wahr?

Was bedeutet diese Fehlermeldung bedeuten? Ich verstehe nicht, „gebrauchten Nonce“ teil.

UPDATE

Ok etwas wirklich irgendwo vermasselt. Ich versuche, den Zugang zu generieren jetzt auf einem Server-Token und kann nicht einmal machen es Genehmigung URL für mich zu generieren:

Twitter twitter = new TwitterFactory().getInstance();
twitter.setOAuthConsumer("twitterConsumerKey", "twitterConsumerSecret");

RequestToken requestToken = twitter.getOAuthRequestToken();
System.out.println(requestToken.getAuthorizationURL());

Dies schlägt mit:

401:Authentication credentials were missing or incorrect.
Failed to validate oauth signature and token
TwitterException{exceptionCode=[68a00bf1-d29b9452], statusCode=401, retryAfter=0, rateLimitStatus=null, version=2.1.7-SNAPSHOT(build: 6498f401635aacf3388891cc5140b2086ff3f8aa)}
at twitter4j.internal.http.HttpClientImpl.request(HttpClientImpl.java:308)
        at twitter4j.internal.http.HttpClientWrapper.request(HttpClientWrapper.java:72)
        at twitter4j.internal.http.HttpClientWrapper.post(HttpClientWrapper.java:103)
        at twitter4j.http.OAuthAuthorization.getOAuthRequestToken(OAuthAuthorization.java:124)
        at twitter4j.TwitterOAuthSupportBaseImpl.getOAuthRequestToken(TwitterOAuthSupportBaseImpl.java:87)
        at twitter4j.Twitter.getOAuthRequestToken(Twitter.java:54)
        at twitter4j.TwitterOAuthSupportBaseImpl.getOAuthRequestToken(TwitterOAuthSupportBaseImpl.java:80)
        at twitter4j.Twitter.getOAuthRequestToken(Twitter.java:54)

Auf localhost funktioniert alles einwandfrei.

War es hilfreich?

Lösung

Eine Woche und einige graue Haare später stellte sich heraus, dass das Problem in der Ortszeit auf einem Server war, die ausgeschaltet war. Jemand hat einen tollen Job mit klaren Fehlermeldungen auf Twitter.

Andere Tipps

Ein Nonce ist ein Wert, der nur entworfen, um einmal verwendet werden.

Meine Vermutung ist, dass der Code, den Sie eine Nonce zu erzeugen, verwenden wird, um die Nonce zu sparen und versuchen, es wieder zu verwenden.

bin ich mit der Twitter4J Bibliothek nicht vertraut, aber ich würde überprüfen und sicherstellen, dass Sie für jede Anforderung eine neue Nonce zu erzeugen.

Für Ihre „401: Authentifizierungsinformationen wurden fehlende oder falsche“ Fehler. Stellen Sie sicher, dass Sie umfassen auch den Verifizierer Stift mit dem Antrag als Teil der Signatur-Basis.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top