Question

Je cherchais un moyen de mettre à jour mon statut Twitter à partir d'un client Python. Comme ce client n'a besoin que d'un accès compte Twitter, il devrait être possible de le faire avec un oauth_token de prégénérée et secret, selon http://dev.twitter.com/pages/oauth_single_token

Cependant l'exemple de code ne semble pas au travail, je suis en train de « ne pouvait pas vous authentifier » ou « signature incorrecte » ..

Comme il y a un tas de différentes bibliothèque twitter python là-bas (et pas tous sont à jour) J'apprécierions vraiment si quelqu'un pourrait me diriger une bibliothèque qui travaille actuellement pour les demandes POST, ou post un exemple de code!

Mise à jour: J'ai essayé la solution de Pavel, et il fonctionne aussi longtemps que le nouveau message est un seul mot long, mais dès qu'il contient des espaces, je reçois cette erreur:

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

Si toutefois la mise à jour est juste un mot, cela fonctionne:

status = api.PostUpdate('helloworld')
{'status': 'helloworld'}

Toute idée pourquoi cela pourrait se produire?

Merci beaucoup à l'avance,

Hoff

Était-ce utile?

La solution 2

J'ai été en mesure de résoudre ce problème en utilisant une autre bibliothèque - donc je vais ici pour référence posterai ma solution:

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

Autres conseils

Vous pourriez être intéressé par cet http://code.google.com/p/python Twitter- /

Malheureusement, les documents ne sont pas là pour être juste et dernier « libération » était en 2009.

J'ai utilisé le code de la hg:

wget http://python-twitter.googlecode.com/hg/get_access_token.py
wget http://python-twitter.googlecode.com/hg/twitter.py

Après (long) processus d'enregistrement de l'application ( http://dev.twitter.com/pages/ auth # registre ), vous devez avoir la clé et le code secret. Ils sont uniques pour une application.

Ensuite, vous devez connecter l'application à votre compte, modifier le get_access_token.py selon les instructions dans la source (sic!) Et course. Vous devriez maintenant avoir la clé Twitter jeton d'accès et secret.

>>> 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!

Et ça marche pour moi http://twitter.com/#!/pawelprazak/status / 16504039403425792 (pas sûr si elle est visible à tout le monde)

Cela dit, je dois ajouter que je ne suis pas comme le code, donc si je vais l'utiliser je le réécrire.

EDIT:. Je l'ai fait l'exemple plus clair

scroll top