2017-02-14 25 views
0

Мне нужно получить имя и фамилию от Facebook после успешной регистрации пользователя.Извлечь имя из Facebook с помощью cordova-plugin-facebook4

На самом деле у меня есть:

Facebook 
      .login(['email']) 
      .then((response) => { 
       /* 
       Here i need to get name and last name for later usage 
       */ 
       let facebookCredential = firebase.auth.FacebookAuthProvider 
        .credential(response.authResponse.accessToken); 

       firebase.auth().signInWithCredential(facebookCredential) 
        .then((success) => { 
         this.userProfile = success; 

         this.storage.set('facebookMethod_email', this.userProfile.email); 

         this.nav.setRoot(HomePage, 
          { 
          facebookUser: this.userProfile 
          }, 
          { 
           animate: true, 
           direction: 'forward' 
          }); 
        }) 
        .catch((error) => { 
         let prompt = this.alertCtrl.create({ 
         title: this.FAIL_TITLE, 
         subTitle: this.AUTH_FAILED_SUBTITLE, 
         buttons: [this.ACCEPT_BUTTON] 
         }); 
        prompt.present(); 
        }); 
      }) 
      .catch((error) => { 
       console.log(error) 
      }); 

И это прекрасно работает. Сначала он регистрирует поток с помощью facebook, а затем регистрируется в firebase. Но мне нужно получить эти атрибуты пользователя из facebook, чтобы хранить эту информацию отдельно.

Спасибо заранее! Иван.

ответ

1

Посмотреть полный проект здесь https://github.com/aaronksaunders/AngularFire2-Ionic2-Facebook

/** 
    * 
    * get the profile information from the Facebook user to add it to the database 
    * 
    * @returns 
    * 
    * @memberOf HomePage 
    */ 
    _FBUserProfile() { 

    return new Promise((resolve, reject) => { 
     Facebook.api('me?fields=id,name,email,first_name,last_name,picture.width(100).height(100).as(picture_small),picture.width(720).height(720).as(picture_large)', []) 
     .then((profileData) => { 
      console.log(JSON.stringify(profileData)); 
      return resolve(profileData); 
     }, (err) => { 
      console.log(JSON.stringify(err)); 
      return reject(err); 
     }); 
    }); 
    } 
+0

Прежде чем пытаться сделать это, я хотел бы посоветоваться с вами: что это команда, которую вы уже в хранилище ридми? $ Ионное состояние восстановления –

+0

, если вы сохранили все плагины, выполнение восстановления состояния будет устанавливать их все с соответствующей переменной, которую вы использовали, когда вы их первоначально установили. –

+0

Хорошо, большое вам спасибо! Он работает и решает мою проблему :) –