Domanda

Sono stato alla ricerca di un modo per aggiornare il mio stato di Twitter da un client Python. Come questo client ha solo bisogno di accedere con un account Twitter, dovrebbe essere possibile fare questo con un oauth_token e segreta pre-generati, secondo il http://dev.twitter.com/pages/oauth_single_token

Tuttavia, il codice di esempio non sembra funzionare, mi sto 'non poteva autenticare si' o 'firma non corretta' ..

Come ci sono un mucchio di diverso libreria python-twitter là fuori (e non tutti sono up-to-date) Mi piacerebbe davvero apprezzare se qualcuno mi potrebbe indicare una libreria che sta attualmente lavorando per le richieste POST o post alcuni esempi di codice!

Aggiornamento: Ho provato la soluzione di Pavel, e funziona fino a quando il nuovo messaggio è solo una parola lunga, ma non appena si contiene spazi, ottengo questo errore:

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

Se invece l'aggiornamento è solo una parola, funziona:

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

Qualsiasi idea del perché questo potrebbe accadere?

Grazie mille in anticipo,

Hoff

È stato utile?

Soluzione 2

Sono stato in grado di risolvere questo problema utilizzando un'altra libreria - così vi posto la mia soluzione qui per riferimento:

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

Altri suggerimenti

Si potrebbe essere interessato a questo http://code.google.com/p/python -Twitter /

Sfortunatamente non esistono i documenti ad essere onesti e 'release' ultimo è stato nel 2009.

Ho usato il codice dalla hg:

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

Dopo aver (lunga) procedura di registrazione app ( http://dev.twitter.com/pages/ auth # registro ) si dovrebbe avere la chiave dei consumatori e segreta. Essi sono unici per un app.

Avanti è necessario collegare l'applicazione con il tuo account, modificare il get_access_token.py secondo le istruzioni di sorgente (sic!) Ed eseguire. Si dovrebbe avere ora la chiave di Twitter token di accesso e segreto.

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

E funziona per me http://twitter.com/#!/pawelprazak/status / 16504039403425792 (non so se sia visibile a tutti)

Detto questo devo aggiungere che non mi piace il codice, quindi se avrei intenzione di usarlo mi piacerebbe riscrivere.

EDIT:. Ho fatto l'esempio più chiaro

La posizione più recente per la documentazione Python-Twitter è ora su GitHub (cui il codice della pagina di Google punti a.)

A questo punto non è più necessario utilizzare lo strumento da riga di comando che viene fornito con python-twitter per ottenere il set completo di token di accesso e segreti, https://dev.twitter.com vi permetterà di richiedere loro quando si registra l'app.

Una volta che avete i quattro diversi valori di credenziali, la prima cosa che si vuole fare è prova di loro di fare test di API:

API = twitter.Api (consumer_key = 'consumer_key', consumer_secret = 'consumer_secret', access_token_key = 'access_token', access_token_secret = 'access_token_secret')

api.VerifyCredentials stampa ()

Questo mostrerà se le credenziali stanno lavorando o meno. Se si ottiene un errore il passo successivo è quello di passare in debugHTTP = True alla chiamata API () -. Questo farà sì che tutta la conversazione HTTP da stampare in modo da poter visualizzare il messaggio di errore Twitter

Una volta che le credenziali funzionano allora si può provare a chiamare PostUpdate () o anche solo getTimeline ()

ho codificato qualche cosa relative a questo argomento.

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"
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top