Twitter API: einfaches Status-Update (Python)
-
11-10-2019 - |
Frage
Ich habe nach einem Weg gesucht, meinen Twitter-Status von einem Python-Client zu aktualisieren. Da dieser Client für den Zugriff eines Kontos benötigt nur Twitter, sollte es möglich sein, dies mit einem generierten oauth_token und Geheimnis zu tun, nach http://dev.twitter.com/pages/oauth_single_token
Doch der Beispielcode scheint nicht zu arbeiten, ich bin immer ‚konnte man nicht authentifizieren‘ oder ‚falsche Signatur‘ ..
Da gibt es eine Reihe von verschiedenen Python-twitter-Bibliothek gibt (und nicht alle von ihnen sind up-to-date) Ich würde wirklich schätzen, wenn jemand mir eine Bibliothek zeigen könnte das momentan laufende für POST-Anfragen arbeiten, oder senden einig Beispiel-Code!
Update: Ich habe Pavel Lösung versucht, und es funktioniert, solange die neue Nachricht lange nur ein Wort ist, aber sobald es Leerzeichen enthält, ich diese Fehlermeldung erhalten:
status = api.PostUpdate('hello world')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python26\lib\site-packages\python_twitter\twitter.py", line 2459, in PostUpdate
self._CheckForTwitterError(data)
File "C:\Python26\lib\site-packages\python_twitter\twitter.py", line 3394, in _CheckForTwitterErro
r
raise TwitterError(data['error'])
python_twitter.twitter.TwitterError: Incorrect signature
Wenn jedoch das Update nur ein Wort ist, es funktioniert:
status = api.PostUpdate('helloworld')
{'status': 'helloworld'}
Jede Idee, warum dies passiert sein könnte?
Vielen Dank im Voraus,
Hoff
Lösung 2
Ich habe in der Lage, dieses Problem zu lösen, eine andere Bibliothek - so dass ich meine Lösung hier als Referenz veröffentlichen werden:
import tweepy
# http://dev.twitter.com/apps/myappid
CONSUMER_KEY = 'my consumer key'
CONSUMER_SECRET = 'my consumer secret'
# http://dev.twitter.com/apps/myappid/my_token
ACCESS_TOKEN_KEY= 'my access token key'
ACCESS_TOKEN_SECRET= 'my access token secret'
def tweet(status):
'''
updates the status of my twitter account
requires tweepy (https://github.com/joshthecoder/tweepy)
'''
if len(status) > 140:
raise Exception('status message is too long!')
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_TOKEN_KEY, ACCESS_TOKEN_SECRET)
api = tweepy.API(auth)
result = api.update_status(status)
return result
Andere Tipps
Sie könnten in diesem interessiert sein http://code.google.com/p/python Twitter- /
Leider ist die Dokumente existieren nicht fair und letzte ‚Freisetzung‘ im Jahr 2009 war zu sein.
Ich habe Code aus dem hg verwendet:
wget http://python-twitter.googlecode.com/hg/get_access_token.py
wget http://python-twitter.googlecode.com/hg/twitter.py
Nach dem (langen) App Registrierung ( http://dev.twitter.com/pages/ auth # Register ) sollten Sie den Consumer-Key und Geheimnis. Sie sind einzigartig für eine App.
Als nächstes müssen Sie die App mit Ihrem Konto, bearbeitet die get_access_token.py gemäß den Anweisungen in der Quelle (sic!) Und läuft verbinden. Sie sollten nun die Twitter-Zugang Token Schlüssel und Geheim haben.
>>> import twitter
>>> api = twitter.Api(consumer_key='consumer_key',
consumer_secret='consumer_secret', access_token_key='access_token',
access_token_secret='access_token_secret')
>>> status = api.PostUpdate('I love python-twitter!')
>>> print status.text
I love python-twitter!
Und es funktioniert für mich http://twitter.com/#!/pawelprazak/status / 16504039403425792 (nicht sicher, ob es für jeden sichtbar ist)
sagte, ich muss hinzufügen, dass ich wie der Code nicht tun, also wenn ich es gonna verwenden würde ich würde es neu schreiben.
EDIT:. Ich habe das Beispiel mehr deutlich gemacht,
Die letzte Stelle für Python-Twitter-Dokumentation ist jetzt auf GitHub (die die Google-Code-Seite Punkte, die Sie bei).
Sie nun nicht mehr notwendig, das Kommandozeilen-Tool zu verwenden, die mit Python-twitter kommt den vollen Satz von Zugriffstoken und Geheimnissen zu erhalten,
Ich habe codiert irgendeine Sache auf diese Frage bezogen. import tweepy
consumer_key = Your_consumer_key
consumer_secret = Your_consumer_secret
access_token = Your_access_token
access_token_secret = Your_access_token_secret_key
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)
single_tweet = 'hello world'
api.update_status(single_tweet)
print "successfully Updated"