2010-03-02 3 views
12

Ich möchte eine Befehlszeilenanwendung wie cURL verwenden, um einige Test-Posts zu meinem Test-Twitter-Konto zu tun. Ich möchte dies auch mit OAuth-Authentifizierung tun.Wie kann ich cURL (oder ein anderes Befehlszeilentool) verwenden, um mit OAuth-Authentifizierung einen HTTP-Post an Twitter zu senden?

Wie kann ich das tun? Angenommen, ich habe bereits eine Anwendung in Twitter erstellt und meine Schlüssel und Zeug erhalten.

(Bitte stellen Sie auch sicher, dass Sie angeben, welcher Schlüssel verwendet werden soll und wo, in der Befehlszeile usw.).

Schließlich bin ich unter der (ungebildeten) Annahme, dass dies mit einer einzigen Befehlszeile möglich ist.

Antwort

11

Nun, Sie sind nicht der Einzige, der eine OAuth-geschützte API mit einem einfachen curl-Befehl ausprobieren möchte. Sie können sich oauth-proxy ansehen, die einen HTTP-Proxy auf Ihrem eigenen Rechner mit den entsprechenden Parametern für Tokens und Secrets einrichtet. Dann wird jede Anfrage, die diesen Proxy verwendet (z. B. ein curl-Befehl oder sogar ein Webbrowser, der für die Verwendung konfiguriert ist), automatisch mit allen geeigneten OAuth-Parametern signiert.

Seths Walkthrough enthält sogar das Beispiel von Twitter, also sollten Sie in der Lage sein, den Anweisungen Schritt für Schritt zu folgen (vorausgesetzt, Twitter OAuth funktioniert genauso wie im September 09).

Dies ist nicht ganz so einfach wie eine einzelne Zeile, da es die Installation einiger Software und mindestens einen zusätzlichen Befehl zum Einrichten des Proxy enthält. Zumindest sollte es aber das Ziel ermöglichen, nach der Einrichtung einfache Single-Line-Tests mit curl zu ermöglichen.

+0

Ich denke, das ist perfekt! Danke npdoty.Als Bonus funktioniert es mit jedem HTTP-Client, nicht nur mit curl, zum Beispiel dem [rest-client GUI-Frontend] (http://code.google.com/p/rest-client/) oder [Poster Firefox plugin] (https : //addons.mozilla.org/en-US/firefox/addon/poster/) :) –

-2

Sie können eine Liste der Twitter-API-Bibliotheken in verschiedenen Sprachen anzeigen here. Mindestens einer von ihnen arbeitet mit Curl.

2

Ich glaube nicht, dass Sie es in einem Schuss tun können. OAuth erfordert, dass Sie mit dem Token antworten, wenn Sie die Statusanforderung stellen. Dies würde außerhalb des Bereichs einer einzelnen einzeiligen curl-Anforderung liegen.

Sie können stattdessen eine einfache Bibliothek wie die Twitter Ruby gem verwenden, die in der Lage wäre, Parameter in der Befehlszeile zu akzeptieren und dann die entsprechenden Ergebnisse zu erzeugen.

+0

also .. wenn Sie es nicht mit der Befehlszeile tun können ... und Twitter wird ihre BASIC AUTH in der Mitte des Jahres ablehnen .. bedeutet das, dass wir Curl für keine verwenden können HTTP-POST Beispiele? –

+0

Das ist in etwa richtig. Aber wie gesagt, du könntest immer mehrere Anfragen oder eine einfache Bibliothek wie das oben verlinkte Twitter-Juwel verwenden. –

+0

ack. das ist grob :(:(:(Ich kann nicht viel dagegen tun. Ich bin irgendwie schockiert ... :(Kein einfacher Weg, um Twitter zu testen, dann scheint es von der Befehlszeile ... * zu wimmern leicht * –

3

Twitter kam tatsächlich mit einer modifizierten Version von cURL Anruf Twurl heraus. Es ist ein Ruby GEM, der tun sollte, was Sie brauchen.

0

Beachten Sie, dass Sie OAuth nicht verwenden müssen. Es stimmt zwar, dass Twitter im September 2010 den Zugriff auf die Basisauthentifizierung einstellte, aber es gibt noch immer eine Möglichkeit, Basisauthentifizierung mit cURL zu verwenden.

Die Idee ist es, einen User-Agent-Header zu senden, der Twitter zum Denken bringt, dass cURL ein normaler Browser ist. Luka Pušić schrieb this script, die Ihnen zeigt, wie.