0

我对我的网站的 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'});
}
4

1 回答 1

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;
   ...
}

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

于 2013-05-02T09:30:10.030 回答