Четверг, 01 февраля 2018 18:59

Фолловинг и анфолловинг в Твиттере: исследуем Twitter API

Оцените материал
(0 голосов)

Статья продолжает серию материалов, посвященных разработке Twitter-инструментария на основе фреймворка Ruby on Rails.

English version

 

 

И имеет своей целью провести интересное, на взгляд автора, сравнение, представленное далее двумя снимками консоли, иллюстрирующими фолловинг и анфолловинг твиттер-аккаунтов. И первое и второе весьма несложно на основе the Twitter Ruby Gem, a Ruby interface to the Twitter API:

 

client.follow("gem")
client.unfollow("gem")

 

Dev banner 1

Примечание. Логика rails-приложения показана в этом материале блога.

 

На первый взгляд, хотя и приводящие к диаметрально противоположным результатам, но на уровне API принципиально ничем, вероятно, не отличающиеся действия. Хотите взглянуть, как это выглядит на практике, а не в теории, и какой разительный контраст из себя представляет? Схема работы, которой будем придерживаться, очень проста: сортируем на два массива всех фолловеров и всех френдов аккаунта, сравниваем, и в результате получаем третий массив, который: 1. содержит список аккаунтов, читающих  наш аккаунт и которые мы пока не читаем, соответственно, их будем фолловить, или: 2. содержит список аккаунтов, которые мы читаем, но которые не читают нас, их мы анфолловим. На данном этапе мы еще худо-бедно, посредством ряда ухищрений, но все-таки справляемся с лимитами Твиттера, которые уже весьма ощутимо дают о себе знать; это если twitter-аккаунт у нас более-менее раскрученный, и насчитывает хотя бы тысяч пятнадцать или двадцать последователей. А вот затем начинается уже самое интересное, взгляните: итак, получили мы с вами фолловеров и фолловингов (фолловинг — синоним френдинга, в терминологии Рунета), сформировали массив твиттер-аккаунтов для дальнейших действий, и... видим что Twitter API, через посредство которого мы работаем, дает нам возможность зафолловить (даже в ответ) всего лишь несколько акков, после чего неизбежно следует таймаут, на время которого приходится "спасать" наш rails-app, дабы он не завершил работу:

 

rescue Twitter::Error::TooManyRequests

 

The Twitter Ruby Gem, a Ruby interface to the Twitter API: follow
The Twitter Ruby Gem, a Ruby interface to the Twitter API: follow

 

А теперь попробуем запустить, согласно изложенному выше алгоритму действий, вместо фолловинга - анфолловинг, есть некоторая надежда, что Его Величество Твиттер отнесется к этому чуть более благосклонно... хм, взгляните на следующий снимок. Надежды были не напрасны: Твиттеру, походу, вообще пофиг, кого там и сколько мы анфолловим. На здоровье:

 

The Twitter Ruby Gem, a Ruby interface to the Twitter API: unfollow
The Twitter Ruby Gem, a Ruby interface to the Twitter API: unfollow

Последнее изменениеВторник, 07 декабря 2021 21:30

Оставить комментарий

Добавьте ваш комментарий

Poker onRails

Заказать сайт

Веб-разработка. Заказать сайт

Вы можете заказать сайт-визитку, блог, корпоративный сайт, интернет-магазин или коммерческий web-портал.