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

等々; fbLogInあなたは現在、それを処理できないaobject 構造をあなたに渡しています。最新の学校教育が必要な場合は、最新のyear.name値を持つものを選択するだけです。

于 2013-05-02T09:30:10.030 に答える