Twitter API. Высокие Технологии против Тоталитаризма и на службе Демократии

Время от времени автор блога с несказанной горечью в голосе в очередной раз выговаривает самому себе…

…несмотря на то, что реклама ему, как и любому предпринимателю, необходима как воздух — привлечь внимание широкой аудитории к собственной своей скромной персоне для него практически недостижимо.

Twitter API. Высокие Технологии против Тоталитаризма и на службе Демократии.
Twitter API. Высокие Технологии против Тоталитаризма и на службе Демократии.

Посудите сами. Стыдно признаться, но полностью равнодушен к инстаграму и не чувствую ни малейшего влечения к новомодному clubhouse… отрезанный ломоть, если уж быть честным: модных стримов не веду, отечественные аминазины/галоперидолы в качестве американских пищевых добавок для похудания не рекламирую, даже яйца к брусчатке мостовой а-ля бесстрашный художник-акционист приколотить не сумею. Что называется, полный лох. На коммерческо-скоростной трассе судьбы обгоняют меня все, кому не лень: футболисты, чьи отчаянно-смелые эксперименты в жанре самопиара на мобильных девайсах последнее время бьют все мыслимые и немыслимые в мире спорта рекорды… модные и крутые представители московской богемы, ввиду перебоев в финансировании временно обратившие творческие усилия на пронзительно-экзальтированные описания сновидений, которые даже Фрейда заставили бы в сердцах пересмотреть ряд основополагающих своих тезисов… жизнь, что называется, грациозно прошла мимо, игриво улыбнувшись при этом с экрана ноутбука, открытого на страничке сайта виртуальных знакомств.

Да, но ведь зарабатывать как-то надо, пусть даже живешь в стране, с почестями и хоругвями торжественно похоронившей и малый и средний бизнес. И тут припомнилась мне одна книжка, от польского, если не ошибаюсь, автора (имени сейчас, к сожалению, не вспомню). Написанная в жанре фэнтэзи, книга быстро забылась, но положенная в основу идея оказалась неожиданно хороша… заключалась она в том, что всякая-разная сказочная нечисть — практически любая, без разбору и конфессиональных различий; ведьмы, лешие, бабы-яги, черти и много-много-много всякой-другой — априори должна быть занесена в реестр сил Добра, Света и Справедливости… по одной простой причине: способность молниеносно перемещаться в пространстве, т. е. передавать с огромной скоростью по общемировым сетям массивы информации в любую точку известной нам области Вселенной — автоматически делает обладателя данной способности в конечном итоге приверженцем Прогресса и противником Тьмы.

Неплоха ведь идейка, а? — согласитесь, на редкость актуальна и злободневна. Бьет наотмашь по всем поползновениям в области самых разных форм изоляционизма, «суверенного рунета», «у нас свой путь» и всему-другому-прочему в скрепоносной и изрядно коммерциализированной этой (куда уж бедолаге-автору) области. Припомнив пару лет назад случившуюся попытку запрета Телеграм, а также все более и более параноидальные мессаджи высокого начальства в последнее время — окончательно приходим к выводу, что рациональное зерно здесь имеет место быть.

Ответный фолловинг и ретвиты, rescue и Active Job. Инструментарий для работы с Twitter Toolkit on Rails.
Ответный фолловинг и ретвиты, rescue и Active Job. Инструментарий для работы с Twitter Toolkit on Rails.

Таким образом, вашему вниманию сегодня — продвинутый и изощренный (чтобы не сказать извращенный) комбайн для удобной и комфортной работы с Twitter API. Написанный на платформе фреймворка Ruby on Rails, использует Active Job для формирования асинхронных заданий и постановки в очередь, что делает возможным мультипоточное (с этим осторожнее!) использование. Бэкенд очередей не определен, в немалой степени разработка является концептом; при желании/необходимости несложно подключаются sidekiq и sidekiq-cron, например. Интерфейс приложения (по сути, это попытка реализации веб-интерфейса Twitter API, хотя Twitter Toolkit on Rails легко запускается и на обычном ПК) построен на Bootstrap 4 и jQuery, молниеносные (да!) и не требующие перезагрузки страницы flash-уведомления выполнены с использованием технологии ajax. Аутентификация пользователей — на основе devise.

Ответный фолловинг и ретвиты, rescue и Active Job. Инструментарий для работы с Twitter API.
Ответный фолловинг и ретвиты, rescue и Active Job. Инструментарий для работы с Twitter API.

Инструментарий умеет на данный момент ответный фолловинг и анфоловинг в полностью автоматических режимах, парсер твитов и автопостинг, ретвиты по заданным (см. скриншот) ключам или тэгам; также способен формировать список для ответного фолловинга вручную и перечень фолловеров (в HTML и csv) произвольных твиттер-аккаунтов. Примечание: программа не предназначена для коммерческих накруток десятков или сотен твиттер-аккаунтов горе-сеошниками и директологами всех мастей, да это и невозможно сегодня, Twitter API не позволит. В случае попытки злоупотребления получите в ответ если и не полную блокировку твиттер-аккаунта, то что-то вот такое, например:

[ActiveJob] [PostingJob] [e4a4e70f-aa08-4ae1-986f-1064f10c6b56] Error performing PostingJob (Job ID: e4a4e70f-aa08-4ae1-986f-1064f10c6b56) from Async(default) in 156362.06ms: Twitter::Error::Unauthorized (Could not authenticate you.)

Фолловинг (даже ответный) через Twitter API искусственно затруднен сегодня программистами Твиттера. Как показывает скриншот, приложению периодически приходится делать паузы, реализованные посредством rescue, во всяком случае, на раскрученных (10 — 15К фолловеров) аккаунтах (да, их есть у меня, не сомневайтесь). Для твиттер-аккаунтов, насчитывающих относительно небольшое количество читателей — проблем с фолловингом, по моим наблюдениям, нет, или почти нет. Все остальные перечисленные выше функции работают в штатном режиме.

Twitter API. Высокие Технологии против Тоталитаризма и на службе Демократии.
Twitter API. Высокие Технологии против Тоталитаризма и на службе Демократии.

Приложение опубликовано под свободной лицензией, welcome. Ссылка на repo, где всегда доступна последняя ревизия кода.

How to Get Started? Понадобятся ключи доступа к Twitter API, вот уже несколько лет запросы их проходят ручную модерацию (спецом за TOS Твиттера не слежу, но, судя по характеру работы API — там вряд ли что-то изменилось). Совет: если токены доступа у вас «при наличии отсутствия» и вы намерены их запросить — так или иначе пригодятся, весчь в хозяйстве нужная и полезная — ни в коем случае не указывайте причиной их запроса намерение использовать в работе с Твиттером этот программный код. По опыту, последует немедленный и категорический отказ, который случится тем более категоричным, если у вас еще и российский IP. Увы, спасибо здесь следует сказать кремлеботам и иже с ними, обижаться не на кого, кроме как на самих себя; думаю, все помнят эту тупую, бездарную историю накруток в американском Твиттере перед выборами. Чтож, заслужили. For example, французский мой коллега, помнится, однажды понтанулся мне, зараза, что он-то, дескать, получил ключи Твиттера без труда… завидую ему белой и черной, всех оттенков завистью, и дело тут, блять, вовсе не в ключах.

От вас потребуют аргументировать ваш запрос, придумайте какую-нибудь нейтральную причину. Скажем, у вас личный форум на kunena, и там в настройках надоть указать токены Twitter API, чтобы у пользователей была возможность прикреплять твиты к постам (это на самом деле так). Или любой иной резон; российское вранье всем осточертело, правда, но тут уж ничего не поделаешь.

Метки:

Ваш комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *