Facebook API(javascript)获取最新的学校教育信息

时间:2013-05-01 19:00:29

标签: facebook-javascript-sdk

我对我的网站的facebook api很新,我正在使用javascript sdk。我想向用户提供最新的学校信息,包括学校名称,课程和学习年份。这是我到目前为止,但它打破了登录脚本并返回'response.education.school is undefined'。我猜我需要某种for循环才能通过教育阵列,因为大多数用户都列出了多所学校?

function login() {
    FB.login(function(response) {
        if(response.authResponse) {
            // connected
            FB.api('/me', function(response) {
                fbLogin(response.id, response.name, response.firstname, response.email, 
                        response.education.school.name, response.education.concentration.name, response.education.year.name);
            });
        } else {
            // cancelled
        }
    }, {scope: 'email, user_education_history, user_hometown'});
}

1 个答案:

答案 0 :(得分:1)

  

response.education.school未定义

这是因为responce.education是一个对象数组。这将是我的一个例子(删除实际信息)

"education": [
    {
      "school": {
        "id": "", 
        "name": ""
      }, 
      "year": {
        "id": "", 
        "name": ""
      }, 
      "concentration": [
        {
          "id": "", 
          "name": ""
        }
      ], 
      "type": ""
    }, 
    ...
  ]

您需要对其进行迭代并处理每个教育步骤,例如

for(ed in response.education) {
   var school = response.education[ed].school;
   var schoolName = school.name;
   ...
}

等等;您当前正在将对象结构传递给无法处理它的fbLogIn。如果您想要最新的学校教育,您只需选择具有最新year.name值的学校。