How get facebook user ID from my application?

I created a facebook application and send request to a user through below code.Now when a user allow my application then i need his id and email address into my canvas url.But on that below code user don't go to my canvas URL.So,Please help me to solve ,how a user go to my canvas url when he allow my application and i get the user id of that user?My code is below:

require_once 'facebook.php';
$facebook = new Facebook(array(
'appId' => '#######',
'secret' => '###################',
'cookie' => true, ));
$req_perms = "publish_stream,offline_access,user_status,email,read_stream";

$session = $facebook->getSession();

$loginUrl = $facebook->getLoginUrl(array('canvas'=>1,'fbconnect' => 0,'req_perms'=>$req_perms));
$me = null;

if (!$session) { echo "top.location.href= '$loginUrl';";exit;}

else{

 try {
        $uid    =   $facebook->getUser();
        $me     =   $facebook->api('/me');
     } 
 catch (FacebookApiException $e) 
   { echo "<script type='text/javascript'>top.location.href= '$loginUrl';</script>"; exit;}
}

So,please help me to get the user id.

Thanks in advance

riad


The Facebook ID & email for the current user can be accessed through:

$me['id'];
$me['email'];

Is that what you're after?


First of all, your code is "badly" written. The catch block in your code "when executed" does not mean that the user is not logged in. It means that something went wrong in your try block (aka bad Facebook Call).

Now for your question, you just need to place this in your try block:

$data     =   $facebook->api('/me?fields=id,email');

IMPORTANT NOTE:
You may not get the user real email, the user may choose to not share it with you and this way Facebook will create a "mirror" email to share with your App.


I am not familiar with php to comment on the code above. However in general it would be better to use javascript sdk for login alone (faced the same issue in asp.net). That way post user login, the control comes back to the same page where it was initiated. For example:

    <div id="fb-root"></div>
    <script type="text/javascript" src="http://connect.facebook.net/en_US/all.js"></script>
    <script type="text/javascript">
        FB.init({
            appId: <app_id>, cookie: true, status: true, xfbml: true
        });

        function fblogin() {
            FB.login(function (response) {
                //Control comes back here
                if (response.session) {
                    alert(response.session.access_token);
                    var url = '/me?fields=name,email';
                    FB.api(url, function (response) {
                        //You are now in the same page with the data you wanted. If necessary redirect.
                        alert(response.name);
                        alert(response.email);
                    });
                }
                else {
                    alert("User did not login successfully");
                }
            }, { perms: 'email' });
        }
    </script>
    <a href="#" onclick="fblogin(); return false;"><img src="../Images/social_facebook.png" /></a>
链接地址: http://www.djcxy.com/p/75430.html

上一篇: 不要求朋友名单

下一篇: 如何从我的应用程序获取Facebook用户ID?