Home > Uncategorized > Dohvaćanje i prikaz Twitter lista pomoću PHP-a

Dohvaćanje i prikaz Twitter lista pomoću PHP-a

December 2nd, 2009 Senko

Jučer su vam pokazali kako na jednostavan i efektan način na stranicu dodati listu prijatelja.

Inspiriran njihovim uratkom i nedavnom Twitter novotarijom - listama, složio sam malu skriptu koja omogućuje dohvaćanje popisa Twitter korisnika sa neke liste (ili popis svih listi nekog Twitter korisnika) i jednostavno ubacivanje u postojeću stranicu.

Prvo demonstracija; kliknite ovdje kako bi vidjeli popis Twitter lista by Nikola (ja sam zasad prelijen složiti svoje liste pa koristim tuđe :), a nakon toga i ljude na njegovoj listi za odstrel.

Kod za to izgleda otprilike ovako:

<?
  # Učitamo pomoćne funkcije za dohvaćanje lista
  require('twitter-lists.php'); ?>

  # Podesimo parametre za pristup Twitter API-u
  $twitter_username = 'vas_twitter_username';
  $twitter_password = 'vas_twitter_password';

  # Zatražimo popis svih Nikolinih lista
  $liste = twitter_get_lists('nikolaplejic');

  # Zatražimo popis ljudi na linux-people listi
  $linuxasi = twitter_get_list_members('nikolaplejic', 'linux-people');

  # Ispišemo jednostavnu UL sa popisom lista
  display_twitter_lists($liste, 'css-class-za-ul');

  # Analogno za popis ljudi u linux-people
  display_twitter_lists($linuxasi, 'css-class-za-ul');

  # Isti popis, ali uz korištenje IMGova za avatare ljudi
  display_twitter_lists($linuxasi, 'css-class-za-ul', true);

Kod za dobavljanje i ispis lista možete pogledati i skinuti odavde. Podaci sa Twittera se pamte 1 sat, što znači da koliko god da vam stranica bude posjećena nećete preći Twitter limit. Ukoliko Twitter servis nije dostupan (zna se dogoditi :), neće doći do greške nego će dobivene liste biti prazne.

CSS spriteovi se ne koriste jer bi ih trebalo ručno generirati što pobija cijelu poantu ovog koda, a automatsko generiranje (iako moguće) bilo bi overkill i presporo i svakako bi bilo tema za neki drugi put.

Kod bi trebao dobro raditi na bilo kojoj novijoj instalaciji PHP-a (specifično, instalacija biti PHP 5.2.0 ili viši i imati uključenu JSON podršku i podršku za otvaranje URLova kao datoteka)

Ukoliko vam se kod čini koristan, slobodno ga koristite na bilo koji način. Još jednom hvala braći Blagonić na njihovom tutorialu, kako zbog korisnosti tako i zbog inspiracije za ovaj post :)

Categories: Uncategorized Tags:
  1. December 2nd, 2009 at 14:05 | #1

    Ajme, pa zar to koristi globalne varijable u funkciji? Eeeeeeeee…

  2. December 2nd, 2009 at 14:22 | #2

    Nisu globalne varijable nego su globalne konstante. Neću valjda komplicirati stvari sa kreiranjem config.php koji se importa iz twitter-lists.php i šiju nazvati vratom samo zato da bi mi kod bio politički ispravan :)

    Za ovako mali snippet koda korištenje globalnih varijabli za config je skroz u redu. Cijela stvar je IMHO čitljivija i jednostavnija (pogotovo npr. dizajnerima koji ne rade s PHPom svakodnevno) nego da sam komplicirao sa klasama, a prenošenje kao parametara u svaku funkciju mi je preružno da uopće pomislim na to.

    Dakle, ovo nije generički Twitter library, nego komad koda za copy-pasteati. Treba imati mjere prilikom apliciranja “best practices” pravila.

  3. December 2nd, 2009 at 14:38 | #3

    Kakve konstante, pa nije to Python… :P

    A što se ostaloga tiče, ajmo se složiti da se ne slažemo. Ja bih uvijek radije vidio kôd u stilu:

    $twitter = new TwitterLists(’myusername’, ‘mypassword’);
    $liste = $twitter->get_lists(’nikolaplejic’);
    $twitter->display_lists($linuxasi, ‘css-class-za-ul’, true);

  4. December 2nd, 2009 at 14:51 | #4

    Slažemo se da se ne slažemo :)

    Kad smo kod tvog primjera … e vidiš … kad već dođem do toga, onda mi je glupo imati TwitterLists, nego bi to razvio u općenit Twitter API wrapper, dodao još par metoda, napisao dokumentaciju, stavio na GitHub… e i onda to više nije snippet kojeg sam napisao u trenutku inspiracije i potrošio sat-dva nego projekt, a odbijam preuzimati tu odgovornost kad već postoji dovoljno Twitter (PHP) klasa na ovom svijetu :)

  5. December 2nd, 2009 at 15:06 | #5

    Hahaha! :D

    Ali u čemu je razlika — napišeš dvije funkcije i uvališ ih u klasu, ili napišeš dvije funkcije koje su u posebnom fajlu?

  6. December 2nd, 2009 at 15:28 | #6

    Dvije funkcije u posebnom fajlu su quick hack. Dvije funkcije u klasi (don’t get me started glede “klasa” u PHP-u :p) u jeziku u kojem klase služe kao namespaceovi su nekompletna softverska komponenta koja možda je reusabilna, ali je generalno rečeno beskorisna :)

    Kad ćemo na neku pivu pa da o našim različitim viđenjima metodologije razvoja softvera raspravimo u nekom ugodnijem okruženju? :)

  7. December 2nd, 2009 at 16:19 | #7

    Kakav ti je to kod bez komentara? :)

  8. December 2nd, 2009 at 16:27 | #8

    @Dado: očit :)

Comments are closed.