【问题标题】:Get User Detail using Facebook API使用 Facebook API 获取用户详细信息
【发布时间】:2014-12-13 04:22:55
【问题描述】:

我正在使用此功能获取 Facebook 用户详细信息

    <script>
      function statusChangeCallback(response) {
        console.log('statusChangeCallback');
        console.log(response);
        if (response.status === 'connected') {
          testAPI();
        } else if (response.status === 'not_authorized') {
          document.getElementById('status').innerHTML = 'Please log ' +
            'into this app.';
        } else {
          document.getElementById('status').innerHTML = 'Please log ' +
            'into Facebook.';
        }
      }

      function checkLoginState() {
        FB.getLoginStatus(function(response) {
          statusChangeCallback(response);
        });
      }

      window.fbAsyncInit = function() {
      FB.init({
        appId      : 'I enter here my aplication ID',
        cookie     : true,  
        xfbml      : true,  
        version    : 'v2.1' 
      });
      FB.getLoginStatus(function(response) {
        statusChangeCallback(response);
      });

      };

  (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'));

      function testAPI() {
        console.log('Welcome!  Fetching your information.... ');
        FB.api('/me?fields=id,first_name,last_name,email,gender,birthday,bio,hometown,education,quotes,cover,work,devices', function(response) {
          console.log('Successful login for: ' + response.name);
          document.getElementById('status').innerHTML =
            'Thanks for logging in, <br /><br />' 
            + response.id + '<br />'
            + response.first_name + '<br />'
            + response.last_name + '<br />'
            + response.name + '<br />'
            + response.email + '<br />'
            + response.gender + '<br />'
            + response.birthday + '<br />'
            + response.bio + '<br />'
            + response.quotes + '<br />'
            + response.location.name + '<br />'
            + response.hometown.name + '<br />'
            ;
        });
      }

    </script>
    <fb:login-button scope="public_profile,email, user_birthday, user_hometown, user_location, user_likes, user_activities, user_education_history, user_work_history, user_about_me" onlogin="checkLoginState();" data-auto-logout-link="true">
    </fb:login-button>

但是创建这个应用程序只对我有用

对于其他用户,某些字段未定义

前生日、简历、名言、地点、家乡、教育、工作

以这种方式为我输出(创建应用程序 ID)

感谢您的登录,

677362262358935

潘查尔

深渊

panchaldeep009@gmail.com

男性

1997 年 10 月 15 日

Web 开发人员、程序员、电子和通信工程师。

活在真理中,

印度古吉拉特邦瓦格拉

印度古吉拉特邦瓦格拉

但对于其他用户

感谢您的登录,

XXXXXXXXXXXXXXX(ID)

名字

名字

email@mail.com

男性

未定义(生日)

未定义(生物)

未定义(引号)

未定义(家乡)

未定义(位置)

【问题讨论】:

    标签: facebook api facebook-javascript-sdk


    【解决方案1】:

    为了使这些其他权限适用于所有人,您需要通过扩展权限的审核流程:https://developers.facebook.com/docs/apps/review/login

    https://developers.facebook.com/apps/[APP-ID]/review-status/
    

    ...然后点击“开始提交”。这些权限需要获得 Facebook 的批准,否则它们仅适用于在应用中具有角色(管理员、开发人员、测试人员)的用户。

    【讨论】:

    • 我如何在拼贴或高中类型的地方获得教育名称
    • 这将是“user_education_history”权限
    • 哦,是的,但它是通婚数组,如何解码并获取每个数组的名称值。
    【解决方案2】:

    它仅适用于您的用户,因为您必须已授权应用程序,范围定义了您的应用程序可以访问哪些数据,其他字段显示为未定义,因为应用程序没有权限。

    请查看:https://developers.facebook.com/docs/facebook-login/permissions/v2.2

    【讨论】:

    • 因为我不是深度开发者
    • 检查@luschn 答案,您必须通过审核流程才能授予您的应用程序访问这些字段的可能性:“如果您的应用程序要求的不仅仅是 public_profile、电子邮件和 user_friends,它将需要审核Facebook 之前,您的应用程序可以被应用程序开发人员以外的人使用”
    • 谢谢.... 更多帮助 我如何在输入拼贴或高中时获得教育名称
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-25
    • 1970-01-01
    • 2013-05-20
    相关资源
    最近更新 更多