Direkt zum Hauptbereich

Facebook subscribe to realtime updates "code snipet"

Ein tolles feature von der Graph API sind die sogenannten live updates. Dabei Registriert sich die App für divesere Updates von allen App Usern, bspsw. für das Bild, checkins etc. Man muss dabei beachten dass Facebook nur die userid und das Feld zurücksendet in welchem sich etwas geändert hat. Die Daten muss man dann wiederum bei der Facebook Graph API abholen, wozu man wiederum "offline" access haben sollte da man ansonsten immer warten muss bis der User wieder die App besucht.

Hier das subscribe in PHP:
define('subscribeUrl'," https://graph.facebook.com/" . APP_ID . "/subscriptions" );

define('VTOKEN', 'bla2367dhhda28778'); //this is an token to verify the callback from facebook
 /*
  * subscribe array
  */
 $object =  Array (
    'access_token' => $accessToken[1], //here insert the app access token!
    "object" => "user",
    "callback_url" => "http://yourserver.com/receive.php", //callback script, this script calls facebook!
    "fields" => 'name,picture',
    "active"=> true,
     "verify_token" => VTOKEN
);

 $jsonData = json_encode($object);
 /**
  *
  * now send an subscribe reqwuest to
  * facebook
  */
 define('GETFACEBOOKDATA', '?access_token='.$accessToken[1]);
  $ch='';
 $Rec_Data='';

 $ch = curl_init(subscribeUrl.GETFACEBOOKDATA);
 curl_setopt($ch, CURLOPT_POST     ,1);
 curl_setopt($ch, CURLOPT_POSTFIELDS    , $jsonData);
 //curl_setopt($ch, CURLOPT_FOLLOWLOCATION  ,1);
 curl_setopt($ch, CURLOPT_HEADER      ,1);  // DO NOT RETURN HTTP HEADERS
 curl_setopt($ch, CURLOPT_RETURNTRANSFER  ,1);  // RETURN THE CONTENTS OF THE CALL
 $Rec_Data = curl_exec($ch);

Das wars dann auch schon mit dem subscribe, man kann nun noch auf die  subscribe url einen get call machen dann gibt Facebook die Felder zurück für die man sich registriert hat.

Wenn sich nun bei einem oder mehreren Usern etwas ändert dann ruft facebook unser callback Script auf. Dieses kommt hier in kurz und Bündig:



define('VTOKEN', 'bla2367dhhda28778'); //your V token, the same as in the subscribe script
$method = $_SERVER['REQUEST_METHOD'];
if ($method == 'GET' && $_GET['hub_mode'] == 'subscribe' && $_GET['hub_verify_token'] == VTOKEN) {
    echo $_GET['hub_challenge'];
} else if ($method == 'POST') {
    $updates = json_decode(file_get_contents("php://input"), true);
    $handle = fopen('out.txt', "w+"); //write the input to an file, so you can see what you get, only for development
    fwrite($handle, print_r($updates, true));
    fclose($handle);
     
    makeThings($updates); //call a mehtod and do something with it
 

    // Note the request must complete within 15 seconds.rue
    // Otherwise Facebook server will consider it a timeout and
    // resend the push notification again.
    // error_log('updates = ' . print_r($updates, true));            
}
Hier der Link zur Facebook Doku;
http://developers.facebook.com/docs/reference/api/realtime/

Kommentare

Beliebte Posts aus diesem Blog

Soziale Netze und die Sicherheit! Report Kwick!

Die Sozialen Netzwerke, neudeutsch: Social Networks, halten nicht allzu viel von Sicherheit. Vor allem müssten die Entwickler viel mehr für das Thema XSS Sensibilisiert werden. D enn Potentielle Angreifer finden jede Schwachstelle im System. Und wer lange genug sucht der wird imme r fündig. Es sollte den An greifern nur nicht allzu einfach gemacht werden. Kwick.de hatte bis zum 20.06.08 auch noch oder wieder ein Problem mit XSS. Betroffen waren so gut wie alle Suchformulare auf der Seite. Per zufall bin ich auf diesen Umstand aufmerksam geworden. Eines sei gesagt. Bei Kwick kann man sich nun getrost Anmelden denn die Sicherheitslücke wurde sofort behoben. Also eine sichere Sache. Andere Social Networks haben ähnliche XSS Probleme, eigentlich erschreckend viele. Die Namen möchte ich nicht nennen denn sonst rennen vielleicht ein Paar Dummys dahin und testen es gleich......... Nachdem ich dieses Problem dem Betreiber gemeldet hatte wurde es auch Postwendend behoben. Nur aus diesem Gru...

Magento - Simple Google Shopping - Add PHP code direct in XML Template

Magento - Extension "Simple Google Shopping" von wyomind Um das Template anzupassen gibt es hier auch die Möglichkeit PHP code direkt in das XML Template zu schreiben.  Dies kann hilfreich sein wenn man Felder aus Magento ändern möchte und dazu ein if Konstrukt benötigt. Hier ein Beispielhaftes Template für Simple Google Shopping mit PHP code direkt im template: Wichtig: der code muss ein "return" statement besitzen. Denn nur der Wert welcher vom PHP Block returned wird, ist nacher im google shopping XML file vorhanden.   Simple Google Shopping Extension