2012-01-22 4 views
1

Je veux utiliser Facebook ID pour accueillir tous les utilisateurs Facebook qui entrent dans ma page. Exemple:facebook user id

Hello * name *, Welcome to my page!

J'essaie de l'utiliser avec PHP SDK et de copier des fichiers SDK sur mon hébergement. C'est le code que j'ai essayé d'utiliser:

<?php 
require_once 'facebook.php'; 
$facebook = new Facebook(array(
    'appId' =>'1234', 
    'secret' => '12345', 
    'cookie' => true, 
    'domain' => 'http://www.facebook.com/Guides4All.Co.IL/' 
)); 

$session = $facebook->getSession(); 
if (!$session) { 
    //user not logged into facebook 
    $uName = "Guess"; 
} else { 
    try { 
     $user_id = $facebook->getUser(); 
     $tt = "/" . $user_id; 
     $me = $facebook->api($tt); 
     $uName = $me["name"]; 
    } 
    catch (FacebookApiException $e) { 
    } 
} 
echo "Welcome $uName"; 
?> 

Nut Je suis une erreur:

Fatal error: Call to undefined method Facebook::getSession() in /*****.php on line 11 

Que puis-je faire pour résoudre ce problème? Qu'est-ce que getSession() et que faire maintenant?

+0

L'option 'domain' que vous utilisez n'est pas vraiment un domaine mais une URL. BTW, En fait, il n'y a pas une telle option de configuration pour PHP-SDK ... –

Répondre

2

Eh bien, fondamentalement, c'est parce que la méthode Facebook::getSession() n'existe pas. En d'autres termes $session = $facebook->getSession(); ne fonctionnera tout simplement pas.

La session est déjà lancée lorsque vous instanciez l'objet Facebook.

Le code devrait être plus comme dans l'exemple trouvé au SDK located at GitHub

+0

Merci pour vos réponses. J'ai donc essayé de changer '$ session = $ facebook-> getSession();' en $ user = $ facebook-> getUser(); ' maintenant la page Working, mais ne me donnant pas le facebook userName. c'est dire "bienvenue Guess" et je veux obtenir: Bienvenue ** nom **! alors que faire pour résoudre ce problème? Merci! –

+0

Je ne saurais pas, puisque le code que vous avez fourni dans la question ne fonctionnerait pas. Vous devriez essayer de mettre en œuvre l'exemple auquel je suis lié, afin que vous puissiez voir quelles variables vous avez disponibles et comment les utiliser (y compris le nom). – Repox

+0

avez-vous vu ces astuces dans d'autres pages? comme une autre page qui accueille les utilisateurs –

2

Il n'y a pas de méthode getSession dans le nouveau PHP-SDK. Vous devez utiliser la méthode getUser pour obtenir l'ID utilisateur. Pour commencer à travailler, vous devez commencer par authenticate user. Vous pouvez utiliser la méthode getLoginUrl pour créer l'URL que l'utilisateur doit visiter pour se connecter à votre application.

Vous devez lire la documentation pour Authentication, PHP-SDK et enregistrer examples.

+0

Merci pour vos réponses. J'ai donc essayé de changer '$ session = $ facebook-> getSession();' en $ user = $ facebook-> getUser(); ' maintenant la page Working, mais ne me donnant pas le facebook userName. c'est dire "bienvenue Guess" et je veux obtenir: Bienvenue ** nom **! alors que faire pour résoudre ce problème? Merci! –

+0

suffit d'obtenir l'identifiant de l'utilisateur que faire un appel à graph.facebook.com et il renverra le nom comme JSON – Hadrian

+0

@Tomer, j'ai mis à jour ma réponse pour fournir un peu plus de détails –

0
$facebook = new Facebook(…); 
$user = $facebook->getUser(); 
if ($user) { 
    try { 
    // Proceed knowing you have a logged in user who's authenticated. 
    $user_profile = $facebook->api('/me'); 
    } catch (FacebookApiException $e) { 
    error_log($e); 
    $user = null; 
    } 
} 

// $ user_profile obtenir toutes les informations sur cet utilisateur. Imprimez ensuite ce que vous voulez dans ce tableau.

1

Cela vous donnera le nom complet des visiteurs. Cela fonctionne même si c'est obsolète.

<div id="fb-root"></div> 
<script src="https://connect.facebook.net/en_US/all.js#appId=YOUR_APP_ID&xfbml=1"></script> 
<script> 
    window.fbAsyncInit = function() { 
    FB.init({ 
     appId: 'YOUR_APP_ID', 
     cookie: true, 
     xfbml: true, 
     oauth: true 
    }); 
    (function() { 
     var e = document.createElement('script'); e.async = true; 
     e.src = document.location.protocol + 
      '//connect.facebook.net/en_US/all.js'; 
     document.getElementById('fb-root').appendChild(e); 
    }()); 
</script> 
<fb:serverFbml><script type="text/fbml"><fb:userlink uid="loggedinuser"/></script></fb:serverFbml>