2016-09-28 1 views
1

Ich habe eine Anwendung, die eine Reihe von Funktionen der Twitter-API nutzt. Ich habe die Anwendung auf einem Windows 7-System getestet, und alle Funktionen funktionierten gut.401 Fehler bei der Verwendung der Streaming-Funktionen von Twitter API (über Tweepy)

Beim Testen der Anwendung auf einem zweiten Windows 7-System scheint alles außer den Funktionen Öffentlicher Stream und User Stream zu funktionieren (d. H. Die App konnte sich authentifizieren, kann Benutzern folgen/nicht folgen usw.). Auf diesem System erzeugen die Stream-Features 401 error. Wie ich es verstehe, könnte 401 einen Autorisierungsfehler anzeigen (der in diesem Fall nicht auftritt, da Nicht-Streaming-Funktionen verfügbar sind) oder a difference in time configuration zwischen den Servern von Twitter und dem Client-System.

Ich möchte, dass die Streaming-Funktionen meiner App plattformübergreifend verfügbar sind (Windows, Mac, Unix), und ich kann nicht erwarten, dass die Endbenutzer an den Uhrkonfigurationen ihres Systems herumbasteln. Kann jemand eine System-agnostische Tweepy/python-basierte Lösung für das 401-Fehlerproblem unter der Bedingung empfehlen, dass es durch ein Zeitkonfigurationsproblem verursacht wird? Vielen Dank.

EDIT:

auf dem System, auf das die Stream-Funktionen nicht in Betrieb waren, nachdem sie mit dem Systemtakt von Hand gebastelt zu haben, ohne Erfolg, ich mit time.windows.com synchronisiert. Dies hatte keine erkennbare Auswirkung auf die angezeigte Zeit (ich hatte keine Sicht auf die Sekunden), aber es löste das Problem (d. H. Die Twitter-Benutzer- und öffentlichen Stream-Funktionen wurden verfügbar). Die Frage bleibt - wie verhindert man, dass ein solcher Fehler auf den Systemen der Endbenutzer auftritt? Es ist unrealistisch, Benutzer zu warnen, ihre Uhren einzustellen.

+0

Sind Sie sicher, dass es sich nicht um einen Authentifizierungsfehler handelt? Gehen Sie einfach von der API-Dokumentation [Streaming With Tweepy] (http://docs.tweepy.org/en/v3.4.0/streaming_how_to.html): 'API-Autorisierung ist erforderlich, um auf Twitter-Streams zuzugreifen. – davedwards

+0

@downshift Wenn es Da es sich um einen Authentifizierungsfehler handelt, glaube ich nicht, dass ich alle Nicht-Streaming-Funktionen verwenden könnte, da die Streaming- und Nicht-Streaming-Funktionen dieselben Anmeldeinformationen verwenden. Außerdem würde es nicht erklären, warum das Programm auf einer Maschine und nicht auf einer anderen Maschine funktioniert. – Boa

+0

Ich bin sicher, Sie haben Recht mit den Authentifizierungsanforderungen, Sie haben ein besseres Verständnis und Erfahrung als ich mit der API. Aber das Programm könnte auf einem System funktionieren, bei dem Umgebungsvariablen für die Anmeldeinformationen gesetzt sind und keines auf dem anderen Computer, weshalb ich gefragt habe, aber fairerweise, Sie haben mich korrigiert. – davedwards

Antwort

1

Ihre Systemuhr ist wahrscheinlich mehr als 5 Minuten aus.

+0

Seltsamerweise zeigte die Uhr auf dem Windows 7-Rechner, auf dem sie nicht funktionierte, im Grunde die gleiche Zeit (vielleicht ein paar Sekunden später) als der Win 7-Rechner, auf dem sie funktionierte. Die Frage bezog sich jedoch auf die Implementierung einer Multisystem-Tweepy/Python-basierten Lösung für das Clock-Problem. Irgendwelche Vorschläge dazu? – Boa

+0

Sie können mit bis zu 3 gleichzeitigen Streams mit den gleichen Anmeldeinformationen geöffnet werden. Konnten Sie die zweite Instanz in Betrieb nehmen, während die erste Instanz gestoppt wurde? – Jonas

+0

stellte sich heraus, dass es sich um ein Uhrproblem handelte, und nach erfolglosen manuellen Uhreinstellungen wurde die Synchronisierung mit dem Zeitserver von Microsoft korrigiert. Aber die Frage ist, wie verhindert werden kann, dass dieses Problem in den Systemen der Endnutzer auftritt, ohne dass sie aufgefordert werden, ihre Uhren anzupassen? – Boa

Verwandte Themen