martedì 3 settembre 2013

Ottenere il numero di Like su una pagina Facebook

Diciamo che vogliamo visualizzare da programma il numero di Like su una pagina Facebook per esempio questa

https://www.facebook.com/SAAM.Firenze

Per prima cosa si deve conoscere l'id della pagina che si ottiene usando OpenGraph

http://graph.facebook.com/?ids=https://www.facebook.com/SAAM.Firenze

che produce il seguente risultato. Circa alla fine si trova

"id": "266068113416863",
che e' il numero desiderato

-----------------------------------
{
   "https://www.facebook.com/SAAM.Firenze": {
      "about": "Istruttore e Responsabile di sala: Alessandro Battistini Iacopo Venni Lorenzo Leoni",
      "category": "Sports venue",
      "description": "La sede di Firenze della Sala d'Arme Achille Marozzo svolge ampio lavoro di ricerca sulla scherma del medioevo e del rinascimento. Finalmente, dopo lungo tempo passato sullo studio sui trattatisti toscani, si sono aperti, per la prima volta, corsi sulle tecniche di combattimento della antica scuola di scherma fiorentina.",
      "hours": {
         "tue_1_open": "20:30",
         "tue_1_close": "23:00",
         "thu_1_open": "20:30",
         "thu_1_close": "23:00"
      },
      "is_published": true,
      "location": {
         "street": "Via Pistoiese angolo Viuzzo della Cavalla",
         "city": "Florence",
         "state": "",
         "country": "Italy",
         "zip": ""
      },
      "parking": {
         "street": 1,
         "lot": 0,
         "valet": 0
      },
      "phone": "+39 339 66.83.646",
      "price_range": "$$$ (30-50)",
      "talking_about_count": 67,
      "username": "SAAM.Firenze",
      "website": "http://www.achillemarozzo.it/sale/firenze.php",
      "were_here_count": 0,
      "id": "266068113416863",
      "name": "Sala d'arme Achille Marozzo - Firenze",
      "link": "http://www.facebook.com/SAAM.Firenze",
      "likes": 259,
      "cover": {
         "cover_id": 366553573368316,
         "source": "http://sphotos-b.ak.fbcdn.net/hphotos-ak-prn1/s720x720/64899_366553573368316_453567495_n.jpg",
         "offset_y": 55,
         "offset_x": 0
      }
   }
}
-----------------------------------

a questo punto si puo' scrivere una semplice applicazione Facebook che tramite le Api ci riporti il valore di Like (che come si vede dall'interfaccia Web e' di 259) Come si vede, a parte le chiavi dell'applicazione non e' necessario passare nessun access token od avere permessi particolari

--------------------------------------
<?
require_once '../src/facebook.php';

$appid = '673135956xxxxxx';
$appsecret = 'dde6cfb07dbb769c7efxxxxxx';

$facebook = new Facebook(array(
 'appId' => $appid,
 'secret' => $appsecret,
 'cookie' => false,
 ));


$like = array(
    'method' => 'fql.query',
    'query' => 'select fan_count from page where page_id=266068113416863;'
);

$result = $facebook->api($like);

print $result[0]['fan_count'];
?>

--------------------------------------