Facebook api 未定义的问题

Facebook api undefined issue

这是我第一次尝试使用 Facebook javascript SDK,所以请耐心等待,但我在尝试从 Facebook API 检索电子邮件地址时遇到问题。我的网站中有以下代码:

<script>
  window.fbAsyncInit = function() {
    FB.init({`enter code here`
      appId      : 'my id',
      xfbml      : true,
      version    : 'v2.5'
    });
  };

  (function(d, s, id){
     var js, fjs = d.getElementsByTagName(s)[0];
     if (d.getElementById(id)) {return;}
     js = d.createElement(s); js.id = id;
     js.src = "//connect.facebook.net/en_US/sdk.js";
     fjs.parentNode.insertBefore(js, fjs);
   }(document, 'script', 'facebook-jssdk'));
</script>

我想我已经成功连接到 api,因为当我添加一个赞按钮进行测试时:

<div
  class="fb-like"
  data-share="true"
  data-width="450"
  data-show-faces="true">
</div>

它似乎加载了 api 中的所有按钮。

当我尝试检索用户名时,却收到一条错误消息 "undefined"。这是我尝试检索用户名的代码

jQuery(".test123").click(function(){

FB.api(
  '/me',
  'GET',
  {"fields":"id,name,email"},
  function(response) {
      alert('Your name is ' + response.name);
  }
);

我仔细检查了图表 API,我似乎使用了正确的方法,所以不确定可能是什么问题,我看到的所有其他文章似乎都发出了相同的调用或类似的东西更简单如:

FB.api('/me', function(response) {
  alert('Your name is ' + response.name);
});

但我还没有任何效果。

您需要先授权FB.login用户:

FB.login(function(response) {
    if (response.authResponse) {
        //user just authorized your app

    }
}, {scope: 'email,public_profile'});

这是一个教程:http://www.devils-heaven.com/facebook-javascript-sdk-login/

...这里是 FB.login 的官方页面:https://developers.facebook.com/docs/reference/javascript/FB.login/

未经授权,您无法获取任何用户数据。