Integracija Twittera sa ASP.NET aplikacijama

Integracija Twittera sa ASP.NET aplikacijama

U ovom članku pojašnjavamo načine integracije popularne socijalne mreže Twitter i pratećih servisa sa ASP.NET aplikacijama.


Pojavom i popularizacijom socijalnih mreža te raznih video servisa sa ogromnim brojem korisnika, te svih drugih prednosti koje donose ovi servisi, integracija web aplikacija sa takvim servisima je postala neophodna.

Bilo da je riječ o portalu, odnosu sistemu za upravljanje sadržajem, e-commerce aplikaciji, blogu, ili jednostavnoj web stranici kompanije, povezivanje sa ovim servisima omogućuje da se sadržaji koje nudite, bilo da je riječ o vijestima, specifikacijama proizvoda, video materijalima i slično, prezentira većem broju korisnika, steknu novi korisnici/klijenti, poveća posjećenost stranice, poveća marketinški doseg kompanije/branda i mnoge druge prednosti.

U nastavku možete očekivati seriju članaka za sljedeće servise:
- Twitter (200.000.000+ korisnika, 460.000+ novih korisnika dnevno, 155.000.000+ tweetova dnevno…)
- Facebook (500.000.000+ korisnika, korisnici provedu 700.000.000.000+ minuta mjesečno na FB, 250.000.000+ korisnika ima interakciju sa FB putem eksternih stranica…)
- YouTube (2.000.000.000+ pregleda dnevno, 24h materijala svaki dan se uploaduje, korisnici prosječnu provedu 15+ minuta na YT...)

Integraciju aplikacija sa Twitterom se može učiniti na više načina:

- Putem predefinisanih načina
- API

Predefinisani načini integracije

Follow Button



Kreiranje dugmića koji se može postaviti bilo gdje u aplikaciji/stranici sa kojim korisnici mogu biti preusmjereni direktno na Twitter profil.

Tweet Button

Kreiranje dugmića koji se najčešće postavlja uz neki sadržaj aplikacije/stranice, a sadrži broj korisnika koji su podijelili taj sadržaj na svoje profile, ali i dugme sa kojim korisnik sadržaj koji može podijeliti na vlastite profile.

Widgeti

- Profile - Kreiranje widgeta sa kojim se može prikazati lista tweetova određenog profila
- Search - Kreiranje widgeta za prikaz real-time rezultata pretrage određenog pojma
- Faves - Kreiranje widget za prikaz omiljenih (Favorites) tweetova nekog profila
- List - Kreiranje widget za prikaz omiljenih tweetova sa liste profila

Web Intents

Omogućavaju da korisnici postaju tweetove, odgovaraju, re-tweetaju, označavaju omiljene te prate nove profile a sve u sklopu neke eksterne lokacije bez potrebe da se napušta aplikacija, radi sa API-em itd. Sve se odvija putem linkova, javascript koda i popup prozora.

API

Twitter API se sastoji u suštini iz tri dijela: REST API (Osnovne stvari kao što su tweetanje, following itd.), Search API (pretraga tweetova, dobijanje top tweetova itd.) i Streaming API (koristi se za real-time streamanje tweetova, HTTP dugoročne konekcije itd.).

Za integraciju putem API-a mogu se koristiti i neke od dostupnih biblioteka koje olakšavaju posao a od kojih se posebno izdvajaju:

- DotNetOpenAuth - OpenID, OAuth i InfoCard biblioteka
- Hammock - HTTP API klijent koji podržava OAuth autentifikaciju
- LINQ to Twitter - LINQ provider za Twitter API
- OAuth-Dot-Net - OAuth bibliteka za klijente i provajdere
- TweetSharp - Twitter API biblioteka bazirana na Hammocku
- Twitterizer - Twitter API biblioteka
- TwitterVB - VB.NET Twitter API biblioteka

Autentifikacija i korištenje Twitter API-a se obavlja putem OAuth-a. OAuth je protokol koji omogućuje API za sigurnu autentifikaciju sa web i desktop aplikacija putem jednostavnih metoda i standarda. Ukratko OAuth je protokol koji je zamišljen da osigura sigurnu autentifikaciju, bez otkrivanja korisničkog imena i lozinke. U početku je Twitter nudio osnovnu autentifikaciju sa korisničkim imenom i lozinkom ali trenutno je dostupan samo OAuth način autentifikacije.

Prvenstveno radi odličnih rezultata i sigurnosti ovog protokola. Pristup Twitter API-u u ovom članku je prikazan upotrebom open source biblioteke Twitterizer, gdje na jednostavan način može se pristupiti svim najvažnijim mogućnostima Twitter API-a a pritom uštediti vrijeme na razvoju i održavanju vlastitih biblioteka. Source code biblioteke je objavljen pod nekoliko licenci i uvijek dostupan te za svaku od funkcionalnosti je moguće vidjeti na koji način je implementirana.

Ukoliko ne želite da koristite neku eksternu biblioteku, uvijek možete kroz oficijelnu Twitter API dokumentaciju kreirati vlastitu biblioteku ali na kraju se može u većini slučajeva uvidjeti da je taj posao negdje već odrađen i bespotrebno je ponovno raditi takav posao ako znamo da postoje gotove open source biblioteke sa odličnom dokumentacijom, konstantnim razvojem itd. Prije integracije, potrebno je prvo registrovati / odobriti aplikaciju da može pristupati i raditi sa Twitter profilom.

U nastavku je prikazan izgled registracijske forme:

  

Registracijom aplikacije ona se pojavljuje u listi aplikacija kojima je odobren pristup profilu.

Klikom na naziv aplikacije dobijamo pregled pristupnih podataka i drugih detalja aplikacije:

      

Ovdje možemo primijetiti dvije vrste pristupnih podataka:

- Consumer Key (vrijednost sa kojom se aplikacija identifikuje pružatelju servisa - Twitter)
- Consumer Secret (vrijednost kojom kojom aplikacija dokazuje posjedovanje Consumer Keya)

Na osnovu ova dva ključa Twitter nam automatski pruža i (posjetiti My Access Token):

- Access Token (vrijednost kojom aplikacija dobija pristup resursima nekog profila)
- Access Token Secret (vrijednost kojom aplikacija dokazuje posjedovanje Access Tokena)

        

Vrijeme isteka Access Tokena i Token Secreta je različita zavisno od servisa do servisa. Tako da negdje za svaku sesiju, morate svaki put dati dozvolu aplikaciji da može izvršiti određene operacije. Twitter trenutno nudi mogućnost da kada jednom dobijete prethodno navedene ključeve za pristup nekom profilu, možete ih koristiti koliko hoćete sve dok vlasnik profila aplikaciji ne oduzme/zabrani pravo pristupa.

NAPOMENA: U vrijeme objave ovog članka, svi prikazani tokeni i aplikacija su izbrisani, tako da za testiranje demoa, morate registrovati novu aplikaciju za vaše vlastite Twitter profile.

Pristupne ključeve pohranimo unutar baze podataka ili web.config fajla što je prikazano u nastavku:

          

Struktura Twitterizer biblioteke je prikazana u nastavku:

            

Kako bi smo uradili neke jednostavne operacije sa Twitter računom, potrebno je prvo da se autentificiramo za pristup API-u. To se može učiniti na sljedeći način:

              

Dakle, kreira se instanca klase OAuthTokens koja će sadržavati pristupne ključeve za rad sa Twitter računom. Provjera validnosti pristupnih ključeva može se učiniti na sljedeći način:

              

Nakon što je uspješno završena provjera validnosti pristupnih podataka, prikazano je nekoliko demonstracija u radu sa profilom.

DEMO 1 - Prikaz pratioca profila

Ukoliko je potrebno da se prikaže lista pratioca određenog profila to se može učiniti na sljedeći način. Podrazumijeva se da prije ovog koda potrebno kreirati instancu klase OAuthTokens te inicijalizirati je sa vrijednostima koje su pohranjene unutar web.config datoteke.

                  

Rezultat je sljedeći:

Izgled i atribute je moguće podesiti zavisno od potrebe, u prethodnom slučaju prikaz je urađen putem kontrole DataList gdje je definisan Item Template, koji sadrži img i Label kontrolu za prikaz slike i imena pratioca.

DEMO 2 - Prikaz tweetova sa profila

Ukoliko je potrebno da se prikaže lista tweetova (po defaultu 20) sa profila to se može učiniti na sljedeći način:

                      

 

DEMO 3 - Postavljanje novog statusa na profil

Na sljedećoj slici je prikazana forma za unos novog statusa, ali i lista već postavljenih tweetova.

                          

Kod kojim se postavlja status na profil se nalazi u nastavku:

Sve druge funkcionalnosti i primjere može vidjeti kroz dostupni demo projekat ali i oficijelnu dokumentaciju Twitterizer biblioteke.

I na kraju nekoliko ideja za integraciju Twittera u Vaše aplikacije:

- Kada se objavi novi sadržaj da se objavi status sa linkom na sadržaj
- Postavljanje dugmića za podjelu sadržaja na profil posjetioca
- Dugme da korisnici mogu pratiti oficijelni profil portala
- Kontrola za prikaz zadnjih tweetova ukoliko je npr. riječ o blogu
- Pregled pratioca profila, itd.

U prethodnom tekstu je prikazano mnogo načina za integraciju ASP.NET aplikacija sa Twitterom. U narednom tekstu pojašnjavamo integraciju ASP.NET aplikacija sa Facebookom. Napominjemo da demo primjere možete preuzeti ovdje.

Komentari (2)

uier

Nećeš dobit bolju ocjenu iz WTH, ne moraš falit džaba autora, hehe.

Ozbiljno, dobar je tekst, skroz

Citiraj

Haris Đogo

svaka cast autoru

Citiraj

Pošalji svoj komentar