我对我的网站的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'});
}
答案 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
值的学校。