Javascript 登录时使用Facebook Open Graph API时出错
如何使用OpenGraphAPI显示facebook登录按钮,并在成功登录后获取用户名和电子邮件?我试过了,但没有成功 我在标题部分有以下内容:Javascript 登录时使用Facebook Open Graph API时出错,javascript,jquery,.net,facebook,facebook-graph-api,Javascript,Jquery,.net,Facebook,Facebook Graph Api,如何使用OpenGraphAPI显示facebook登录按钮,并在成功登录后获取用户名和电子邮件?我试过了,但没有成功 我在标题部分有以下内容: <script src="http://connect.facebook.net/en_US/all.js" type="text/javascript"></script> <script type="text/javascript"> FB.init({ appId: '12345', c
<script src="http://connect.facebook.net/en_US/all.js" type="text/javascript"></script>
<script type="text/javascript">
FB.init({
appId: '12345', cookie: true,
status: true, xfbml: true
});
FB.api('/me', function (user) {
if (user != null) {
alert(user.name);
}
});
</script>
FB.init({
appId:'12345',cookie:true,
状态:true,xfbml:true
});
FB.api('/me',函数(用户){
如果(用户!=null){
警报(用户名);
}
});
我把
放在
标签前面的最末端。到现在为止,一直都还不错。我的和
可以在我网站的任何页面上正常工作。但我无法让我的登录工作(它说我没有定义fb根)
我在我的页面中间有这个地方:
<fb:login-button perms="email,user_checkins">Login with Facebook</fb:login-button>
使用Facebook登录
在登录窗口上提交后,我得到一个js错误,该错误表示未定义fb root div。但是我确实在页面的末尾有它。试试看
window.fbAsyninit=函数(){
FB.init({
appId:'12345',
曲奇:是的,
状态:正确,
xfbml:对
});
FB.api('/me',函数(用户){
如果(用户!=null){
警报(用户名);
}
});
};
(功能(){
var e=document.createElement('script');
e、 src=document.location.protocol+'//connect.facebook.net/en_US/all.js';
e、 异步=真;
document.getElementById('fb-root').appendChild(e);
}());
将初始化封装在最后调用的函数中,即:
<html>
<head>
<script src="http://connect.facebook.net/en_US/all.js" type="text/javascript"></script>
<script type="text/javascript">
function fbInit() {
FB.init({
appId: '12345', cookie: true,
status: true, xfbml: true
});
}
if(FB.getSession() != null) {
// user logged in, continue with the program.
};
</script>
</head>
<body>
<div id="fb-root"></div>
<script type="text/javascript">
fbInit();
</script>
</body>
</html>
函数fbInit(){
FB.init({
appId:'12345',cookie:true,
状态:true,xfbml:true
});
}
if(FB.getSession()!=null){
//用户登录后,继续执行程序。
};
fbInit();
或者,更好的是,在
$(document).ready()中(使用jQuery)如果可以的话,使用php方案。。更好…可能不相关,但在未确保您之前已登录的情况下不要使用/me。查看我的答案以获得更好的选项。此外,您应该将#fb root
div放在脚本标记之前。这样可以确保在脚本执行之前对其进行定义。
<html>
<head>
<script src="http://connect.facebook.net/en_US/all.js" type="text/javascript"></script>
<script type="text/javascript">
function fbInit() {
FB.init({
appId: '12345', cookie: true,
status: true, xfbml: true
});
}
if(FB.getSession() != null) {
// user logged in, continue with the program.
};
</script>
</head>
<body>
<div id="fb-root"></div>
<script type="text/javascript">
fbInit();
</script>
</body>
</html>