Twurl ist wie Curl, aber speziell auf die Twitter-API zugeschnitten. Es weiß, wie einem bestimmten Benutzer ein Zugriffstoken für eine Clientanwendung gewährt wird und wie dann alle Anforderungen mit diesem Zugriffstoken signiert werden.
Darüber hinaus bietet es weitere Entwicklungs- und Debugging-Annehmlichkeiten wie die Definition von Aliasen für häufige Anfragen sowie die Unterstützung mehrerer Zugriffstoken, um problemlos zwischen verschiedenen Clientanwendungen und Twitter-Konten zu wechseln.
Twurl kann mit RubyGems installiert werden:
gem install twurl
Wenn Sie dies noch nicht getan haben, beantragen Sie zunächst ein Entwicklerkonto für den Zugriff auf Twitter-APIs:
https://developer.twitter.com/en/apply-for-access
Nachdem Sie diesen Zugriff haben, können Sie eine Twitter-App erstellen und einen Verbraucherschlüssel und ein Geheimnis generieren.
Wenn Sie Ihren Verbraucherschlüssel und sein Geheimnis haben, autorisieren Sie Ihr Twitter-Konto, API-Anfragen mit diesem Verbraucherschlüssel und diesem Geheimnis zu stellen.
twurl authorize --consumer-key key
--consumer-secret secret
Dadurch wird eine URL zurückgegeben, die Sie in Ihrem Browser öffnen sollten. Authentifizieren Sie sich bei Twitter und geben Sie dann die zurückgegebene PIN erneut in das Terminal ein. Vorausgesetzt, dass alles gut funktioniert, sind Sie berechtigt, Anfragen über die API zu stellen. Twurl wird es dir sagen.
Bei der einfachsten Anfrage müssen Sie lediglich den Pfad angeben, den Sie anfordern möchten.
twurl /1.1/statuses/home_timeline.json
Ähnlich wie bei Curl wird standardmäßig eine GET-Anfrage ausgeführt.
Sie können eine POST-Anfrage implizit ausführen, indem Sie die Option -d übergeben, die POST-Parameter angibt.
twurl -d ' status=Testing twurl ' /1.1/statuses/update.json
Mit der Option -X (oder --request-method) können Sie explizit angeben, welche Anforderungsmethode ausgeführt werden soll.
twurl -X POST /1.1/statuses/destroy/1234567890.json
Sie können ein Bearer-Token mit der Option --bearer
in Kombination mit dem Unterbefehl authorize
generieren.
twurl authorize --bearer --consumer-key key
--consumer-secret secret
Und dann können Sie eine Anfrage mit einem generierten Bearer-Token stellen, indem Sie die Option --bearer
request verwenden.
twurl --bearer ' /1.1/search/tweets.json?q=hello '
Um Ihre generierten Bearer-Tokens aufzulisten, können Sie den Unterbefehl bearer_tokens
verwenden.
twurl bearer_tokens
Dadurch wird ein Paar aus Consumer_key und dem zugehörigen Inhabertoken gedruckt. Beachten Sie, dass Token in dieser Ausgabe weggelassen werden.
Mit dem Flag -H können Sie auf verschiedene Hosts für andere Twitter-APIs zugreifen.
twurl -H " ads-api.twitter.com " " /7/accounts "
Um Binärdateien hochzuladen, können Sie den Anruf als Formularbeitrag formatieren. Unten ist die Binärdatei „/path/to/media.jpg“ und das Formularfeld ist „media“:
twurl -H " upload.twitter.com " -X POST " /1.1/media/upload.json " --file " /path/to/media.jpg " --file-field " media "
twurl alias h /1.1/statuses/home_timeline.json
Sie können dann „h“ anstelle des vollständigen Pfads verwenden.
twurl h
Pfade, die zusätzliche Optionen erfordern (z. B. Anforderungsparameter), können wie erwartet mit Aliasen genauso wie mit vollständig expliziten Pfaden verwendet werden.
twurl alias tweet /1.1/statuses/update.json
twurl tweet -d " status=Aliases in twurl are convenient "
Wenn Sie zum ersten Mal eine Client-Anwendung autorisieren, Anfragen im Namen Ihres Kontos zu stellen, speichert Twurl Ihre Zugriffstoken-Informationen in seiner ~/.twurlrc
Datei. Nachfolgende Anfragen verwenden dieses Profil als Standardprofil. Mit dem Unterbefehl accounts
können Sie sehen, welche Clientanwendungen für welche Benutzernamen autorisiert wurden:
twurl accounts
noradio
HQsAGcBm5MQT4n6j7qVJw
hhC7Koy2zRsTZvQh1hVlSA (default)
testiverse
guT9RsJbNQgVe6AwoY9BA
Beachten Sie, dass einer dieser Verbraucherschlüssel als Standard markiert ist. Um die Standardeinstellung zu ändern, verwenden Sie den Unterbefehl set
und übergeben dann entweder nur den Benutzernamen, wenn dieser eindeutig ist, oder das Benutzername- und Verbraucherschlüsselpaar, wenn er nicht eindeutig ist:
twurl set default testiverse
twurl accounts
noradio
HQsAGcBm5MQT4n6j7qVJw
hhC7Koy2zRsTZvQh1hVlSA
testiverse
guT9RsJbNQgVe6AwoY9BA (default)
twurl set default noradio HQsAGcBm5MQT4n6j7qVJw
twurl accounts
noradio
HQsAGcBm5MQT4n6j7qVJw (default)
hhC7Koy2zRsTZvQh1hVlSA
testiverse
guT9RsJbNQgVe6AwoY9BA
Durch Ändern des Standardprofils können Sie zwar auswählen, welches Zugriffstoken (OAuth1.0a) verwendet werden soll, Inhabertokens sind jedoch nicht mit Benutzerprofilen verknüpft, da für die Nur-Anwendung-Authentifizierung kein Benutzerkontext erforderlich ist. Das heißt, Sie können unabhängig von Ihrem Standardprofil eine reine Anwendungsanforderung stellen, wenn Sie die Option -c
( --consumer-key
) angeben, sobald Sie ein Bearer-Token mit diesem Verbraucherschlüssel generiert haben. Standardmäßig liest twurl den Consumer-Schlüssel des aktuellen Profils und das zugehörige Bearer-Token aus der Datei ~/.twurlrc
.
Marcel Molina / @noradio
Erik Michaels-Ober / @sferik
und es gibt noch viele mehr!