2011-11-15 3 views
0

Je développe une application facebook en PHP. Je suis en mesure de vous connecter en utilisant le code ci-dessousPHP Gestion de session Facebook

<?php 

$app_id = "XXXXXXXXXXXXXXXXX"; 
$canvas_page = "http://apps.facebook.com/sandysfirst/"; 
$auth_url = "http://www.facebook.com/dialog/oauth?client_id=" 
     . $app_id . "&redirect_uri=" .urlencode($canvas_page)."&scope="."publish_stream,read_stream,offline_access"; 
$signed_request = $_REQUEST["signed_request"]; 
list($encoded_sig, $payload) = explode('.', $signed_request, 2); 
$data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true); 
if (empty($data["user_id"])) { 
     echo("<script> top.location.href='" . $auth_url . "'</script>"); 
} else { 

}?> 

<?php 
    include_once "src/facebook.php"; 
    $app_id = 'XXXXXXXXXXXXXXXXXXX'; 
    $application_secret = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'; 
    $facebook = new Facebook(array(
'appId' => $app_id, 
'fileUpload' =>true, 
'secret' => $application_secret, 
'cookie' => true, // enable optional cookie support 
)); 
     if ($facebook->getSession()) { 
     $user = $facebook->getUser(); 
     $uid = $facebook->getUser(); 
       $fbme = $facebook->api('/me'); 
       echo "<br/><br/><br/><br/> Welcome ".$fbme['name']; 
     } 
     echo "<html> 

et le code HTML suivant, qui avec une action de forme. Je veux savoir comment je peux obtenir le même identifiant ou session utilisateur sur la deuxième page une fois le formulaire soumis. Je n'utilise pas facebook.php de sdk 3.0.

Répondre

1

Je ne sais pas le facebook api, mais d'un php de base il y a quelques méthodes que vous pouvez utiliser:

1 - Ajouter le uid comme un champ caché sous la forme.

<input type="hidden" name="uid" value="$uid"> 

2 - Ajouter à l'URL d'action

<form action="submit.php?uid=$uid"> 

Cependant, la meilleure façon est d'utiliser le facebook api, à peu près de la même manière que vous l'avez apparaître dans la liste déjà (du include_once "src/facebook.php";), pour récupérer l'uid à chaque fois, sinon vous le laissez ouvert aux hacks de sécurité (facile de passer un faux uid dans un formulaire).

+0

Nous vous remercions de votre aide. Mon action de formulaire appelle une fonction javascript où, en fonction du calcul, différentes pages sont appelées. Je peux mettre href = "1.php? Uid = $ uid" comme vous l'avez mentionné ci-dessus. Mais comment puis-je utiliser l'uid sur la page suivante pour marquer une photo de l'étiquette d'une photo et le télécharger sur le profil de l'utilisateur. Ai-je besoin de créer un tableau de Facebook à nouveau comme dans le code ci-dessus? ou l'uid lui-même sera suffisant. S'il vous plaît aider. –

+1

Si vous envisagez de marquer des photos/télécharger des photos/ajouter des commentaires muraux/etc, alors vous devez utiliser le code Facebook à chaque fois. L'uid ne sera pas suffisant. Au lieu de copier/coller le code facebook chaque fois que vous pourriez le placer dans un fichier séparé et utiliser un 'include ('fb.php')' pour l'appeler à chaque fois. Utilisez-le tel quel pour obtenir l'UID sur chaque page et à partir de là, exécutez les commandes facebook photo (vous aurez besoin de chercher comment faire du balisage photo et le télécharger sur la documentation de l'API ou des tutoriels). – hyarion

+0

Ok, je peux aller à la page suivante et obtenir le nom d'utilisateur selon votre suggestion (en utilisant le code facebook à chaque fois). Pouvez-vous m'aider avec le marquage des photos et la publication sur le mur de l'utilisateur s'il vous plaît? Je n'ai aucun jeton d'accès enregistré n'importe où comme vous pouvez le voir dans mon code. Est-ce possible de cette façon? –