2016-05-10 16 views
5
tweepy.error.TweepError: [{u'message': u'Invalid or expired token.', u'code': 89}] 

Müssen Tokens fest codiert sein? Ich habe die OAuth- und Zugriffstoken jetzt fest codiert, aber der Token scheint alle 24 Stunden zu verfallen. Was kann ich tun, um das Token programmatisch zu erneuern? Kann ich über Tweepy ein neues Token bekommen?Ungültiges oder abgelaufenes Token. Neuen Token über Tweepy anfordern?

Das Ziel meines Skripts ist es, jeden Tag ohne meine Erlaubnis über Nacht zu laufen. Ich habe es als Cronjob eingestellt. Ich möchte keine manuelle Eingabe vornehmen.

Ich benutze nur die API auf 1 Konto, mein Konto. Also habe ich den Benutzernamen/das Passwort, etc.

Normalerweise bekomme ich das Token von "Klicken Sie auf mein Access-Token", dann wenn ich ein paar Tage später zurück, das Token ist weg und die Schaltfläche, um es zu erstellen - Erscheint wieder.

enter image description here

Nach Regenerieren und es für einen anderen Tag verwenden, es ist wieder passiert! Screenshot: http://i.imgur.com/hhDqLnU.png

+0

Twitter gibt in seinen OAuth-FAQ an, dass sie keine Auth-Tokens ablaufen lassen. –

+0

@KlausD. Ich weiß, ist das nicht seltsam? Das Token verschwindet nach ein oder zwei Tagen der Nutzung. Es hat mir das jetzt 3 mal angetan. Ich glaube nicht, dass sie die Wahrheit sagen. Wie kann ich mit diesem Fehler trotzdem umgehen? Ich verstehe nicht, wie ihre Aussage wahr sein kann, wenn sie nur zufällig aufhört zu arbeiten? – User

+0

Wie erhalten Sie das Token? –

Antwort

2

nicht sicher, was das Ziel Ihrer App ist, aber zu beantworten einige Ihrer Fragen-Bedenken: haben

Sie Token hart codiert werden?

Nein, je nach Art der Anwendung, die Sie kodieren, können Sie diese Daten anfordern bei Ihrem Programm über Webformular oder Textfeld in einer GUI oder schließen sie in einer anderen Datei ausführt und verschlüsseln oder die Datei importieren ist in und verwenden ...

habe ich die OAuth und Zugriffstoken hart jetzt codiert, aber das Token scheint alle 24 Stunden ablaufen. Was kann ich tun, um das Token programmatisch zu erneuern?

Sie können nicht für den API-Schlüssel und Consumer Secret, dies muss manuell durchgeführt werden. Diese Informationen sollten dauerhaft sein, basierend auf https://dev.twitter.com/oauth/overview

Zugriffstoken eine andere Geschichte ist, können Sie die API ein verwenden können offenbar zu beantragen: https://dev.twitter.com/oauth/reference/post/oauth/access_token

POST oauth/request_token Ermöglicht eine Consumer-Anwendung eine zu erhalten OAuth Request Token, um Benutzerautorisierung anzufordern. Diese Methode erfüllt Abschnitt 6.1 des OAuth 1.0-Authentifizierungsablaufs. Es wird empfohlen, HTTPS für alle OAuth-Autorisierungsschritte zu verwenden. Hinweis zur Verwendung: Nur ASCII-Werte werden für die oauth_nonce akzeptiert

Ressource URL https://api.twitter.com/oauth/request_token

den Zugriff bezüglich Token Ablauf:

Wie lange dauert ein Zugriffstoken an? Wir verfallen derzeit nicht den Zugriff auf Token. Ihr Zugriffstoken ist ungültig, wenn ein Benutzer Ihre Anwendung ausdrücklich von ihren Einstellungen zurückweist oder wenn ein Twitter-Administrator die Anwendung aussetzt.Wenn Ihre Bewerbung gesperrt ist, wird auf Ihrer Bewerbungsseite ein Hinweis angezeigt, dass sie gesperrt wurde. wie per twitter:

Was mache ich, wenn ein Access-Token ungültig wird? Sie sollten planen, dass das Zugriffstoken eines Benutzers jederzeit ungültig werden kann und Sie für diesen Benutzer erneut autorisieren müssen, falls dies der Fall ist. Sicherzustellen, dass Sie diese Situation korrekt behandeln, ist zwingend erforderlich für eine Benutzerfreundlichkeit.

Nach zwitschert Dokumentation https://dev.twitter.com/oauth/application-only

API-Anfrage enthält ungültige Inhaber Token einen falschen oder widerriefen Inhaber Token zu API-Anfragen machen ergeben:

HTTP/1.1 401 Unauthorized Content-Type : Anwendung/JSON; charset = utf-8 Content-Length: 61 ...

{ "Fehler": [{ "message": "ungültig oder abgelaufen Token", "Code": 89}]}

Vielleicht Das muss auf Twittern Seite lösen? Ich würde vorschlagen, sie zu kontaktieren directyl https://dev.twitter.com/solutions/customer-service

+0

hinzugefügt. Also benötigt der API-Zugang Benutzereingaben alle 24 Stunden? 'über Webformular oder Textfeld in einer GUI'. Ich habe bemerkt, dass Sie etwas über das Verschlüsseln und Importieren einer Datei gesagt haben, was bedeuten kann, dass ich keine Benutzereingaben brauche? – User

+0

dies kann hier behandelt werden: http://StackOverflow.com/Questions/7014953/Ihreed-to-Securely-Store-a-Benutzername-und-password-in-Python-what-are-my-options vielleicht Sie kann beschreiben, welche Art von App Sie für zukünftige Referenz verwenden. und Nein, ein API-Zugriff erfordert keine Benutzereingabe alle 24 Stunden. wieder, hängt ab, was sind Ihre Bedürfnisse – glls

+0

auch, wenn Sie Code-Beispiele von dem, was Sie versuchen, zu erreichen, und wie Sie den Fehler mit Hilfe von tweepy bekommen, wäre es hilfreich – glls

0

Sie können Ihr Zugangs-Token mit Code unten erhalten. Ich habe configparser verwendet, um meine Konfiguration zu speichern. Sobald Sie ein Token haben, läuft es nicht ab.

+0

Dies erfordert manuelle Eingabe durch den Benutzer, aber dies ist ein Cronjob um Mitternacht ausgeführt. – User

+0

Manuelle Eingabe erfordert nur zum ersten Mal – andjelx