此调用需要页面访问令牌

2 facebook-graph-api facebook-javascript-sdk

我正在尝试使用 facebook 登录,已完成。我需要获取用户信息,例如姓名、电子邮件、家乡、位置、性别、profile_pic。但我只能获取登录用户的用户名。我还向 api 添加了 fields 参数。您可以在下面的代码中看到这一点。

<div id="container"></div>
<script>
 var accessToken;
 window.fbAsyncInit = function() {
   FB.init({
    appId      : 'App Id',
    cookie     : true,
    xfbml      : true,
    version    : 'v3.1'
   });

   FB.AppEvents.logPageView();   

   function getuserProfile() {
    FB.api('/me?fields=id,name,email,birthday,gender,hometown,location,profile_pic', {access_token : accessToken }, function (response){
      console.log(response);
    });
 }  

FB.login(function(response) {
  if (response.status === 'connected') {
    accessToken = response.authResponse.accessToken;
    getuserProfile();
  } else {
    console.log('not connected');
  }
}, {scope: 'email'});  
};

(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 = "https://connect.facebook.net/en_US/sdk.js";
  fjs.parentNode.insertBefore(js, fjs);
 }(document, 'script', 'facebook-jssdk'));
Run Code Online (Sandbox Code Playgroud)

Nik*_*nko 5

某些字段可能被指定错误,这就是为什么Facebook API即使其他一切看起来都很好也会出现这样的错误。例如,profile_pic字段可能会导致这样的错误,它应该类似于picture.type(large). 另请参阅:FacebookGraphAPIError: (#210) 此调用需要页面访问令牌