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

hackthissite.org Level 6 Basic Lösung

Im Level 6 geht es um eine kleine Decheffrierung. Also du siehst hier ein Verschlüsseltes Passwort und sollt dieses Entschlüsseln damit du es eingeben kannst und somit einen level weiter kommst. Du hast hier eine Hilfe, denn du kannst mit dem oberen Formular selbst daten verschlüsseln. Somit kannst du ein Muster erkennen wenn du zum Beispiel hallo oder auch tasse verschlüsseln lässt. Wenn du nun ollah oder essat verschlüsseln lässt dann fällt etwas auf oder?? Die Erklärung: hallo wird zu hbnos tasse wird zu tbuvi essat wird zu etudx Die cheffrierung funktioniert folgend: Du solltest zum verständniss eine ASCII Tabelle heranziehen! Formel: Verschlüsseltes Zeichen = (Position in String) + (Aktuelles Zeichen, ASCII Code) Somit ist auch klar warum das erste Zeichen sich nie verändert. Da es mit 0 anfängt zu Zählen. h = 0 ( +0) Bleibt gleich. a = 1 ( +1) l = 2 ( +2) l = 3 ( +3) 0 = 4 ( +4) Hier die Decheffrierung des Verschlüsselten Textes: ...

Das Land Baden-Württemberg als heimlicher Simpsons Fan!!

sdadsdsaads' type="hidden"> Das Land Baden-Württemberg mag die Simpsons doch sehr! Chief Wiggum als Minister?? Aber hier schaut euch doch selbst die Meldung an ! Baden-Würrtemberg und die Simpson Ja dass ist selbstverständlich keine Meldung des Landes Baden-Württemberg, das ist doch irgendwie von vorne rein klar?? Oder etwa nicht? Das zeigt mal wieder wie unschön große Agenturen arbeiten..... Ah für alle die das hier irgendwie interessant finden, ich, also der Autor bin momentan auf der Suche nach einer neuen Arbeitsstelle!! Am liebsten als Penetrationstester in einer Sicherheitsfirma aber gerne auch bei Internet Firmen welche Ihre Seiten immer sicher haben wollen ;-) Mein schwerpunkt liegt bei den Web-Applicationen. Und in der Programmierung kenne ich mich bestens in PHP, Java, HTML (kombi AJAX).Und einigermaßen kann ich auch C, wird aber ständig verbessert! Bei interesse einfach mal ne mail senden..... Ps: Ich weiß wie man...

Linearen Notenschlüssel mit nodejs berechnen

Linearen Notenschlüssel berechnen / Method chaining in nodejs Hintergrund/Motivation: Ein kleines altes Nebenprojekt von mir war eine Schüler/Notenverwaltung Software in Java geschrieben. Das kleine Programm ist etwas in die Jahre gekommen und da wollte ich kleine teile von der Software nach nodejs portieren und es etwas auffrischen. Und zum start habe ich die Berechnung der Noten nach einem Linearen Notenschlüssel portiert. Also die dahinter liegende Klasse. Kurze Beschreibung der Eigenschaften der Klasse: Die Klasse soll die Berechnung anhand der Maximalen zu erreichenden Punkzahl und der erreichten Punkzahl des Schülers berechnen. Es gibt folgende Attribute: defaultPoints => fallback falls maxPoints nicht gesetzt wird maxPoints => Maximal zu erreichende Punkte im Test/Arbeit reachedPonts => Erreichte Punktzahl des Schülers Darüber hinaus sollen die setter der Klasse via   Method chaining  einfacher und kürzer aufrufbar sein, hierzu ein kleiner Pse...