Twurl est comme curl, mais spécialement conçu pour l'API Twitter. Il sait comment accorder un jeton d'accès à une application client pour un utilisateur spécifié, puis signer toutes les demandes avec ce jeton d'accès.
Il offre également d'autres fonctionnalités de développement et de débogage telles que la définition d'alias pour les requêtes courantes, ainsi que la prise en charge de plusieurs jetons d'accès pour basculer facilement entre différentes applications clientes et comptes Twitter.
Twurl peut être installé à l'aide de RubyGems :
gem install twurl
Si vous ne l'avez pas déjà fait, la première chose à faire est de demander un compte développeur pour accéder aux API Twitter :
https://developer.twitter.com/en/apply-for-access
Après avoir obtenu cet accès, vous pouvez créer une application Twitter et générer une clé et un secret client.
Lorsque vous disposez de votre clé consommateur et de son secret, vous autorisez votre compte Twitter à effectuer des requêtes API avec cette clé consommateur et ce secret.
twurl authorize --consumer-key key
--consumer-secret secret
Cela renverra une URL que vous devrez ouvrir dans votre navigateur. Authentifiez-vous sur Twitter, puis saisissez le code PIN renvoyé dans le terminal. En supposant que tout cela fonctionne bien, vous serez autorisé à faire des requêtes avec l'API. Twurl vous le dira.
La requête la plus simple nécessite simplement que vous spécifiiez le chemin que vous souhaitez demander.
twurl /1.1/statuses/home_timeline.json
Semblable à curl, une requête GET est effectuée par défaut.
Vous pouvez implicitement effectuer une requête POST en passant l'option -d, qui spécifie les paramètres POST.
twurl -d ' status=Testing twurl ' /1.1/statuses/update.json
Vous pouvez spécifier explicitement quelle méthode de requête exécuter avec l'option -X (ou --request-method).
twurl -X POST /1.1/statuses/destroy/1234567890.json
Vous pouvez générer un jeton de porteur en utilisant l'option --bearer
en combinaison avec la sous-commande authorize
.
twurl authorize --bearer --consumer-key key
--consumer-secret secret
Et puis, vous pouvez faire une demande en utilisant un jeton de porteur généré en utilisant l'option de requête --bearer
.
twurl --bearer ' /1.1/search/tweets.json?q=hello '
Pour lister vos jetons de porteur générés, vous pouvez utiliser la sous- bearer_tokens
.
twurl bearer_tokens
Cela imprimera une paire de consumer_key et son jeton de porteur associé. Notez que les jetons sont omis de cette sortie.
Vous pouvez accéder à différents hôtes pour d'autres API Twitter à l'aide de l'indicateur -H.
twurl -H " ads-api.twitter.com " " /7/accounts "
Pour télécharger des fichiers binaires, vous pouvez formater l'appel sous forme de publication de formulaire. Ci-dessous, le binaire est "/path/to/media.jpg" et le champ du formulaire est "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
Vous pouvez ensuite utiliser « h » à la place du chemin complet.
twurl h
Les chemins qui nécessitent des options supplémentaires (telles que des paramètres de requête, par exemple) peuvent être utilisés avec des alias de la même manière qu'avec des chemins entièrement explicites, comme vous pouvez vous y attendre.
twurl alias tweet /1.1/statuses/update.json
twurl tweet -d " status=Aliases in twurl are convenient "
La première fois que vous autorisez une application client à effectuer des demandes au nom de votre compte, twurl stocke les informations de votre jeton d'accès dans son fichier ~/.twurlrc
. Les demandes ultérieures utiliseront ce profil comme profil par défaut. Vous pouvez utiliser la sous-commande accounts
pour voir quelles applications client ont été autorisées pour quels noms d'utilisateur :
twurl accounts
noradio
HQsAGcBm5MQT4n6j7qVJw
hhC7Koy2zRsTZvQh1hVlSA (default)
testiverse
guT9RsJbNQgVe6AwoY9BA
Notez que l’une de ces clés client est marquée comme valeur par défaut. Pour modifier la valeur par défaut, utilisez la sous-commande set
, en transmettant ensuite soit uniquement le nom d'utilisateur, s'il est sans ambiguïté, soit la paire nom d'utilisateur et clé consommateur s'il n'est pas sans ambiguïté :
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
Bien que la modification du profil par défaut vous permette de sélectionner le jeton d'accès (OAuth1.0a) à utiliser, les jetons du porteur ne sont liés à aucun profil utilisateur car l'authentification par application uniquement ne nécessite pas de contexte utilisateur. Autrement dit, vous pouvez effectuer une demande d'application uniquement quel que soit votre profil par défaut si vous spécifiez l'option -c
( --consumer-key
) une fois que vous avez généré un jeton de support avec cette clé de consommateur. Par défaut, twurl lit la clé consommateur du profil actuel et son jeton de support associé à partir du fichier ~/.twurlrc
.
Marcel Molina / @noradio
Erik Michaels-Ober / @sferik
et il y en a bien d'autres !