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

War es hilfreich?

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,

scroll top