1

私はphonegap facebook Connect pluginを使用して、アプリでFacebookのログインを有効にしています。 しかし、Facebookの電子メールは未定義として返されています。Facebookのメールはphonegap facebookConnectプラグインからundefinedとして返されます

私のコードに何かを追加する必要がありますか? 私はこの問題をインターネット上で調べました。私のコードはうまくいくようです。電子メールアドレス以外はすべて返されます。あなたがここに

を助けることができる場合、私は感謝

は私のjavascriptのコードです:

facebookConnectPlugin.api('/me?fields=id, email, link, name, picture', ["public_profile"],function(data){ 
     var fb_user_id = data.id; 
     var fb_email = data.email; 
     var fb_name = data.name; 
     var fb_picture_url = data.picture.data.url; 
     var fb_user_link = data.link; 
     alert("fb_email" + fb_email); 
    }); //end api call 

編集:

私はこのコードでテストユーザーアカウントを試してみましたが、メールアドレスが返さ手に入れました。しかし、これでテストしていた実際のアカウントは機能しません。私は、しかし、これは私が戻って私がやっていたこの問題の回避策を見つける「FACEBOOK_NON_JSON_RESULT」

facebookConnectPlugin.api('/me?fields=id, email, link, name, picture', ["public_profile", "email"],function(data){ 
      var fb_user_id = data.id; 
      var fb_email = data.email; 
      var fb_name = data.name; 
      var fb_picture_url = data.picture.data.url; 
      var fb_user_link = data.link; 
      alert("fb_email" + fb_email); 
     }); //end api call 
+0

おそらく、スコープのアクセス許可に 'email'を追加する必要がありますか?すべてのフィールドが利用できるわけではありません。 – Searching

+0

@Searching thanksありがとうございました。実際に私はこのコードをテスト用のユーザーアカウントとテスト用のfacebookアプリ(実際のFacebookアカウントと実際のアプリではなく)で試してみました。だから実際のアカウントで起こっていた。私はこの質問を新しい発見で更新します。 – Sarah

+0

あなたが見ることができるように(私の編集で)@Searchingは電子メールの許可で追加しましたが、悪いデータが戻ってきました...私は今動作する電子メールの許可で別の要求をしました。先端のおかげで – Sarah

答えて

0

を述べてしまったデータとして動作しませんでした、次のように電子メールの許可に追加しようとしたより多くのテストでは

2つの別々のAPI要求が以下のように表示されます:

facebookConnectPlugin.api('/me?fields=email', ["email"], function(apiResponse) { 

      //alert("api" + JSON.stringify(apiResponse)); 
      fb_email = apiResponse.email; 
      alert("fb_email" +fb_email); //email being retrieved successfully 
      facebookConnectPlugin.api('/me?fields=id, name, link, picture', ["public_profile"],function(data) { 
       alert("data" + JSON.stringify(data)); 

       var fb_user_id = data.id; 
       var fb_name = data.name; 
       var fb_picture_url = data.picture.data.url; 
       var fb_user_link = data.link; 

       alert("fb_user_id" + fb_user_id);   
       alert("fb_name" + fb_name); 
       alert("fb_picture_url" + fb_picture_url); 
       alert("fb_user_link" + fb_user_link); 
       //do stuff with facebook user data here 
      } 

      ,function(error){ 
        //api call failed 
        alert("api call Failed: " + JSON.stringify(error)); 
      }); //end api       
    } 

    ,function(error){  

      alert("email api call Failed: " + JSON.stringify(error)); 
    }); //end api  

これは完璧です!

関連する問題