2012-06-10 117 views
5

我正在使用Facebook Connect以及Facebook Graph API在用戶註冊我的網站時獲取用戶的電子郵件地址。這項工作完全超過99%的時間,但有時當我在給出我的網站權限(包括電子郵件許可權)後查詢用戶數據的Graph API時,Facebook返回大量數據(例如,14036774009)作爲該人的電子郵件地址。Facebook Graph API返回數字而不是電子郵件地址

到目前爲止,這些數字總是不同的,並且總是有11位數字,Graph API中的所有其他用戶數據都是有效的。我從來沒有能夠用我控制的Facebook帳戶複製這個問題。

在某些方面,大數字讓我想起Facebook爲那些選擇爲第三方應用提供轉發地址而不是其主要地址的人生成的隨機代理電子郵件地址(代理地址如下所示:apps + [email protected]mail.facebook.com)

任何人都可以解釋此行爲或解決它的方法(並始終獲得有效的電子郵件地址)?

回答

2

這是一個錯誤。已上報至Facebook:

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

這似乎是發生,甚至使用圖形資源管理器時 - https://developers.facebook.com/tools/explorer,但僅限於部分用戶。在我的情況下,大約有0.2%的時間。

所以,直到它是固定的,你有兩個選擇:

  • 如果Facebook給你一個不好的電子郵件值,問他/她的手動電子郵件的用戶。
  • 保存長期居住的訪問令牌並定期再試一次,看看您是否收到了正確的電子郵件。
0

你還在使用舊的認證對話框嗎? 提供代理電子郵件地址的能力僅在舊的認證對話框中

+0

下面是我如何初始化並調用FB JS SDK來觸發登錄。我幾個月前更新了這個版本,以支持新的OAuth登錄系統,如果這就是你的意思。 FB.init({appId:'...',status:false,cookie:true,oauth:true,xfbml:false,channelUrl:「...」}); FB.login(function(response){...},{scope:'email'}); – scyclops

0

這種情況發生在使用手機號碼註冊Facebook的人身上,返回的號碼就是這樣。

沒有選項可以查看用戶的電子郵件地址,因爲他可能尚未將其提供給Facebook。

相關問題