2013-05-01 69 views
0

我对我的网站的Facebook API非常陌生,我使用javascript sdk。我想获得用户最新的学校信息,包括学校名称,课程和学习年份。这是我迄今为止,但它打破登录脚本,并返回'response.education.school是未定义'。我猜测我需要某种形式的循环才能通过教育阵列,因为大多数用户都有不止一所学校?Facebook API(javascript)获取最新的学校教育信息

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'}); 
} 
+0

你是对的,它的主要阵列。还要确保你有'user_education_history'权限并且添加'fields = education'和'/ me'以确保你获得了数据。 – 2013-05-02 06:50:40

回答

1

response.education.school未定义

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

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

您需要遍历它,例如处理每个educaional一步

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

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