Jednoduchá PHP třída pro posílání příspěvků na mikroblogovací servery Twitter, Tumblr, Pownce, Jaiku a Teidu. (Aktualizováno na verzi 2.0)
Při práci na jednom menším projektu mě napadlo, že by se hodila možnost posílání příspěvků na mikroblogovací server, ve smyslu "Právě jsem udělal toaono..." + odkaz. Kouknul jsem se na API hlavních serverů a zjistil jsem, že je velmi prosté. Napsal jsem si proto třídu Microblogging, která umožní poslat text na Twitter, Tumblr, Jaiku, Pownce a Teidu (zatím). Další budou přibývat, bude-li zájem.
Použití je prosté:
$engine = Microblogging::Create('twitter');
if ($engine->send('jmeno', 'heslo', 'Test from Microblogging class'))
echo'OK';
else
echo "Error – " . $engine->status();
Třída je k dispozici k volnému použití pod licencí BSD, tedy smíte ji šířit a využívat ve svých projektech, pokud zachováte informace o autorovi.
Ještě odkaz: Microblogging class, popř. SVN: svn checkout http://microblogging.googlecode.com/svn/trunk/ microblogging-read-only
(Aktuální verze je 2.0 – přepsána tak, aby používala adaptéry pro API a tovární třídu Microblogging)
Dne 2.07.2008
Přidej do:
Stumble It!
[1] (http://openid.cz/jiri.pospisil ) 02.07.2008, 16:35:38 [X] [D]
Nebylo by špatné třídu realizovat jako factory a příslušné servery jako jednotlivé adaptéry, při větším počtu serverů by to rozhodně přispělo k přehlednosti.
[2] (Timy - Mail - WWW) 02.07.2008, 16:42:00 [X] [D]
Super, díky moc! Konečně jsem si mohl napsat ten svůj skriptík, který mi zprovozní odesílání zpráv na Twittera přímo z adresní lišty prohlížeče :-). http://nastroje.havrlant.net...ter/
[3] (Arthur Dent [openID] - Mail - WWW) 02.07.2008, 16:53:17 [X] [D]
[1] Bude-li víc serverů, bude jistě na místě zvážit jiné řešení, modulárnější apod. V tomto případě jsem upřednostnil kompaktní řešení stylem "quick-and-dirt" (někdy až příliš, viz třeba to prasecké přepisování URL u Twitteru) před formální elegancí, roztahanou do mnoha tříd a potomků a souvislostí, u nichž by (zvlášť v takhle jednoduchém případě) převážila systémová režie nad ziskem z "krásy". :)
[4] (dond ) 02.07.2008, 17:35:22 [X] [D]
OT: Takhle se teď píše v PHP? Nějak moc nápadně mi to připomíná syntaxi toho (FUJ!) jazyka, jemuž se PHP za žádnou cenu nechtělo podobat... .-)
[5] (Arthur Dent [openID] - Mail - WWW) 02.07.2008, 17:52:40 [X] [D]
[4] O tom nic netuším. Dokonce netuším ani nic o tom, jak se teď píše v PHP. Takhle teď píšu v PHP já. :) PS: Namespaces are coming soon... ;)
[6] (davee - WWW) 02.07.2008, 17:58:44 [X] [D]
To Teidu bych uvítal...
[7] (Arthur Dent [openID] - Mail - WWW) 02.07.2008, 18:47:02 [X] [D]
OK, přepisuju trošku engine, ať má [1] radost, a implementuju Jaiku + Teidu.
[8] (klok - WWW) 02.07.2008, 19:59:37 [X] [D]
Teidari z celeho srdce dekuji :)
[9] (Arthur Dent [openID] - Mail - WWW) 02.07.2008, 20:10:05 [X] [D]
[8] Co mi Teidu nabídne za to, že mu dělám reklamu ve svém kvalitním kódu? :)
[10] (David Grudl - WWW) 02.07.2008, 20:26:29 [X] [D]
Přiměl jsi mě udat svoji třídu pro Twitter (http://phpfashion.com...ter-for-php) - pravda, v porovnání s tvou je slabá, protože ani Tumblr, Pownce, Jaiku nebo Teidu nezná (stejně jako její autor), ale zase umí zobrazit kanál posledních zpráv, pročež ji používám na svých stránkách.
[11] (Arthur Dent [openID] - Mail - WWW) 02.07.2008, 20:35:08 [X] [D]
[10] Chceš mě snad přimět, abych rozšířil tu svoji o čtení timeline? :)
PS: Na Teidu to je prosté - GET http://username.teidu.cz/rest - a máš je ve formátu JSON jako na dlani :)
[12] (David Grudl - WWW) 02.07.2008, 21:00:43 [X] [D]
[11] na Twitteru téže http://twitter.com...avidGrudl.json
Ale "přátelský časový přehled" (lépe asi friends_timeline) vyžaduje přihlašovací údaje.
[13] (klok - WWW) 02.07.2008, 22:03:47 [X] [D]
[8] Nabidne ti bezplatny prostor pro realizaci tvych myslenek. To neni malo.
[11] Nojo fakt :)
[14] (Arthur Dent [openID] - Mail - WWW) 02.07.2008, 22:20:07 [X] [D]
[13] Cožeto? :) Prostor na realizaci mých myšlenek? To není moc hodnotné platidlo, že? Kdybych měl všeho tolik jako prostoru na realizaci myšlenek... :) Co z toho budu mít, že propaguju Teidu ve svém projektu? ;)
Poznámka: Těmhle komentářům porozumí pouze zasvěcení, a těch je asi tak pět. Klok je jeden z nich.
[15] (David Grudl - WWW) 02.07.2008, 22:39:58 [X] [D]
Fixni si tam bug při odesílání - zpráva nemůže být kódována v URL, ale předána přes $this->postdata. Některé instalace PHP&cURL to zvládnou, některé ne. Takže např. TwitterMBAdapter:
Místo:
$this->post = true;
$this->postdata = false;
$this->auth = true;
$this->host = 'http://twitter.com...ate.xml?status='.urlencode(stripslashes(urldecode($this->text)));
Dej:
$this->post = true;
$this->postdata = array('status' => $this->text);
$this->auth = true;
$this->host = 'http://twitter.com...ses/update.xml';
BTW: urlencode(stripslashes(urldecode())) je tam proč?
[16] (Arthur Dent [openID] - Mail - WWW) 02.07.2008, 23:30:28 [X] [D]
[15] Ehm... To je tak, když člověk vyjde ze starých API knihoven a nevyhází všechna rezidua. Opraveno, díky.
[17] (klok - WWW) 03.07.2008, 12:54:05 [X] [D]
[14] No dobre, tak alespon hrejivy pocit, ze jsi podporil vlastni ditko. A to i presto, ze uz by melo samo umet chodit a par dalsich detailu.
A navic Davee [6] tak hezky poprosil. Ne pardon to jsem se prehledl:) Hm tak aspon, ze ja jem podekoval
A ted uz jen chybi: "A nyni, panove, zanechme kockovani, prichazi velka umelkyne Tornado Luuuu..."
[18] (davee - WWW) 03.07.2008, 13:10:38 [X] [D]
Za to Teidu samozřejmě děkuju! :-)
[19] (Arthur Dent [openID] - Mail - WWW) 03.07.2008, 13:11:35 [X] [D]
[17] Proč bych měl Teidu podporovat já? Neměl by se o jeho podporu a propagaci starat v první řadě jeho provozovatel?
[20] (Martin Kopta - WWW) 03.07.2008, 15:15:42 [X] [D]
Tak tedy pěkně děkuju. Teď musím přemýšlet, jestli na Okurkovou sezónu nasadím denta nebo dgx. :-(
Možná na střídačku oba. :-)
[21] (Arthur Dent [openID] - Mail - WWW) 03.07.2008, 15:17:58 [X] [D]
[20] Dent jen publikuje, zato na pět systémů, DGX i čte, ale jen Twitter. To se moc netluče :)
[22] (drbz - Mail - WWW) 05.10.2008, 18:18:19 [X] [D]
Ahoj, bylo by fajn, kdybys nás taky přidal, provozujeme REST API na http://drbz.cz/api/rest/uzivatel , viz http://drbz.cz...zdroje-api-widgety
[23] (Arthur Dent [openID] - Mail - WWW) 05.10.2008, 18:23:40 [X] [D]
[22] Zamyslím se... Je nějaká možnost, že to uděláš sám (těžké to není, zdroják tam je) a poskytneš komunitě? :) "Duch opensource jako, ne?" Já nemám registraci, abych to otestoval...
[24] (drbz - Mail - WWW) 05.10.2008, 18:38:34 [X] [D]
Proč ne, ducha open-source mam rád ;) Přístup na SVN mi dáš nebo mam výsledek poslat mailem?
[25] (Arthur Dent [openID] - Mail - WWW) 05.10.2008, 19:35:46 [X] [D]
[24] Pošli mailem, já to tam zakomponuju a připíšu poděkování :)
© Martin Malý (aka Arthur Dent) | Design by © 2007 ASH721 | HOSTING 3000GB+unlimited domains za 6 dolarů