如何从我的应用程序获取Facebook用户ID?
我创建了一个Facebook应用程序,并通过下面的代码向用户发送请求。现在,当用户允许我的应用程序时,我需要他的ID和电子邮件地址到我的画布url.But在下面的代码用户不要去我的画布URL。所以,请帮助我解决,当用户允许我的应用程序时,用户如何访问我的画布网址,并获取该用户的用户ID?我的代码如下:
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;}
其他{
try {
$uid = $facebook->getUser();
$me = $facebook->api('/me');
}
catch (FacebookApiException $e)
{ echo "<script type='text/javascript'>top.location.href= '$loginUrl';</script>"; exit;}
}
所以,请帮助我获取用户ID。
提前致谢
里亚德
可以通过以下方式访问当前用户的Facebook ID和电子邮件:
$me['id'];
$me['email'];
那是你的追求?
首先,你的代码“写得不好”。 你的代码中的catch
块“执行时” 并不意味着用户没有登录。这意味着你的try
块(又名Facebook的不好调用)出了问题。
现在对于你的问题,你只需要把它放在你的try
块中:
$data = $facebook->api('/me?fields=id,email');
重要的提示:
您可能无法获得用户的真实电子邮件,用户可能选择不与您分享,这样Facebook将创建一个“镜像”电子邮件与您的应用程序共享。
我不熟悉php来评论上面的代码。 但是一般情况下,单独使用javascript sdk会更好(在asp.net中面临同样的问题)。 通过这种方式发布用户登录信息,控制权返回到启动它的相同页面。 例如:
<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/75429.html