2017-01-01 9 views
0

Ich versuche eine Funktion in Python zu implementieren, um Nachrichten an meinen Twitter-Account zu senden. Die lasst Linien Funktion sind:Senden von Nachrichten an Twitter

params=urllib.parse.urlencode({'status':msg}) 
resp=urllib.request.urlopen('http://twitter.com/statuses/update.json',params) 
resp.read() 

Und ich habe diese Nachricht: Typeerror: POST-Daten-Bytes sein sollte, ein iterable von Bytes oder ein Dateiobjekt. Es kann nicht vom Typ str sein.

Ich habe ähnliche Q & A gesehen und ich kann den Fehler nicht finden. Eigentlich habe ich die Funktion aus einem Lehrbuch und überarbeitet oft ..

ich dankbar, wenn mir jemand

Antwort

1

helfen kann Anstatt schreiben Sie Ihre eigene urllib, verwenden Sie die TwitterAPI Bibliothek für so etwas. Für häufige Anwendungen wie Twitter werden Sie feststellen, dass oft jemand anderes bereits eine gründliche Implementierung entwickelt hat. Wenn Sie solche Dinge verwenden, können Sie Ihren eigenen Code entwickeln, ohne sich Gedanken über die grundlegende Funktionalität von, falls Sie sprechen müssen zu Twitter.

Sie können TwitterAPI installieren, indem Sie eine einfache tun:

pip install TwitterAPI 

Einmal installiert, alles, was Sie tun müssen, ist die Verwendung folgende (aus dem TwitterAPI README angepasst) und Ihren eigenen Code hinzufügen, den tatsächlichen Inhalt liefern die Tweets:

from TwitterAPI import TwitterAPI 

consumer_key = <your own key> 
consumer_secret = <your own secret> 
access_token_key = <your own token key> 
access_token_secret = <your own token secret> 

api = TwitterAPI(consumer_key, consumer_secret, access_token_key, access_token_secret) 

msg = 'This is a tweet!' 

request = api.request('statuses/update', {'status': msg}) 
print(request.status_code) 

Die Dokumentation für diese Bibliothek ist ziemlich klar, und hat viel mehr als nur dieser einfachen Anwendungsfall.

Auch in der Zukunft, wenn Sie andere Arbeit, die Internet-Anfragen beteiligt ist, würde ich empfehlen, Sie die requests Bibliothek anstelle von Urllib betrachten. Es wird Ihnen viele Kopfschmerzen sparen:

pip install requests 

guten Rutsch ins Neue Jahr:

http://docs.python-requests.org/en/master/

Sie können requests von installieren!

Verwandte Themen