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:
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:
http://developers.facebook.com/docs/reference/api/realtime/
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
*/
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 scriptHier der Link zur Facebook Doku;
$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));
}
http://developers.facebook.com/docs/reference/api/realtime/
Kommentare