Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Twitter
Code

Paggawa ng Twitter API: Pagsuri ng Iyong Tagasunod

by
Difficulty:IntermediateLength:LongLanguages:
This post is part of a series called Building With the Twitter API.
Building With the Twitter API: Creating Friends to Follow
Using the Twitter API to Tweet Repetitive Content

Tagalog (Wikang Tagalog) translation by Anna Nelson (you can also view the original English article)

Final product image
What You'll Be Creating

Panimula

Welcome sa bagong kabanata ng ating Twitter API series. Sa ating bagong kabanata, gumawa ako ng Twixxr.com kung saan madidiskubre mo ang  mga makapangyarihang babae sa Twitter na maaari mong sundan. Ngayon, bibigyan ko ng pansin ang sarili kong mga tagasunod.

Habang hindi ako gumagamit ng Facebook simula pa noong 2013, nanatili naman akong aktibo saTwitter kahit inuulan nila ang aking feed ng ads at nagiging dahilan ng aking pagkairita dahil sa pananamantala ng gamit nito.

Kamakailan, nagsimula akong umani ng tagasunod ng medyo mabilis.Inaasahan ko na makakakita ako ng maraming sagot sa aking mga tweets.Sa totoo lang, nasorpresa ako sa kaunting sagot sa Twitter para sa pangkaraniwang tao.

Building With the Twitter API reifman profile on twitter with verified checkmark

Mayroon akong halos 1,900 na tagasunod, subalit malimit na may mag-comment o retweet sa mga bagay na sa tingin ko ay importante at interes ng pangkalahatan. Halimbawa, wala ni isa na nagbahagi ng aking piece tungkol sa hindi nailathala na balita sa panggagahasa sa Seattle o komentaryo kay Bill Gates tungkol sa kanyang nakakagulantang na pagkaipokrito.

Sa mahabang panahon nais kong tingnan ng maigi ang aking mga tagasunod sa Twitter at sagutin ang ilang katanungan: Sino talaga ang sumusunod sa akin? At bakit hindi sila aktibo? Posible kaya na 10% ng aking tagasunod ay hindi totoong tao?

Ang Twitter ay may isyu sa paghahanap ng bibili, at maaaring may kinalaman ito dito.

Ang Twitter API ay magandang instrumento para imbestigahan ito. Tama marami itong rate limits na mas nagpapakumplikado sa kahit na simpleng pagsusuri ng iyong tagasunod. Sa kabanata ngayon, ipapakita ko kung paano ko trinabaho ang rate limits para tantyahin at gumawa ng scoreboard ng aking mga tagasunod.

Kung mayroon kayong mga tanong o feedback, paki-post ang mga ito sa baba sa comment o kontakin ako Twitter @reifman.

Suriin ang Iyong Tagasunod sa Twitter

Building With the Twitter API Initial scoreboard

Sa itaas, makikita mo ang aking pangunahing scoreboard na ginawa. Ang kabanata ngayon ay mas pagtutuunan ng pansin ang infrastructure at approach na ginawa ko. Sana magkaroon ako ng pagkakataon na mas mapaganda ang scoring mechanism.

At oo, makikita mo sa taas, mga kilalang gay rights leader at sex advice columnist Dan Savage na sumusunod sa akin subalit hindi nagri-retweets sa kahit na anong aking ibahagi. Kung may oras pa ngayon, susuriin natin ito para sagutin ang importanteng tanong: totoo ba siya, isang robot, o kaya sinusunod lamang ako para sa personal na sex advice? Ano ang matututunan natin sa account niya kung makikisalamuha ba siya sa akin sa Twitter o, sa bagay na iyan, sa ibang mga sumusunod sa akin?

Ang scoreboard ay kadalasan prototype na ginawa ko maliban sa Twixxr code sa huling kabanata, subalit hindi ito live demo para magamit ng tao. Ibinabahagi ko para may matutunan kayo dito at gumawa kayo ng sarili niyo.

Narito ang mga pangunahing element ng code: 

  • Paggawa ng database para ilagay ang aking mga tagasunod at katulad na data.
  • Pag download ng tagasunod sa pahina ng 20 ng bawat tagasunod.
  • Pag-track ng cursors para sa mga pahina habang nagda-download ako ng 15 pahina kada rate limited window.
  • Pagtago ng data na nakuha tungkol sa aking mga tagasunod sa database.
  • Paggawa ng prototype scoring algorithm para itala lahat ng tagasunod.
  • Paggawa ng view para makita ang scoreboard.

Pagpunta sa Code

Paggawa ng Database Table Migrations

Gumawa ako ng tatlong magkakaibang tables para itago lahat ng data at para makatulong ito sa akin sa paggawa ng Twitter API rate limiting. Kung hindi niyo kabisado ang Yii database migrations, tingnan ang Paano Gumawa ng Program gamit ang Yii2: Paggawa ng Database at Aktibo na Talaan.

Una, pinahaba ko ang SocialProfile table para ilathala ang maraming data mula sa accounts ng mga tagasunod katulad ng kung ito ay nasuri, ang kanilang lokasyon, at ilang items na kanilang naging paborito:

Sumunod, gumawa ako ng indexing table na tinawag na SocialFriend para makita ang mga tagasunod para sa natatanging accounts. Kung mapagdesisyunan ko na gawin itong serbisyo ng pormal sa publiko, kakailanganin koi to. Nili-link nito ang User table sa tagasunod ng gumagamit sa SocialProfile table.

Sunod, ng Twitter API kailangan na titingnan mo ang requests ng 20 na tagasunod ng paisa isa.Para malaman ang susunod na pahina, kailangan mong  hanapin ang cursors, essentially tags, na magmamarka ng susunod na pahina na gagawin.

Dahil hanggang 15 requests lang para sa tagasunod bawat 15 minuto ang ina-allow, kailangan mong itago ang cursors sa database. Ang table ay tinatawag na SocialCursor:

Sa kalaunan, gagawa ako ng background cron tasks para gawin lahat anglahat ng ito, subalit para sa prototype sa araw na ito, ginagawa ko ito ng mano mano.

Paglikom ng Tagasunod at Ang Kanilang Account Data

Sumunod, gumawa ako ng method Twitter::getFollowers() para makagawa ng request. Narito ang basics ng code:

Kumukuha ito next_cursor at paulit ulit na magtatanong ng tagasunod$followers = $this->connection->get("followers/list",['cursor'=>$next_cursor]), hanggang sa maabot nito ang rate limits.

Ang resulta ay magmumukhang katulad nito habang gumagawa ito sa bawat pahina ng 20 resulta:

Ang data ay nakatago ng $sp->add($user_id,$u); na pamamaraan. Ang SocialProfile::add() ay ibang bersyon ng fill() na pamamaraan na galing sa Twixxr na pagtuturo. Itinatago nito ang maraming data at mina-manage ang SocialFriend index:

Nakasulat ito para ma-save ang bagong records o i-update ang lumang records para sa mga susunod na pahanon maaari mong makita ang data ng iyong mga tagasunod at i-update ito ng madalas, matatakpan na ang lumang data.

Ang huling kabanatang nito sa dulo ay sisiguraduhin na mayroong SocialFriend index sa pagitan ng User table at SocialProfile table.

Pagtatala ng Tagasunod sa Twitter

Building With the Twitter API - Accounts with huge numbers of friends unlikely to read my tweets

Marami akong layunin para sa pagtatala ng aking Twitter:

  • Tanggalin ang accounts ng mga sumusunod sa sumusunod sa kanila: Halimbawa, mayroon silang 12,548 na tagasunod at may sinusundan na 12,392 na tao(tingnan ang nasa itaas).  
  • Tanggalin ang accounts na may sinusundan na mahigit 1,500 accounts na imposibleng titingnan man lamang ang aking ibinabahagi. Halimbawa, si Dan Savage ay may sinusundan na 1,536 na tao.
  • Tanggalin ang accounts na may kakaunting posts o kaya kakaunti lang ang accounts na sinusundan, na parang hindi na aktibong accounts.
  • Tanggalin ang accounts na may kaunting favorites-maaaring sila ay robots, hindi talaga gumagamit ng app.

Ganoon din, gusto kong i-highlight ang ibang mga positibong aspeto:

  • Accounts na nasuri
  • Accounts na maraming tagasunod
  • Accounts na may hindi bababa sa 1,000 na tao na sinusundan-mas epektibo para sa akin

Narito ang ilang pangunahing code galing sa SocialProfile::score() na pinagtuunan ng pansin ang ilan sa  mga positibio:

Narito ang ilang code na magtatanggal ng ilan sa mga pangit na accounts:

Malinaw naman na maraming pwedeng laruin dito at iba’t ibang paraan para mas mapaganda ito. Sana mas marami akong panahon para bigyan ng oras ito.

Habang gumagana ang pamamaraan na ginamit, ganito ang itsura nito, subalit ina-update nito ang SocialProfile table na may scores habang tumatakbo ito:

Pagpapakita ng Scoreboard

Ang dati ng Yii’s grid ay mas nagpapadali na ipakita ang SocialProfile table at gawin ang scoreboard columns ayon sa iyong kagustuhan.

Narito ang SocialProfileController::actionIndex():

At narito ang grid view customized:

Narito kung ano ang itsura ng top scores gamit ang aking inisyal na paraan:

Building With the Twitter API - Top Scoring Accounts

Maraming paraan para mas mapaganda at i-tune ang scoring. Inaabangan ko iyong panahon na mas malalaro ko ito.

At mas marami akong gustong isulat na code para sa at mas palawakin ang gamit ko ng API, halimbawa:

  • Gamitin ang PHP gender para tanggalin ang kumpanya sa tao(ang kumpanya ay wala namang masyadong interaksyon).
  • Tingnan ang dalas ng pag-post na ginagawa ng tao at huling oras na gumamit sila ng Twitter.
  • Gamitin  ang Twitter’s search API para makita sinong tagasunod ang totoong nagkaroon ng interaksyon sa aking content.
  • Magbigay ng feedback sa scoring para simulant ito.

Pagsasaalang-alang ng Susunod na Hakbang

Sana ay pumukaw sa inyo ang scoring approach. Ang dami pang paraan para mas mapaganda ito. Malaya itong paglaruan at i-post ang iyong ideas sa baba.

Kung mayroon kayong katanungan o suhestyon, maaari lamang na i-post ang mga ito sa comments. Kung nais niyong masundan ang aking susunod na Envato Tuts+ tutorials at iba pang serye, bisitahin lamang ang pahina ng aking guro o sundan @reifman. Siguraduhing tingnan ang aking startup na kabanata at Meeting Planner.

Related Links

Advertisement
Advertisement
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.