Я хотел бы отправить сообщение в Twitter с помощью терминала.
Я попробовал что-то вроде:
curl -u 'TwitterUsername':'TwitterPassword' -d status=”Your Message Here” https://twitter.com/statuses/update.xml
но, похоже, это больше не работает.
Я получаю такую ошибку:
<?xml version="1.0" encoding="UTF-8"?>
<errors>
<error code="53">Basic authentication is not supported</error>
</errors>
Итак, как мы можем отправлять твиты с терминала?
PS: Мотивацией для меня является то, что я часто пользуюсь терминалом Yakuake, и было бы здорово писать твиты оттуда.
решение1
Это сообщение об ошибке связано с тем, чтоTwitter нужен OAuth для аутентификации. Взгляни наTTYtterесли вы не против приложения Perl:
Неееет, не очередной клиент Twitter! Да, очередной клиент Twitter. Разница в том, что вы имеете дело с многофункциональным, полностью текстовым клиентом командной строки Perl.
- В интерактивном режиме это полностью интерактивный клиент с асинхронными фоновыми обновлениями и командами. Используйте его через telnet, ssh или даже фиктивный терминал. Поддерживает Streaming API, цвет ANSI, UTF-8, хэштеги и поиск Twitter!
- Работает в вашей любимой среде: используйте совместимую библиотеку readline (например, нашу собственную Term::ReadLine::TTYtter) или измените методы приглашения и ввода для многих популярных менеджеров окон и сеансов. Или не делайте этого: встроенные базовые функции редактирования и управления экраном.
- Из командной строки используйте его для обновления Twitter в скриптах оболочки, из cron и т. д.
- Безопасность: поддерживает Twitter OAuth и базовую аутентификацию HTTP, а также SSL, если это поддерживается вашим пользовательским агентом.
- Поддержка уведомлений с помощью Growl и libnotify (с возможностью расширения на другие платформы через API).
- Поддержка геолокации: передайте свои GPS-координаты в TTYtter для любого приложения.
- Поддержка списков, включая быстрое создание и изменение, а также объединение списков с вашей временной шкалой в «пользовательские временные шкалы».
- Поддерживает API-интерфейсы, похожие на Twitter, такие как StatusNet и Identi.ca.
- Поддерживает стандартные ленты новостей и автоматически извлекает прямые сообщения и, при необходимости, ответы/упоминания, а также выполняет запросы к API поиска и включает их в вашу ленту новостей.
- Поддержка новых и старых ретвитов.
- Создавайте и используйте свои собственные расширения!
- Запустите его в режиме -daemon и создайте своего собственного Twitter-бота!
TTYtter устарел. Разработка продолжается в форке,устричный.
решение2
ПытатьсяТ. Очень мощный, простой в использовании и написан на Ruby.
Например, вы можете отправлять твиты прямо из терминала, выполнив:
t update "I'm tweeting from the command line."
решение3
Обновление 2016 г.
Есть проект под названиемTwurl- curl с поддержкой OAuth для API Twitter:
Twurl похож на curl, но специально адаптирован для API Twitter. Он знает, как предоставить токен доступа клиентскому приложению для указанного пользователя, а затем подписать все запросы этим токеном доступа.
Он также предоставляет другие удобства разработки и отладки, такие как определение псевдонимов для общих запросов, а также поддержку нескольких токенов доступа для легкого переключения между различными клиентскими приложениями и учетными записями Twitter.
Вместо этого из вопроса:
curl -d status="Your Message Here" https://twitter.com/statuses/update.xml
вы используете что-то вроде этого:
twurl -d status="Your Message Here" /1.1/statuses/update.json
после того, как вы сначала авторизуетесь, как описано вПрочти меня.
(обратите внимание, что вам не обязательно использовать протокол и имя хоста в URL, как в случае с curl)
Первоначально эта программа была написана Марселем Молиной, который в то время работал в Twitter, и сейчас онаофициальный проект Twitterна GitHub.
Многие спрашивают, как именно использовать curl для работы с API Twitter, и twurl, вероятно, является наиболее близким к curl инструментом, который можно найти сегодня.
решение4
Взгляни наРадужный поток- умный/красивый и написан на Python. Он предоставляет радужную оболочку, которая может запускаться
$ rainbowstream
и внутри приложения, обновить статус довольно просто с помощью
[@yourTwitterName]: t tweeting from #rainbowstream