Csiripelő alkalmazás

A Twitter, a Messenger és a vuvuzela számomra egy kategória: mások által érthetetlen okokból imádott zajkeltő eszközök. Most az egyik projektünkben mégis azt kellett megoldanunk, hogy az alkalmazás időnként csiripeljen egyet a Twitteren.

Ennek megvalósítására nagyon sok példát lehet találni a neten, a legtöbb szépséghibája azonban, hogy a kihalásra ítélt basic hitelesítést használja, ami helyett már az OAuth a preferált. Az OAuthnak kétségkívül vannak előnyei, azonban a használata messze nem olyan egyszerű, mint a minden kliens által támogatott basic hitelesítésnek. Nézzük sorban!

Először is persze kell egy Twitter account, ahova az alkalmazás írogatni fog. Ezek után a Settings –> Connections oldalon regisztrálnunk kell a kliens alkalmazást. Nálunk egy webalkalmazásról volt szó, ezért az Application Type: Client, a Default Access Type pedig Read & Write lett. Bár a miénk egy webalkalmazás, azért lett a típusa Client és nem Browser, mert nem akartuk, hogy a felhasználó böngészője ide-oda ugráljon az saját weblapunk és a Twitter között, hanem az volt a cél, hogy a háttérben észrevétlenül kikerüljön egy csirip a Twitterre, ha történik valami a mi webhelyünkön. Fontos, hogy ha az alkalmazás csak posztol a Twitterre, de másra nem használja, akkor a Use Twitter for login opciót ne kapcsoljuk be. Ha ügyesek voltunk, akkor a varázsló végén kapunk egy oldalt a következő paraméterekkel:

  • Consumer key
  • Consumer secret
  • Request token URL
  • Access token URL
  • Authorize URL

Ez mind kell az OAuth-hoz. Sőt, ha egy konkrét alkalmazás a kliens, akkor kell még 2 adat, egy Access token és egy Access token secret, nosza szerezzük meg őket! Látogassunk el a http://dev.twitter.com/apps oldalra (biztos be is van linkelve valahova, csak én nem találtam meg), majd kattintsunk az alkalmazásunk mellett található Edit details linkre, majd a betöltődő oldalon az Application detail, végül pedig a My Access Token linkre. Jegyezzük fel gondosan az oauth_token és oauth_token_secret értékeket.

Megvan tehát mindenünk, irány a Visual Studio, írhatjuk a kódunkat, az sokkal egyszerűbb lesz. Mivel az OAuth protokollt és a teljes Twitter API-t valahogy nem volt kedvem implementálni, némi keresgélés és tesztelés után a választásom a Twitterizerre esett.

Próbaként készítsünk egy konzol alkalmazást, referenciaként adjuk hozzá a Twitterizer2.dll-t és persze kell egy using Twitterizer; sor is.

Az a jó a Twitterizerben, hogy az egész OAuth mizéria számunkra ennyit jelent:

  OAuthTokens tokens = new OAuthTokens()
  {
    ConsumerKey = @"jrnGHJxU...",
    ConsumerSecret = @"c0nsmR...",
    AccessToken = @"aCtKn...",
    AccessTokenSecret = @"scR3t..."
  };

Ezen kívül a központi objektum a TwitterStatus, például a korábbi csiripeket a GetHomeTimeLine függvénnyel kérdezhetjük le:

  TwitterStatusCollection statuses = TwitterStatus.GetHomeTimeline( tokens );
  foreach( TwitterStatus status in statuses )
  {
    Console.WriteLine( status.Text );
  }

Érdemes tudni, hogy az API-t nem lehet a végtelenségig megpörgetni, hanem mint sok más helyen, itt is vannak limitek, amiket így kérdezhetünk le:

  TwitterRateLimitStatus limit = TwitterRateLimitStatus.GetStatus( tokens );

A kapott limit objektum ilyen értékeket tartalmaz:

  {Twitterizer.TwitterRateLimitStatus}
    base {Twitterizer.Core.TwitterObject}: {Twitterizer.TwitterRateLimitStatus}
    HourlyLimit: 175
    RemainingHits: 174
    ResetTime: {2010.06.24. 18:05:52}
    ResetTimeString: "Thu Jun 24 16:05:52 +0000 2010"

Ezt a korlátot figyelembe véve már küldhetjük is az üzenetünket a nagyvilágnak:

  TwitterStatus result = TwitterStatus.Update( tokens, "Működik!" );

A kapott TwitterStatus objektum tulajdonságaiból sok minden kiderül, talán a legfontosabb a poszt egyedi azonosítója (Id), illetve hogy belefértünk-e a 140 karakterbe (IsTruncated).

Jó csiripelést!

 

Technorati-címkék: ,,


Balássy György (MS RD, ASP.NET MVP, MCTS)

Balássy György (MS RD, ASP.NET MVP, MCTS) Villamosmérnök, a BME Automatizálási és Alkalmazott Informatikai Tanszékén webportálok fejlesztését oktatja. 2000 óta foglalkozik a Microsoft .NET platformjával, melynek meghonosításában jelentős szerepet vállalt előadóként, konzulensként és A .NET Framework és programozása című könyv társszerzőjeként. Az MSDN Kompetencia Központon belül a Portál Technológiák Csoport vezetője, szakterülete web alapú rendszerek fejlesztése és üzemeltetése. 2004-ben Magyarországon elsőként kapta meg a Most Valuable Professional címet, majd 2005 óta a Microsoft magyarországi regionális igazgatója. Publikációi a Technet Magazinban, az MSDN Kompetencia Központ honlapján és szakmai blogjában olvashatóak.

2010.06.24. 17:17:37 | Permalink | Hozzászólások: 0 | Tárgyszavak: , ,


  • Melyik oldal jön be bejelentkezés után?

    Balássy György (MS RD, ASP.NET MVP, MCTS) Az ASP.NET Login vezérlőnek van egy DestinationPageUrl tulajdonsága, amellyel megadhatjuk annak az oldalnak a címét, ahova sikeres bejelentkezés után a vezérlő továbbdob. Ez szép is lenne, már ha működne. Tovább »
  • ASP.NET Menu és a teljesítmény

    Dávid Zoltán Az ASP.NET 2.0 óta létezik a Menu vezérlő, mellyel dinamikus, adatköthető menüt készíthetünk. Az egyik legfontosabb tulajdonsága, hogy támogatja a security trimming-et (ha bekapcsoljuk), azaz csak azokat a menüpontokat jeleníti meg, amik mögött olyan oldalak vannak, amiket a felhasználó megnézhet. Tovább »


Írja meg Ön is véleményét!


Hozzászólásokat csak regisztrált, bejelentkezett felhasználóktól tudunk elfogadni!

Hozzászólások