Twurl é como curl, mas adaptado especificamente para a API do Twitter. Ele sabe como conceder um token de acesso a um aplicativo cliente para um usuário específico e, em seguida, assinar todas as solicitações com esse token de acesso.
Ele também fornece outras conveniências de desenvolvimento e depuração, como definição de aliases para solicitações comuns, bem como suporte para vários tokens de acesso para alternar facilmente entre diferentes aplicativos clientes e contas do Twitter.
Twurl pode ser instalado usando RubyGems:
gem install twurl
Se ainda não o fez, a primeira coisa a fazer é solicitar uma conta de desenvolvedor para acessar as APIs do Twitter:
https://developer.twitter.com/en/apply-for-access
Depois de ter esse acesso, você pode criar um aplicativo do Twitter e gerar uma chave e um segredo do consumidor.
Quando você tem sua chave de consumidor e seu segredo, você autoriza sua conta do Twitter a fazer solicitações de API com essa chave e segredo de consumidor.
twurl authorize --consumer-key key
--consumer-secret secret
Isso retornará um URL que você deve abrir em seu navegador. Autentique-se no Twitter e insira o PIN retornado de volta no terminal. Supondo que tudo funcione bem, você estará autorizado a fazer solicitações com a API. Twurl lhe dirá isso.
A solicitação mais simples requer apenas que você especifique o caminho que deseja solicitar.
twurl /1.1/statuses/home_timeline.json
Semelhante ao curl, uma solicitação GET é executada por padrão.
Você pode executar implicitamente uma solicitação POST passando a opção -d, que especifica os parâmetros POST.
twurl -d ' status=Testing twurl ' /1.1/statuses/update.json
Você pode especificar explicitamente qual método de solicitação executar com a opção -X (ou --request-method).
twurl -X POST /1.1/statuses/destroy/1234567890.json
Você pode gerar um token de portador usando a opção --bearer
em combinação com o subcomando authorize
.
twurl authorize --bearer --consumer-key key
--consumer-secret secret
E então, você pode fazer uma solicitação usando um token de portador gerado usando a opção de solicitação --bearer
.
twurl --bearer ' /1.1/search/tweets.json?q=hello '
Para listar seus tokens ao portador gerados, você pode usar o subcomando bearer_tokens
.
twurl bearer_tokens
Isso imprimirá um par de consumer_key e seu token de portador associado. Observe que os tokens são omitidos nesta saída.
Você pode acessar hosts diferentes para outras APIs do Twitter usando o sinalizador -H.
twurl -H " ads-api.twitter.com " " /7/accounts "
Para fazer upload de arquivos binários, você pode formatar a chamada como uma postagem de formulário. Abaixo, o binário é "/path/to/media.jpg" e o campo do formulário é "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
Você pode então usar “h” no lugar do caminho completo.
twurl h
Caminhos que exigem opções adicionais (como parâmetros de solicitação, por exemplo) podem ser usados com aliases da mesma forma que caminhos explícitos completos, como seria de esperar.
twurl alias tweet /1.1/statuses/update.json
twurl tweet -d " status=Aliases in twurl are convenient "
Na primeira vez que você autoriza um aplicativo cliente a fazer solicitações em nome de sua conta, o twurl armazena as informações do seu token de acesso em seu arquivo ~/.twurlrc
. As solicitações subsequentes usarão esse perfil como perfil padrão. Você pode usar o subcomando accounts
para ver quais aplicativos cliente foram autorizados para quais nomes de usuário:
twurl accounts
noradio
HQsAGcBm5MQT4n6j7qVJw
hhC7Koy2zRsTZvQh1hVlSA (default)
testiverse
guT9RsJbNQgVe6AwoY9BA
Observe que uma dessas chaves do consumidor está marcada como padrão. Para alterar o padrão, use o subcomando set
, passando apenas o nome de usuário, se não for ambíguo, ou o nome de usuário e o par de chaves do consumidor, se não for inequívoco:
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
Embora a alteração do perfil padrão permita selecionar qual token de acesso (OAuth1.0a) usar, os tokens de portador não são vinculados a nenhum perfil de usuário, pois a autenticação somente do aplicativo não requer contexto do usuário. Ou seja, você pode fazer uma solicitação somente de aplicativo, independentemente do seu perfil padrão, se especificar a opção -c
( --consumer-key
) depois de gerar um token de portador com essa chave do consumidor. Por padrão, twurl lê a chave do consumidor do perfil atual e seu token de portador associado do arquivo ~/.twurlrc
.
Marcel Molina / @noradio
Erik Michaels-Ober / @sferik
e há muitos mais!