Twurl похож на Curl, но создан специально для Twitter API. Он знает, как предоставить токен доступа клиентскому приложению для указанного пользователя, а затем подписывать все запросы с помощью этого токена доступа.
Он также предоставляет другие удобства разработки и отладки, такие как определение псевдонимов для общих запросов, а также поддержку нескольких токенов доступа для легкого переключения между различными клиентскими приложениями и учетными записями Twitter.
Twurl можно установить с помощью RubyGems:
gem install twurl
Если вы еще этого не сделали, первое, что вам нужно сделать, — это подать заявку на получение учетной записи разработчика для доступа к API Twitter:
https://developer.twitter.com/en/apply-for-access
Получив этот доступ, вы можете создать приложение Twitter и сгенерировать потребительский ключ и секрет.
Когда у вас есть потребительский ключ и его секрет, вы разрешаете своей учетной записи Twitter отправлять запросы API с этим потребительским ключом и секретом.
twurl authorize --consumer-key key
--consumer-secret secret
Это вернет URL-адрес, который вам следует открыть в браузере. Выполните аутентификацию в Twitter, а затем введите возвращенный PIN-код обратно в терминал. Если все работает хорошо, вам будет разрешено делать запросы через API. Твурл расскажет вам об этом.
Самый простой запрос просто требует, чтобы вы указали путь, который хотите запросить.
twurl /1.1/statuses/home_timeline.json
Как и в случае с curl, запрос GET выполняется по умолчанию.
Вы можете неявно выполнить запрос POST, передав опцию -d, которая определяет параметры POST.
twurl -d ' status=Testing twurl ' /1.1/statuses/update.json
Вы можете явно указать, какой метод запроса выполнять, с помощью опции -X (или --request-method).
twurl -X POST /1.1/statuses/destroy/1234567890.json
Вы можете сгенерировать токен носителя, используя опцию --bearer
в сочетании с подкомандой authorize
.
twurl authorize --bearer --consumer-key key
--consumer-secret secret
Затем вы можете сделать запрос, используя сгенерированный токен носителя, используя опцию запроса --bearer
.
twurl --bearer ' /1.1/search/tweets.json?q=hello '
Чтобы вывести список сгенерированных токенов на предъявителя, вы можете использовать подкоманду bearer_tokens
.
twurl bearer_tokens
Это напечатает пару Consumer_key и связанный с ним токен носителя. Обратите внимание, что токены в этом выводе опущены.
Вы можете получить доступ к другим хостам для других API Twitter, используя флаг -H.
twurl -H " ads-api.twitter.com " " /7/accounts "
Чтобы загрузить двоичные файлы, вы можете отформатировать вызов как сообщение формы. Ниже двоичный файл — «/path/to/media.jpg», а поле формы — «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
Затем вы можете использовать «h» вместо полного пути.
twurl h
Пути, требующие дополнительных параметров (например, параметров запроса), могут использоваться с псевдонимами так же, как и с полными явными путями, как и следовало ожидать.
twurl alias tweet /1.1/statuses/update.json
twurl tweet -d " status=Aliases in twurl are convenient "
Когда вы впервые разрешаете клиентскому приложению выполнять запросы от имени вашей учетной записи, twurl сохраняет информацию о вашем токене доступа в своем файле ~/.twurlrc
. Последующие запросы будут использовать этот профиль в качестве профиля по умолчанию. Вы можете использовать субкоманду accounts
, чтобы увидеть, какие клиентские приложения были авторизованы для каких имен пользователей:
twurl accounts
noradio
HQsAGcBm5MQT4n6j7qVJw
hhC7Koy2zRsTZvQh1hVlSA (default)
testiverse
guT9RsJbNQgVe6AwoY9BA
Обратите внимание, что один из этих потребительских ключей помечен как ключ по умолчанию. Чтобы изменить значение по умолчанию, используйте подкоманду set
, передав затем либо только имя пользователя, если оно однозначное, либо пару имени пользователя и потребительского ключа, если оно не является однозначным:
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
Хотя изменение профиля по умолчанию позволяет вам выбрать, какой токен доступа (OAuth1.0a) использовать, токены-носители не связаны ни с какими профилями пользователей, поскольку проверка подлинности только для приложений не требует пользовательского контекста. То есть вы можете сделать запрос только для приложения независимо от вашего профиля по умолчанию, если вы укажете опцию -c
( --consumer-key
) после создания токена-носителя с этим потребительским ключом. По умолчанию twurl считывает потребительский ключ текущего профиля и связанный с ним токен носителя из файла ~/.twurlrc
.
Марсель Молина / @noradio
Эрик Майклс-Обер / @sferik
и есть еще много других!