Advertisement
  1. Code
  2. Twitter
Code

Създадено с Twitter API: Добавяне на Приятели, които да следвате

by
Difficulty:IntermediateLength:MediumLanguages:
This post is part of a series called Building With the Twitter API.
Building With the Twitter API: Repeating Tweets From a Group
Building With the Twitter API: Analyzing Your Followers

Bulgarian (Български) translation by Radoslav Ivanov (you can also view the original English article)

Final product image
What You'll Be Creating

Добре дошли! Знам, че мина известно време от последния път когато добавих урок към нашата Twitter API поредица, но просто бях доста зает. Първо беше мозъчния тумор, след това роботизираната радиохирургия, после продължаващата Yii Programming Поредица и свързаните с нея поредици и накрая стартирането на Meeting Planner.

Реших да напиша днешния урок с помощта на Twitter API за добавяне на приятели (както Twitter нарича хората, които следвате).

Защо? Ами, странните Президентски Избори в САЩ от 2016-а, подчертаха, някои злоупотреби и тормоз, които текат всекидневно в Twitter, нещо за което компания е направила много малко, за да го филтрира — и като програмисти, ние знаем, че това не е толкова трудно. Те просто се страхуват да не изгубят аудиторията си от плачевни хейтъри, които носят значителен дял от приходите от реклама.

Много жени спряха да използват услугата, заради постояния тормоз — за което Twitter понякога се извинява, казвайки, че те се опитват да позволят възможност за свободна на словото. Честно казано няма свобода на словото, когато обидите и тормоза са безкрайно настояще.

Също така има статии, които подчертават, че последователите на много от хората са предимно мъже. И при все, че Twitter не изисква информация от потребителите за техния пол, компанията разполага с тази информация анализирайки акаунтите за нейните рекламодатели.

И вие може да надникнете в собствените демографски прогнози на Twitter в страниците им за анализ. Както може да видите по-долу, от Twitter са изчислили, че 69 % от моите последователи са мъже.

Building with Twitter API - Twitter Analytics Gender Estimate

Изгубени в глъчката женските гласове може да са по-трудни за откриване в Twitter. Но те са там. Според репорти на Pew, 21% от жените в Интернет използват Twitter, докато този процент при мъжете е 25%.

Building with Twitter API Twitter Demographics via Pew Research

Така че днес, ще ви покажа как да използвате Yii2 фреймуърк за PHP за да получите достъп до Twitter API и да автоматизирате добавянето на нови последователи в Twitter. (Ако искате да научите повече за Yii2, разгледайте и нашата паралелна поредица Програмиране с Yii2.)

И аз създадох уеб сайт, Twixxr.com, който ще ви демонстрира тази функционалност чрез, която може да добавите видни жени в Twitter към вашия акаунт, за да ги следвате.

Ако имате някакви въпроси или коментари, моля публикувайте ги по-долу в коментарите или ме намерете в Twitter @reifman.

Поглеждайки назад: Twitter API Уроци

Макар, че съм писал няколко Twitter API урока в миналото, всички те са базирани на версия Yii 1.x. Yii2 вече от дълго време се използва и докато Аз все пак съм писал за OAuth ауторизация, не съм писал за аспектите отностно тази част от API, които засягат вашия собствен акаунт и/или ауторизираните акаунти за ъпгрейднатата версия на фреймуърка. И това не беше лесно - там все още нямаше много Yii2 плъгини за Twitter.

Ето и някои от предишните ми уроци за да ги прегледате:

Днешният урок, не просто ще ви преведе през използването на OAuth за удостоверяване на потребителския профил, но също така ще ви покаже как да добавите приятели в профила си с помощта на достъпа, който са ви дали.

Използване на TwitterOAuth PHP Библиотека

За съжаление, не можах да намеря стабилно работеща добавка за Yii2, така че ще използвам общата Twitter OAuth PHP Библиотека за да създам, мой собствен Twitter модел.

Много от комплексните API интерфейси не предоставят добра документация, но в случая оценявам подробната стъпка по стъпка документация която TwitterOAuth предоставя. Това е невероятно полезно:

Building with the Twitter API Step from TwitterOAuth Walkthrough

Продуктови Цели на Услугата

Twixxr услугата ще удостовери посетителите на сайта и след това автоматично ще добави нови приятели към техните акаунти. Приятелите ще бъдат избрани от над 600 влиятелни жени, които съм идентифицирал в Twitter:

Building Twitter API Twixxr Service Home Page

Нека да започнем с разходката през кода.

Удостоверяване на Потребител

Моят TwitterController.php има два основни метода, Request и Return. Ето Request метода:

Twitter.php модела извикан в new Twitter(); получава уникален getAuthorizeURL() за да пренасочите потребителя към Twitter страницата за удостоверяване, например: https://api.twitter.com/oauth/authorize?oauth_token=q-7ChxxxxxxxxnpXAAABzzzzzzz6E:

Building with Twitter API OAuth Authorize Redirect

След като потребителя ауторизира вашето приложение в Twitter, той ще бъде пренасочен обратно към нашия Return метод:

Twitter модела използва вашият consumer key и consumer secret за вашето приложение, които сте получили при регистрация в услугата:

Return метода показан по-горе след като потребителя е регистриран и е записал неговия ключ за достъп до акаунта - това ви позволява да правите API заявки от тяхно име за неопределен период от време:

За достъп за четене и запис в техните акаунти, аз съм удължил Auth таблицата от опростеното идентифициране описано в нашата Стартъп поредица Опростен Onramp с OAuth за да включа тези допълнителни ключове за верификация.

Аз също ви препоръчвам да преминете наживо стъпка по стъпка в TwitterOAuth. Това е един отличен пример, показващ всичко, което може да правите със собствения си профил в Twitter.

Импортиране на Имена, Профилна Биография и Снимки

След това създадох Twixxr.php модела, който ще осигури редица важни функции, специфични за услугата. Първо създадох Twixxr::loadProfiles() който да синхронизира имената, биографиите и Twitter свързаните броячи, например профилните снимки, статус постовете, последователите, последваните от всяка идентифицирана жена в моята статична база данни от елементи.

Това се нарича от конзолна cron задача, която ще опиша по-късно в Yii2 поредицата. Така че тези профили са синхронизирани постепенно и многократно през определени интервали през няколко дни.

Следва: Създаде на Приятелство

Не съм го отбелязъл в детайл тук, но като цяло съм създал Log таблица от индивдуални заявки за всеки потребител и акаунт на жена. С други думи, Samuel би имал 500 записа заявки да добави като приятел всяка жена от базата данни.

Първо, обаче, ще се уверя, че Samuel ( и всеки друг потребител на Twixxr ) следва Twixxr_com акаунта.

Преди cron задачата да обработи тези команди, тя рефрешва Twitter ауторизацията и конекцията за Samuel и за всеки индивидуален потребител на подходящия етап:

След това, ето и Twitter::createFriend($screen_name) метода:

След това, той прави това за всички заявки от жени поискани от Samuel както е детайлно описано в Log таблицата - и разбира се, много неща се случват по-долу, които ще опиша:

Twitter API имат много стриктни ограничения отностно броя на заявките, което прави използването на техните API, трудно от време на време. Cron задачата горе създава приятелство за седем целеви акаунта наведнъж, преди да превключи към друга потребителска заявка и да я извика отново по-късно.

Това тук е Twitter::getFriendshipsShow(), който проверява дали този акаунт вече следва желания акаунт. В горния код, той прескача заявки, които са излишни, за да се вмести в ограничението на скоростта за изпълнение на заявки.

В близко бъдеще ще приложа Twitter's bulk API за това, правейки само една заявка вместо стотици за всеки потребител използващ get/friendships/lookup. Обърнете внимание, че ще ви трябва акаунт на разработчик за достъп до тази страница.

Unfollow: Прекратяване на Приятелство

Вие също така можете да отмените тези приятелства чрез API:

Аз записвам в лог всяка конекция, която Twixxr прави, и ако Twitter API лимитите бяха по-малко обременяващи и отнемащи време, щях да позволя на потребителите да имат функция за отмяна в Twixxr, за да прекратят следването на жените, ако не харесват всичкит тези нови акаунти.

Производителност

Направих много в Twixxr за управление на производителността. Като цяло, направих log таблица, за да записвам бързо всички потребителски заявки за пирятелство. Но всички те се обработват във фонов режим.

За съжаление Twitter API не дава възможност за публикуване на списък на акаунти за следване в насипно състояние. Така просто няма начин, това да стане в реално време докато потребителя е на вашия сайт.

Така че потребителят отговор на Twixxr заявката е незабавна, но това може да отнеме няколко часа или повече за всички акаунти да бъдат последвани.

Тук е TwixxrController.php следвайки All метода:

Тук са Twixxr::followAll и followCount методите, които също се използват от номерираните бутони по-горе, за следване на 100, 200, 300 жени и т.н.

Те просто създават Log записи за всяка заявка за приятелство за да може cron задачата да ги обработи във фонов режим.

Какво следва?

Надявам се че сте доволни от наученото отностно използването на TwitterOAuth.php в Yii2 и как да удостоверите и приложите Twitter API от името на потребителите на сайта ви.

Следващото за което бих искал да използвам Twitter API е да анализирам моите собствени последователи. Имам съмнение, че огромна част от Twitter последователите ми са спам ботове и бих искал да използвам API за да докажа това. Останете на линия.

Ако имате някакви въпроси или предложения, моля публикувайте ги в коментарите. Ако искате да сте информирани за бъдещи мои Envato Tuts+ уроци и други серии от уроци, моля, посетете страницата ми като инструктор или ме последвайте на @reifman. Определено вижте и моите стартъп серии и Meeting Planner.

Сродни Линкове

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.