2011-05-06 7 views
5

Sostanzialmente lo stesso problema di questa domanda, ma alla ricerca di una soluzione in Python. How to work around Twitter OAuth?Bypass Twitter OAuth

Idealmente, non voglio dover passare attraverso gli anelli di configurazione di un'interfaccia utente/login e backend poiché il lavoro che sto facendo è per scopi interni.

Vorrei anche bypassare la parte in cui ho bisogno di reindirizzare l'utente a Twitter per l'autorizzazione.

Grazie

risposta

3

Dovrai utilizzare il flusso OOB di Twitter. Questo è spiegato bene in questa risposta

Twitter API - OOB Flow

+1

Idealmente, mi piacerebbe che il processo avesse un'interazione zero coinvolgente l'utente. Questo flusso richiede comunque l'inserimento di un PIN se non si sbaglia. – super9

+3

Come prevedi di accedere a un account senza essere autenticato dall'utente? – Acorn

+1

Desidero un flusso di autenticazione unidirezionale senza alcun input da parte dell'utente. Non ho mai detto nulla sul fatto di non essere autenticato dall'utente. – super9

3

Così, leggendo tra le righe un po ', si dispone di un account Twitter e una password, perché questo è interno, in modo che non si vuole andare con un processo di autenticazione che richiede all'utente di interagire con esso?

L'idea alla base di OAuth è che non si trova mai la password dell'utente; Sono d'accordo che se ho ragione su quello che stai cercando di fare non è la cosa giusta. Il flusso OOB suggerito da JohnD ha lo stesso problema.

Se si dispone di un account/password, è possibile lavorare direttamente con le presentazioni al sito Web, utilizzando il modulo di accesso e il modulo tweet. Sfortunatamente questo significa che non hai accesso all'API (l'autenticazione di base è stata aggiunta tramite l'API l'anno scorso), a seconda di cosa stai cercando di fare che potrebbe o meno essere un problema.

Edit:

Usa OAuth e ricordare il token. Non scade mai, secondo i documenti dell'API di Twitter, e dal momento che presumibilmente hai un numero limitato di account che ti interessano, puoi semplicemente saltare attraverso i cerchi OAuth una volta per ogni account e il gioco è fatto fino a quando non avrai bisogno di un altro account. Puoi anche fare l'intera cosa a livello di programmazione dato il nome utente e la password, assumendo che non si inseriscano un captcha lì dentro ad un certo punto. Ma sospetto che la tua migliore scommessa sia usare semplicemente OAuth e memorizzare i token.

+1

Sì, è corretto. L'autenticazione di base avrebbe funzionato perfettamente per me, ma come hai detto è stata deprecata. I dati non autenticati esposti nell'API non hanno tutte le informazioni. di cui ho bisogno. – super9

+0

@Nai Penso che tu sia fregato, allora. Puoi utilizzare i moduli web pubblici oppure puoi utilizzare qualcosa come OAuth. Nota, tuttavia, che devi solo passare attraverso il telaio OAuth una volta per account, poiché i token non scadono mai, quindi puoi semplicemente mettere in cache i token. Aggiornerò la mia risposta per includerla. –

+0

Grazie per averlo confermato. lol – super9

0

Si potrebbe prendere in considerazione lo Mechanize. Automatizza l'attività del browser.

Quindi potresti inserire il tuo nome utente/password nel tuo script. Quindi lo script deve passare tali credenziali a http://twitter.com/#!/login.

convenzionalmente, se si accede manualmente da tale pagina Web, la risposta sarà un'altra pagina in base al fatto che le credenziali utilizzate siano corrette.

Stessa cosa: in base al fatto che le credenziali siano corrette, la risposta è un'altra pagina.

È quindi possibile verificare se la risposta è una pagina di "accesso non riuscito" o una pagina di "accesso passato" e fare ciò che è necessario fare da lì.

Spero che questo aiuti

1

Ho appena scoperto this bash script che funziona, testato personalmente, basta cambiare --ssl---sslv3.

Si basa su un metodo di autenticazione più semplice utilizzato su mobile.twitter.com, è possibile utilizzare lo stesso principio per affrontarlo utilizzando i moduli urllib2 e re.


Altrimenti si può considerare di appoggiarsi un sito come http://www.supertweet.net/

SuperTweet.net fornisce una cassetta di sicurezza meccanismo per utilizzare l'autenticazione di base con le API di Twitter negli script e altre applicazioni di Twitter. Semplicemente Sign-up via Twitter di autorizzare l'MyAuth API Proxy SuperTweet.net Applicazione e quindi assegnare una password del vostro scegliere (non la vostra vera password Twitter ) che le applicazioni possono utilizzare con l'API http://api.supertweet.net .

Edit: Vedo ora questo sito è stato citato in un articolo collegato in una risposta di How to work around Twitter OAuth?, se avete già letto su di esso ignorare questa parte.

1

Se si utilizza un'applicazione desktop o mobile, è possibile utilizzare xAuth. Dal punto di vista dell'utente è la stessa cosa dell'autenticazione di base per ottenere le credenziali OAuth originali e non è possibile accedere a pagine esterne. Nota che devi essere approvato dal team API di Twitter per ottenere l'accesso xAuth.