2017-08-16 8 views
-1

私はjavascript sdkを使って自分のウェブサイトでfacebook認証を使用しています。私は自分の電子メールと名前を取得できますが、ログインしている場合は自分のメールアドレスを取得できません(名前は私のfbデベロッパーアプリです)。facebookを使ってfacebookのメールを受け取ることができないjavascript sdk

誰もまだFacebookにログインしていないのに何も起こらない場合は、ログインを求めます。私はそれが私のアプリにログインするはずの警告を入れて、それは実際には電子メールではなく、名前を返します。しかし、それが私の場合、私は両方を取得します。それはなぜですか?

は、ここに私のコードです:

<%-- Facebook conection script--%> 
<script src="//connect.facebook.net/en_US/all.js"></script> 
<script> FB.init({ 
appId: '334351783684824', 
cookie: true, 
xfbml: true, 
version: 'v2.8' 


}); 

    function fbAuthUser() { 
     FB.login(checkLoginStatus);; 
    } 

    function checkLoginStatus(response) { 
     if (response.status === 'connected') { 
      FB.api('/me', 'GET', { fields: 'email,name' }, function (response) { 
       alert(response.email + "; " + response.name); 
       Ajax(response.email, response.name); 
      }); 
     } 
    } 


    function Ajax(expressao1, expressao2) { 
     var request = { email: expressao1, nome: expressao2 } 
     $.ajax({ 
      url: 'login.aspx/LoginExterno', 
      method: 'post', 
      contentType: 'application/json', 
      data: JSON.stringify(request), 
      dataType: 'json', 
      success: function (resp) { 
       window.location.href = resp.d; 
      }, 
      error: function() { } 
     }) 
    } 
</script> 

すでに彼/彼女ならば、ログインし、データを取得した後、インデックスにユーザーをリダイレクトするC#の機能の背後にあるコードにアクセスするには、そのAjaxの機能を使用することになっています彼/彼女が持っていない場合は、アカウントを持っているか、またはレジストリに。おそらくAjax関数には入っていません。電子メールパラメータは未定義です。しかし、両方が存在するときはそれがあります。

どうすればメールを受け取ることができますか?

+0

他のアカウントの電子メールを取得できないというスレッドがたくさんあります。すべてのユーザーアカウントに電子メールがあるわけではありません。 – luschn

+0

こんにちは。そうです、私はそれらのいくつかを読んで、私はそれらを試しましたが、私はまだそれを得ることができません。 – taiko

+0

私は2人にそれをテストするように頼んだが、それを得ることができなかった。そして、はい、彼らは彼らのFacebookのアカウントに電子メールを持っています。私は彼らのfacebookプロフィールにそれを表示しようと依頼しました。しかしそれでもそれを得ることはできません。 – taiko

答えて

0

おっと、私はついにそれを得ました。 FB.Login関数では、スコープを追加する必要があり、ユーザーは許可を与えなければなりません。私のコードでは、次のようになります:

FB.login(checkLoginStatus,{scope: 'email'});; 
関連する問題