2010-03-02 4 views
12

Desidero utilizzare un'applicazione della riga di comando, ad esempio cURL, per eseguire alcuni test sul mio account Twitter di prova. Vorrei anche farlo con l'autenticazione OAuth.Come posso usare cURL (o qualsiasi strumento da riga di comando) per fare un post HTTP su Twitter, con l'autenticazione OAuth?

Come posso fare questo? Supponiamo che io abbia già creato un'applicazione, su Twitter, e abbia ricevuto le mie chiavi e roba.

(Inoltre, si prega di assicurarsi di specificare quale chiave usare, e dove, nella riga di comando, ecc.).

Infine, sono sotto l'ipotesi (non istruita) che ciò è possibile con una sola riga di comando.

risposta

11

Bene, non sei l'unico a desiderare di provare un'API protetta da OAuth con un semplice comando curl. Potresti guardare a oauth-proxy che configura un proxy HTTP sul tuo computer con i parametri appropriati per token e segreti. Quindi qualsiasi richiesta che utilizza quel proxy (ad esempio un comando curl, o anche un browser Web configurato per utilizzarlo) verrà automaticamente firmata con tutti i parametri OAuth appropriati.

La panoramica di Seth include anche l'esempio di Twitter, quindi dovresti essere in grado di seguire le istruzioni passo-passo (presumendo che l'OAuth di Twitter funzioni come nel settembre 09).

Questo non è semplice come una singola linea, poiché implica l'installazione di alcuni software e almeno un comando aggiuntivo per l'impostazione del proxy. Ma dovrebbe almeno consentire l'obiettivo di consentire semplici test a linea singola con curl una volta impostate le cose.

+0

Penso che questo sia perfetto! Grazie npdoty.Come bonus, funziona con qualsiasi client HTTP non solo curl, ad esempio il [front-end GUI rest-client] (http://code.google.com/p/rest-client/) o [Poster Firefox plugin] (https : //addons.mozilla.org/en-US/firefox/addon/poster/) :) –

-2

È possibile visualizzare un elenco di librerie API di Twitter in diverse lingue here. Almeno uno di loro lavora con Curl.

2

Non penso che tu possa farlo in un colpo solo. OAuth richiede che tu risponda con il token quando effettui la richiesta di stato, che sarebbe al di fuori dell'ambito di una singola richiesta curl a una riga.

Quello che si potrebbe fare invece è utilizzare una semplice libreria come la Twitter Ruby gem, che sarebbe in grado di accettare parametri sulla riga di comando e quindi produrre i risultati appropriati.

+0

quindi .. se non riesci a farlo con la riga di comando ... e Twitter ritirerà il loro BASIC AUTH a metà anno .. vuol dire che non saremo in grado di usare Curl per qualsiasi Esempi di HTTP-POST? –

+0

Questo è giusto. Ma come ho detto, puoi sempre utilizzare più richieste o una semplice libreria come la gemma di Twitter, linkata sopra. –

+0

ack. è rozzo :(:(:(non c'è molto che posso fare al riguardo, quindi sono piuttosto scioccato da quello ... :(non è un modo semplice per testare Twitter, quindi sembra _from_ la linea di comando ... * piagnucola leggermente * –

3

Twitter in realtà è uscito con una versione modificata di chiamata cURL Twurl. È un GEM rubino che dovrebbe fare quello che ti serve.

0

Una cosa da tenere a mente è che in realtà non è necessario utilizzare OAuth. Mentre è vero che Twitter ha interrotto l'accesso di autenticazione di base nel settembre 2010, c'è ancora un modo per utilizzare l'autenticazione di base con cURL.

L'idea è di inviare un'intestazione di user agent che induca Twitter a pensare che cURL sia un normale browser. Luka Pušić ha scritto this script che ti mostra come.

Problemi correlati