Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.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
Email 使用Facebook帐户登录我的网站_Email_Facebook Javascript Sdk_Facebook Login - Fatal编程技术网

Email 使用Facebook帐户登录我的网站

Email 使用Facebook帐户登录我的网站,email,facebook-javascript-sdk,facebook-login,Email,Facebook Javascript Sdk,Facebook Login,我正在尝试将facebook登录按钮合并到我的网站主页中。我已将其与应用程序连接,因此如果用户已注册,我有应用程序id和密码 我使用了facebook上的JavaScript SDK,但当我按下facebook的登录按钮时,授权后,什么都没有发生,我的网站主页再次显示。有人知道如何从Javascript SDK获取用户的电子邮件吗?我想在登录后重定向到另一个页面,但登录后它只停留在该页面上 <div id="fb-root"></div> <script>

我正在尝试将
facebook登录按钮
合并到我的网站主页中。我已将其与应用程序连接,因此如果用户已注册,我有
应用程序id
密码

我使用了facebook上的
JavaScript SDK
,但当我按下facebook的登录按钮时,授权后,什么都没有发生,我的网站主页再次显示。有人知道如何从Javascript SDK获取
用户的电子邮件吗?我想在登录后重定向到另一个页面,但登录后它只停留在该页面上

<div id="fb-root"></div>
 <script>

   window.fbAsyncInit = function() 
   {

       FB.init({
          appId      : '178124332351909', // App ID
          channelUrl : 'channel.html', // Channel File
          status     : true, // check login status
          cookie     : true, // enable cookies to allow the server to access the session
          xfbml      : true  // parse XFBML
       });

       FB.Event.subscribe('auth.authResponseChange', function(response) 
       {
           if (response.status === 'connected') 
           {
               alert("connected");
               testAPI();
           } 
           else if (response.status === 'not_authorized') 
           {
               alert("nt connected");
               FB.login();
           } 
           else 
           {
               alert("else");
               FB.login();
           }
      });
    };

     // Load the SDK asynchronously
     (function(d){
      var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
      if (d.getElementById(id)) {return;}
      js = d.createElement('script'); js.id = id; js.async = true;
      js.src = "//connect.facebook.net/en_US/all.js";
      ref.parentNode.insertBefore(js, ref);
     }(document));

     // Here we run a very simple test of the Graph API after login is successful. 
     // This testAPI() function is only called in those cases. 
     function testAPI() 
     {
        alert("in testapi");
        console.log('Welcome!  Fetching your information.... ');
        FB.api('/me', function(response) 
        {
            console.log('Good to see you, ' + response.name + '.');
        });
     }

 </script>

window.fbAsyninit=函数()
{
FB.init({
appId:'178124332351909',//应用ID
channelUrl:'channel.html',//频道文件
状态:true,//检查登录状态
cookie:true,//启用cookie以允许服务器访问会话
xfbml:true//解析xfbml
});
FB.Event.subscribe('auth.authResponseChange',函数(响应)
{
如果(response.status===“已连接”)
{
警报(“已连接”);
testAPI();
} 
else if(response.status===“未授权”)
{
警报(“连接新界”);
FB.login();
} 
其他的
{
警惕(“其他”);
FB.login();
}
});
};
//异步加载SDK
(职能(d){
var js,id='facebook jssdk',ref=d.getElementsByTagName('script')[0];
if(d.getElementById(id)){return;}
js=d.createElement('script');js.id=id;js.async=true;
js.src=“//connect.facebook.net/en_US/all.js”;
ref.parentNode.insertBefore(js,ref);
}(文件);
//在这里,我们在登录成功后运行一个非常简单的Graph API测试。
//此testAPI()函数仅在这些情况下调用。
函数testAPI()
{
警报(“测试中”);
log('欢迎!获取您的信息…);
FB.api('/me',函数(响应)
{
log(“很高兴见到你,+response.name+”);
});
}
参考:

请帮助如何重定向到其他页面

  • 要请求
    电子邮件的权限
    ,请将
    Fb.login()
    替换为:

    FB.login(function(response)
    {
        if(response.status == 'connected'){
            alert('I am connected')
        }
    },{scope: 'email'});
    
  • 要在成功登录后将用户重定向到其他页面,只需在
    testAPI()
    函数中编写重定向代码:

    function testAPI()
    {
        alert("in testapi");
        console.log('Welcome!  Fetching your information.... ');
        FB.api('/me', function(response) 
        {
           console.log('Good to see you, ' + response.name + '.');
        });
        window.location="http://www.newlocation.com";  // HERE
    }
    

  • 可能有一个原因:

    • 当您单击登录按钮>>时,它会尝试打开弹出窗口>>如果“允许弹出被阻止”>>则它只会刷新页面,用户会认为什么都没有发生
    如果你想得到用户的电子邮件,那么你可以把它作为一个“perms”参数传递,比如这样

    <div class="fb-login-button" onclick="fbLoginClick();" perms="email"><div>
    
    
    
    对于重定向,我编写了与u相同的代码…但是在登录后,当我单击“后退”按钮时,它不会返回…你是说重定向成功了?你为什么要回去?是否因为打开应用程序时自动重定向?如果是,那么你可以制作一个facebook按钮,或者你可以在ingonito浏览器中运行你的应用程序,或者清除浏览器的缓存并运行。好的…事实上,我是用我的fb登录创建应用程序的…当我在mysite中单击login时…它会询问邮件id和pwd…如果是我的id,那么它会显示我的个人资料名称…否则它不会显示任何一个名称…为什么我不明白…你是说只有“你”才能登录吗?如果是这样,请转到应用程序设置并将
    沙盒模式切换到
    关闭。(从转到应用程序仪表板)如果答案对您有帮助,您可以将其标记为正确。干杯