1

私はAngularJS/IonicプロジェクトでFirebaseを使ってFacebook認証で自分のアプリにアクセスしています。FirebaseとAngularJSで公開プロフィールを取得

認証がうまくいって、いくつかのデータ(Display_name、電子メール、urid、url写真など)を取得しますが、もっと必要です。

私はそれに取り組む必要があるので、私のプロジェクトの名字を取得する必要があります。その人が情報を共有することを承諾すると、彼女は自分の公開プロフィールを共有していると言われますが、公開されているデータには公開プロフィールで提供されているFacebookの書類はありません。

here

私はこれをプログラムするFirebaseドキュメントを使用。 addScopeを使用して必要なものを追加する部分がありますが、パブリックプロファイルはデフォルトで尋ねられますが、とにかく追加しました。 (私はリンクを投稿できません、StackOverflowは私の評判が低すぎると言います)。

$scope.FBLogin = function(){ 
firebase.auth().signInWithPopup(provider).then(function(result) { 

    var token = result.credential.accessToken; 
    var user = result.user; 
    var profile = result.user.public_profile; 
    console.log("success") 
    console.log(result); 
    console.log(user); 


}).catch(function(error) { 
    // Handle Errors here. 
    var errorCode = error.code; 
    var errorMessage = error.message; 
    // The email of the user's account used. 
    var email = error.email; 
    // The firebase.auth.AuthCredential type that was used. 
    var credential = error.credential; 
// ... 
}); 
}; 

ここでログイン:だから

Log here

、私は "表示名" を使用する必要がありますする必要はないので。人々は時には実際の名前を使用しないことがあります。

FirebaseとAngularJSを使用してその情報を取得する方法を知っている人はいますか?

答えて

0

現在、これはFirebaseではサポートされていません。そのデータを取得するには、Facebookに余分なAPI呼び出しを行う必要があります。

result.credential.accessTokenにはFacebookアクセストークンが含まれています。そのアクセストークンを使用すると、Facebookのプロフィールデータを取得できます。ここでのFacebookとのことを行う方法の例です: How to get user profile info using access token in php-sdk

AJAXはGET「https://graph.facebook.com/me?access_token=」AngularJSでそれを行うか、どのようにあなたが欲しいものをフィルタリングしない方法を探している人のために+ result.credential.accessToken

+0

ありがとうございました! =) 私が探していたものです。 –

0

これは私がbojeilが私に与えた情報を使ってどのようにしたのですか(もう一度ありがとう!)

var token = result.credential.accessToken; 
var user = result.user; 

$http.get('https://graph.facebook.com/v2.5/me? access_token='+token+'&fields=id,name,first_name,last_name,email') 
    .success(function(jsonService){ 
    $scope.user.firstName= jsonService.first_name; 
    $scope.user.lastName= jsonService.last_name 
    $scope.user.email = jsonService.email; 
    }); 
関連する問題