2012-06-10 7 views
5

Facebook Connect APIを使用して、自分のサイトにサインアップするときにユーザーのメールアドレスを取得します。これは完全に99%以上の時間で動作しますが、電子メールの許可を含む自分のサイトのアクセス許可を与えた後、グラフAPIにユーザーのデータを照会すると、Facebookはその人の電子メールアドレスとして大きな数値(たとえば14036774009)を返します。Facebook Graph APIがメールアドレスの代わりに数字を返す

これまでのところ、数値は常に異なり、常に11桁で、Graph APIの他のすべてのユーザーデータが有効です。私はこの問題を自分が管理しているFacebookアカウントで再現することはできませんでした。

いくつかの点で、大きな数字は、サードパーティのアプリケーションにメインアドレスではなく転送先アドレスを与えることを選択した人のためにFacebookが生成するランダムプロキシメールアドレスを思い出させます(プロキシアドレスはapps + [email protected]mail.facebook.com)

誰もこの動作や解決方法について説明できますが、いつも有効な電子メールアドレスを取得できますか?

答えて

2

これはバグです。すでにフェイスブックに報告されています:

https://developers.facebook.com/bugs/298946933534016

グラフのエクスプローラを使用した場合にも起こっているようだ - https://developers.facebook.com/tools/explorerが、唯一の一部のユーザーのために。私の場合は約0.2%です。 Facebookはあなたが悪いのメール値を与える場合

  • 、手動で彼/彼女の電子メールをユーザーに尋ねる:

    だから、それが修正されるまで、あなたは、2つのオプションがあります。

  • 長期間保存されたアクセストークンを保存し、定期的に再試行して正しいメールが返ってきたかどうかを確認してください。
0

あなたはまだ何らかの古い認証ダイアログを使用していますか? プロキシの電子メールアドレスを指定できるのは、古い認証ダイアログのみです。

+0

ここでは、FB JS SDKを初期化して呼び出す方法について説明します。数ヶ月前にこれを更新して、新しいOAuthログインベースのシステムをサポートしていれば、それはあなたが意味するものです。 FB.init({appId: '...'、ステータス:false、cookie:true、oauth:true、xfbml:false、channelUrl: "..."}); FB.login(function(response){...}、{scope: 'email'}); – scyclops

0

これはFacebookに携帯電話番号でサインアップした人のために返された数字はそのままです。

彼はまだFacebookにそれを与えていない可能性があるので、ユーザーの電子メールアドレスを取得するオプションはありません。

関連する問題