Počet sdílení na Facebooku a Twitteru
Jak pomocí API získat ve JSONu počet sdílení stránky na Facebooku a Twitteru.
Pro snadné sdílení adresy stránky ze strany návštěvníků na sociálních sítích jde použít přímo dostupná tlačítka pro sdílení. Tato tlačítka dokáží ukazovat počet lidí, co stránku sdíleli.
Bohužel tyto prvky znamenají značnou zátěž na rychlost načítání, navíc provozovatelé zmíněných služeb mohou vloženými skripty šmírovat své přihlášené návštěvníky.
Pokud jsou počty sdílení pro návštěvníky zajímavé, nabízí se je získat jinou – méně obtěžující – cestou.
Facebooku dokáže připravit JSON s potřebnými daty na adrese:
https://graph.facebook.com/?id=http://example.com
Výsledek je potom ve vlastnosti shares
:
{
"id": "http://example.com",
"shares": 527617
}
Pro použití přímo v JavaScriptu jde předat callback s názvem vlastní funkce, připojit adresu jako <script>
, což zavolá vlastní funkci s předanými daty. Tento postup se označuje jako JSONP (JS objekt notace s „vycpávkou“).
https://graph.facebook.com/?callback=nazevFunkce&id=http://example.com
Kromě počtu sdílení umí Facebook ukazovat i případný počet komentářů. Výsledek:
/**/ nazevFunkce({
"id": "http://example.com",
"shares": 527617,
"comments": 11354
});
U Twitteru byl postup obdobný. Zobrazení počtu sdílení bylo ale následně skryto a není možné se k němu dostat.
U Twitteru je postup obdobný. Jen je logicky jiná adresa.
http://urls.api.twitter.com/1/urls/count.json?url=http://example.com
Počet sdílení na Twitteru je ve vlastnosti count
:
{"count":12066,"url":"http:\/\/example.com\/"}
Použití JS callbacku je totožené jako u Facebooku.
Google Plus
Google veřejně dostupné JSON API pro získání počtu „+1“ nenabízí. Jedna možnost nejspíš bude si nechat vytvořit API klíč a použít standardní metody. Bez získávání klíče jde počet sdílení získat parsováním obsahu stránky s rychlým tlačítkem pro sdílení:
https://plusone.google.com/u/0/_/+1/fastbutton?url=http://example.com
Počet sdílení z kódu jde vytáhnout regulárním výrazem „window\.__SSR = \{c: (\d*).0 ,
“.
Zobrazení počtu sdílení
Pro maximální rychlost načítání je vhodné údaje o počtu sdílení periodicky získávat CRONem a ukládat do DB.
- Uživatel nebude muset čekat, až se pomocí API získá počet sdílení.
- Z uložených dat půjde případně i snadno vykreslit graf sdílenosti stránky v čase.
Odkazy jinam
- Monitor social endorsement using Node.JS – počítání sdílení ve spoustě sociálních sítích
- Google+ API – dokumentace HTTP API
Komentáře