tiistai 25. lokakuuta 2016

Facebook comments count - javascript


Jos omille web-sivuille on lisätty Facebook kommentointi  ... Facebook Comments Plugin.
https://developers.facebook.com/docs/plugins/comments/

 Laskuri joka näyttää kyseisen sivun kommenttien määrä, HTML koodiin on silloin tämän näköinen.
<span class="fb-comments-count" data-href="http://example.com/"></span>
awesome comments 
Näyttää tuloksen vaikka näin:
69391 awesome comments
Mutta miten hakea tämä tieto javascript:llä? Yllä mainitusta linkistä löytyy tähän esimerkki:

https://graph.facebook.com/v2.4/?fields=share{comment_count}&amp;id=<YOUR_URL>

Ikävä kyllä, tapa ei tällä hetkellä toimi, joten poistetaan turhat edellisestä, ja kokeillaan montako kommenttia esim. google.com on saanut:

https://graph.facebook.com/https://google.com

Kopioidaan selaimen osoiteriviin kyseinen rivi, ja selain palauttaa tämän näköisen sivun:

{
   "og_object": {
      "id": "400854551051",
      "description": "Search the world's information, including webpages, images, videos and more. Google has many special features to help you find exactly what you're looking for.",
      "title": "Google",
      "type": "website",
      "updated_time": "2016-10-25T09:55:30+0000"
   },
   "share": {
      "comment_count": 0,
      "share_count": 4123025
   },
   "id": "https://google.com"

}

Ei yhtään kommenttia, mutta share_count näyttää lukemaa 4123025.

Me siis joudutaan omassa koodissa poimimaan erikseen "comment_count" tai "share_count" arvot.
Sinänsä tämä on yksinkertaista. Esimerkkinä JQuery AJAX metodi.
  $.ajax({
        url: 'https://graph.facebook.com/https://graph.facebook.com/?id=https://www.mypage.com
  dataType: "jsonp",        success:  function(data) {            
             alert( data.share.comment_count )  }         
 });
Kaikki voi mennä hienosti, mutta jos tulee ongelmia, niitten jäljittämiseen muutetaan koodia
success: function(data) {
     console.log(data);
}

Ja voimme ehkä nähdä jotain tällaista:   message: "Application request limit reached"

Sovelluksen pyynnön raja saavutettu.