我创建了一个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;} else {try {
$ uid = $ facebook-> getUser();
$ me = $ facebook-> api('/ me');
}
catch(FacebookApiException $ e)
{echo“<script type ='text / javascript'> top.location.href ='$ loginUrl'; </ script>”;出口;}
}
所以,请帮助我获取用户ID .
提前感谢riad
4 回答
可以通过以下方式访问当前用户的Facebook ID和电子邮件:
这就是你要追求的吗?
首先,您的代码是"badly" . 您的代码"when executed" does not 中的
catch
块表示用户未登录 . 这意味着您的try
块中出现了问题(例如,糟糕的Facebook通话) .现在针对您的问题,您只需将其放在
try
块中:IMPORTANT NOTE:
您可以 not 获取用户真实的电子邮件,用户可以选择不与您共享,这样Facebook将创建一个"mirror"电子邮件与您的应用程序共享 .
我不熟悉php评论上面的代码 . 但是一般来说,最好单独使用javascript sdk进行登录(在asp.net中遇到同样的问题) . 这样,在用户登录后,控件将返回到启动它的同一页面 . 例如:
请看下面的代码: