2013-01-03 69 views
10

我打電話Facebook的圖形API沒有返回的電子郵件

https://graph.facebook.com/<user_id>/?access_token=<valid_token> 

或只是

https://graph.facebook.com/me/?access_token=<valid_token> 

並取回JSON對象不包含我需要初級用戶的電子郵件。 我爲應用程序設置了電子郵件許可權,並且沒有任何效果。 什麼可能是錯的?

+1

你調試的訪問令牌驗證它得到了電子郵件的權限? –

+1

檢查您的訪問令牌是否包含'email'權限:https://developers.facebook.com/tools/debug – CBroe

+0

不,我沒有。我怎樣才能做到這一點? – heximal

回答

7

驗證你記得索要登錄請求的電子郵件的權限?

https://www.facebook.com/dialog/oauth?client_id=YOUR_APP_ID&redirect_uri=YOUR_REDIRECT_URI&state=SOME_ARBITRARY_BUT_UNIQUE_STRING&scope=email 

Facebook API reference

+0

謝謝,這正是我忘了做的 – heximal

7

您的訪問令牌中可能沒有email權限。

您可以用Acess Token Debugger

+1

再次感謝,沒有冒犯,但我接受安德烈亞斯的回答是正確的原因,這是真正的原因。但是你的建議對於理解問題的根源非常有幫助。 – heximal

+0

完全沒有問題,您應該始終接受最適合您的答案。 –

3

我相信,你的問題是,即使授予權限來訪問電子郵件後,您是:您可以通過登錄請求中添加範圍參數是這樣的(&範圍=電子郵件)做到這一點無法通過Graph API獲取電子郵件信息。在較新的版本中,您需要將字段參數傳遞給API以獲取其他信息,例如電子郵件。默認情況下,它僅提供id和name作爲響應。請在下面找到如何從圖中獲取其他信息的示例:

https://graph.facebook.com/me?fields=id,email,first_name,gender,last_name,link,locale,name,timezone,updated_time,verified&access_token=<value of access_token>&debug=all 

希望這有助於您。

0

這可能是電子郵件未在Facebook中驗證。在這種情況下,Facebook不會通過API提供它。確保你的代碼處理這種情況。

1

由於API 2.5版本的發佈,你可以得到這樣的用戶電子郵件地址:https://graph.facebook.com/v2.5/me?fields=id,name,email

相關問題