Facebook API: per signed_request die PageID auslesen

shr1k3

Mitglied
Hallo Leute, ich möchte mir gerne eine FB-Anwendung schreiben und benötige die PageID.

Ich hab gelesen das man diese per signed_request bekommt.

Folgendes Problem:

Ich wollte das signed_request decodieren, da es per Base64 encoded wurde, doch leider bekomme ich nur komische Zeichen zurück:

?L?M???\??YY?]??L? ? ? ??K?Y?H???Y???L?LM?NNM ?L???Z?Y???[?K?YZ[????[?K?\?\??????[??H???H????[H???W?H??Y?H???Z[??? ?X^??L?

Ich habe dafür die Funktion von Facebook genutzt. Hier ist mein Code:

PHP:
require_once 'src/facebook.php';
$facebook = new Facebook(array(
  'appId'  => 'ID', // Anwendungs ID
  'secret' => 'SID', // Anwendungs-Geheimcode
  'cookie' => true, // enable optional cookie support
));

$signed_request = $_REQUEST['signed_request'];

$decode = base64_url_decode($signed_request);
echo $decode;

function base64_url_decode($input) {
    return base64_decode(strtr($input, '-_', '+/'));
}

Kennt sich jmd. damit aus? Ich bin für jede Hilfe dankbar :)

Gruß Adrian
 
Das dürfte ein Zeichensatzfehler sein. Ich glaube zwar nicht, dass es funktioniert, aber versuch das Ganze noch einmal mit utf8_decode() zu dekodieren.
 
Hatte ich auch schon dran gedacht, aber funktioniert leider auch nicht :-(

wenn ich den String durch utf8_decode laufen lasse dann hab ich wenigstens schonmal keine ?-Symbole mehr dirn:

t!?D_B********9? /?P****????[****]H****?PP?T?L?M****?\****YY?]****L? ?NM ?Y?H****?Y****?L?LM?NNM ?L****?Z?Y****?[?K?YZ[********[?_K?\?\************[??H****?H??****[H****?W?H??Y?H****?Z[****? ?X^****L?__t!


Vllt. hilft das weiter, aber ich bin daraus nicht schlauer geworden:
http://developers.facebook.com/docs/authentication/signed_request/
 
Du hast dir aber schon die Syntax der Antwort angesehen? Probier mal folgendes:
PHP:
require_once 'src/facebook.php';
$facebook = new Facebook(array(
  'appId'  => 'ID', // Anwendungs ID
  'secret' => 'SID', // Anwendungs-Geheimcode
  'cookie' => true, // enable optional cookie support
));

$signed_request = $_REQUEST['signed_request'];

list($signature, $data) = explode('.', str_replace(array("\n", "\r"), '', $signet_request), 2);
$data = json_decode(base64_decode($data));
Jetzt dürfte $data ein Array mit den entsprechenden Daten sein.
 

Neue Beiträge

Zurück