Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 登录时使用Facebook Open Graph API时出错_Javascript_Jquery_.net_Facebook_Facebook Graph Api - Fatal编程技术网

Javascript 登录时使用Facebook Open Graph API时出错

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

如何使用OpenGraphAPI显示facebook登录按钮,并在成功登录后获取用户名和电子邮件?我试过了,但没有成功

我在标题部分有以下内容:

<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>