在我的网站上登录Facebook:“;发生了一个错误。请稍后再试。”;

在我的网站上登录Facebook:“;发生了一个错误。请稍后再试。”;,facebook,Facebook,我正在尝试在我的网站上实现Facebook登录功能。我按照说明进行了操作,并且在我看来输入的代码是正确的。这是我的密码: <div id="fb-root"></div> <div class="fb-login-button" data-scope="email" >Login with Facebook</div> <script> window.fbAsyncInit = function() { FB.ini

我正在尝试在我的网站上实现Facebook登录功能。我按照说明进行了操作,并且在我看来输入的代码是正确的。这是我的密码:

<div id="fb-root"></div>
<div class="fb-login-button" data-scope="email" >Login with Facebook</div>
<script>
    window.fbAsyncInit = function() {
      FB.init({
        appId      : 'MY_APP_ID',
        status     : true, 
        cookie     : true,
        xfbml      : true,
        oauth      : true,
      });
    };
    (function(d){
       var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
       js = d.createElement('script'); js.id = id; js.async = true;
       js.src = "//connect.facebook.net/en_US/all.js";
       d.getElementsByTagName('head')[0].appendChild(js);
     }(document));

使用Facebook登录
window.fbAsyninit=函数(){
FB.init({
appId:“我的应用程序ID”,
状态:正确,
曲奇:是的,
xfbml:是的,
真的,
});
};
(职能(d){
var js,id='facebook jssdk';if(d.getElementById(id)){return;}
js=d.createElement('script');js.id=id;js.async=true;
js.src=“//connect.facebook.net/en_US/all.js”;
d、 getElementsByTagName('head')[0].appendChild(js);
}(文件);

如果你看到我不知道的东西,请告诉我。就我所知,这应该是可行的(在遵循facebook的指示之后)


提前感谢您的帮助。

我假设您正在用实际ID替换我的应用程序ID,并关闭脚本部分。如果这不是问题的话,除了您提供的代码片段之外,我还需要查看更多的HTML源代码

下面是一个示例html页面源代码,它有一个用于登录/注销的按钮,具体取决于您当前是否登录。登录时,它还会显示登录的用户配置文件pic。这是我基于facebook文档制作的一个例子,但我已经测试过了,它很有效。显然,您需要用实际的应用程序id替换应用程序id

<html>
<head>
  <title>Hello World</title>
  <meta name="viewport" content="initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
</head>
<body>

<!-- Display a login if you're coming to the app from outside of facebook -->
 <div id="login">
 <p><button onClick="loginUser();">Login</button></p>
 </div>

 <div id="logout">
   <p><button  onClick="FB.logout();">Logout</button></p>
 </div>

<script>
   function loginUser() {    
     FB.login(function(response) { }, {scope:'email'});     
   }
</script>

<p>Misc page content here...</p>

<!-- Initialize the fb javascript SDK -->
<script>
  window.fbAsyncInit = function() {
    FB.init({ appId: '1234567...', 
              status: true, 
              cookie: true,
              xfbml: true,
              oauth: true});
    FB.Event.subscribe('auth.statusChange', handleStatusChange);  
  };
</script>

<!-- Callback triggered when the user authenticates -->
 <script>
  function handleStatusChange(response) {
      document.body.className = response.authResponse ? 'connected' : 'not_connected';
      if (response.authResponse) {
        console.log(response);

        updateUserInfo(response);
      }
    }
 </script>

<!-- fb javascript SDK import -->
<div id="fb-root"></div>
<script>
  (function() {
    var e = document.createElement('script'); e.async = true;
        e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
        document.getElementById('fb-root').appendChild(e);
        }());
</script>

<!--Display the user's face when they log in -->
<div id="user-info"></div>
 <script>
   function updateUserInfo(response) {
     FB.api('/me', function(response) {
       document.getElementById('user-info').innerHTML = '<img src="https://graph.facebook.com/' + response.id + '/picture">' + response.name;
     });
   }
 </script>

<!-- This style sheet changes the name of the body to reflect logged in status, thereby
     cueing to the login logout buttons which one should be visible -->
<style>
  body.connected #login { display: none; }
  body.connected #logout { display: block; }
  body.not_connected #login { display: block; }
  body.not_connected #logout { display: none; }
</style>
</body>
</html>

你好,世界
登录

注销

函数loginUser(){ 登录(函数(响应){},{scope:'email'}); } 其他页面内容在这里

window.fbAsyninit=函数(){ FB.init({appId:'1234567…', 状态:正确, 曲奇:是的, xfbml:是的, oauth:true}); FB.Event.subscribe('auth.statusChange',handleStatusChange); }; 功能手柄状态更改(响应){ document.body.className=response.authResponse?'connected':'not_connected'; if(response.authResponse){ 控制台日志(响应); 更新服务信息(答复); } } (功能(){ var e=document.createElement('script');e.async=true; e、 src=document.location.protocol+'//connect.facebook.net/en_US/all.js'; document.getElementById('fb-root').appendChild(e); }()); 函数updateUserInfo(响应){ FB.api('/me',函数(响应){ document.getElementById('user-info')。innerHTML=''+response.name; }); } body.connected#login{显示:无;} body.connected#注销{display:block;} body.not#connected#login{display:block;} body.not#connected#logout{display:none;}
当我遇到同样的问题时,我就知道了。 您不应该在
oauth:true
之后添加
。见下文

FB.init({
    appId      : 'MY_APP_ID',
    status     : true, 
    cookie     : true,
    xfbml      : true,
    oauth      : true, //',' here is causing the problem
});

是的,脚本关闭确实被切断了,我的应用程序ID被用作我实际应用程序ID的占位符(我输入)。Joseph,我使用了你的代码,我得到了相同的错误。我不知道问题出在哪里。好的,我在“基础”页面上输入了“应用程序域”的主页url,现在它在你的Facebook开发者页面上立即打开和关闭,这个应用程序的应用程序设置(对应于你正在使用的API密钥),你设置了“站点域”和“站点url”吗?这两个都必须设置,并与上面html页面的放置位置相匹配。我再次查看了我的设置,对于上面的示例,我还将“画布URL”设置为此html页面的URL,并将“画布FBML/iframe”设置为iframe。我不知道这是否会产生影响。请关闭脚本进行更新。