58

アプリケーションの一部のユーザーでは、ユーザーがアプリへの電子メール アクセスを許可している場合でも、電子メール フィールドは NULL を返します。デバッガー ツールのおかげでスコープ パラメーターとユーザー トークンの有効性を確認すると、すべて問題ありません。許可メールが受け入れられました。しかし、有効なユーザー トークンを持つユーザーの電子メールを Graph API に要求しても、まったく表示されません。

ユーザーが電子メールの許可を与えたとしても、アプリが電子メールを受信できないようにする方法はありますか?

ありがとう

4

14 に答える 14

11

同じ問題があります。それは私のローカルホストで正常に動作しています.Facebookのログインにphp SDKを使用しています.リクエストを送信すると、ユーザーの電子メール、名前などのすべてのフィールドが返されますが、サーバーでは何らかの形で機能していません.ユーザーの電子メールを返しません. 私はそれについて多くの研究開発を行っており、問題の解決策があります。:)

$profile = $facebook->api('/me?fields=email,first_name,last_name');

php-sdk を使用している場合、このようなフィールドを渡すだけで、email、first_name などが返されます。うまくいくことを願っています。ありがとう。

于 2015-10-12T05:39:28.823 に答える
8

ユーザーが電話番号でログインしている場合、Facebook はメールを送信しません。詳細については、 https://github.com/mkdynamic/omniauth-facebook/issues/61のコメントを参照してください。

于 2014-12-30T14:28:48.837 に答える
3

認証ボタンとともに電子メールの許可を与える必要があります。

authButton.setReadPermissions(Arrays.asList("email"));
于 2014-11-11T06:12:21.057 に答える
2

ユーザーが未確認の電子メール アドレスを持っている場合、Facebook は警告メッセージを表示するようになったため、@ozba ソリューションは適用できません。したがって、この問題が発生している場合は、ユーザーが電話番号を使用してサインアップした方がよいでしょう。 メールにアクセスしようとしたときのメッセージ

考えられる理由:

  • アカウントにメールアドレスがありません(電話番号のみ)
  • アカウントに確認済みのメールアドレスがありません
  • ユーザーは、電子メール アドレスの再確認を要求するセキュリティ チェックポイントを入力しましたが、まだ行っていないため、ユーザーの電子メール アドレスに到達できません。

チェック: https://developers.facebook.com/bugs/298946933534016

于 2015-04-17T07:57:30.883 に答える
2

場合によっては、Facebook がユーザーの有効なメール アドレスを持っていないことがあります。

email: 有効な RFC822 電子メール アドレスを含む文字列 - 注: ユーザーが電子メール アドレスを使用できない場合、このフィールドは null になる可能性があります

https://developers.facebook.com/docs/reference/api/user/を参照してください

于 2013-07-08T21:30:37.913 に答える
2

ドキュメントによると:

メールの許可をリクエストしても、メールアドレスを取得できるとは限らないことに注意してください。たとえば、誰かが電子メール アドレスではなく電話番号で Facebook にサインアップした場合、電子メール フィールドは空になることがあります。

nullこれで、一部のユーザーが電子メールを持っている理由が説明できます。

于 2016-12-13T04:38:38.033 に答える
1

Facebook は、そのユーザーが自分のアカウントに関連付けられた確認済みの電子メール ID を持っている場合にのみ、そのユーザーの電子メール ID を提供します。アプリが一部のユーザーの電子メール ID を取得できる場合、開発者には問題がない可能性があります。

于 2013-07-09T13:13:29.013 に答える
0

Facebook からの許可がもう 1 つ必要です。

Facebook dev 設定への (about_me) 許可を含め、アプリまたはコードにも..

于 2016-08-02T12:25:24.637 に答える
0

これを試すことができます。動作します String email = user.getProperty("email").toString(); String safeEmail = user.asMap().get("email").toString();

于 2014-01-24T13:14:48.363 に答える
-1
$loginUrl = $facebook->getLoginUrl(
  array(
    'req_perms' => 'email'
  )
);
于 2016-06-08T13:09:24.213 に答える