2015-12-27 57 views
-2

我正在使用Facebook V2.5 API。Facebook護照策略不返回電子郵件字段

路線:

app.get('/auth/facebook', passport.authenticate('facebook', { scope : 'email' })); 

配置:

passport.use(new FacebookStrategy({ 

     clientID: CLIENTID, 
     clientSecret: CLIENTSECRET, 
     callbackURL: callbackURL, 
     profileFields: ["emails", "displayName", "gender"] 
    }, 

    function (token, refreshToken, profile, done) { 
     console.log(profile) 

     ... 
    })); 

資料中沒有 「電子郵件」 字段。

我試圖傳遞範圍爲數組太

scope : ['email'] 
+0

的可能的複製[護照Facebook的沒有得到電子郵件(HTTP:/ /stackoverflow.com/questions/25832763/passport-facebook-dont-get-email) –

+0

除了我的代碼已提供所有解決方案。 –

回答

0

我有同樣的問題:用我的測試帳戶,並與範圍的工作,我突然「失去」的電子郵件地址,沒有辦法得到它再次使用這裏找到的所有提示。

好奇地使用一個新的Facebook帳戶,電子郵件地址出現。

=>我去了我在Facebook的測試帳戶,並撤銷了我的應用程序的所有權利。之後,我再次登錄到我的應用程序並授予所需的所有權限。此後我再次收到電子郵件地址。

希望這會有所幫助。

+0

你如何撤消應用程序權限?有同樣的問題,不能看到FB允許我管理權利。 –

+0

@DanDonaldson:進入你的FB賬戶設置,然後到應用程序。在那裏你應該看到使用你的FB帳戶登錄的所有應用程序。選擇一個應用程序並編輯訪問權限或撤消它們。 – Chrigel

0

確保你定義「電子郵件」範圍,同時登錄,那麼你可以當你問graph.facebook.com得到它:

$url = 'https://www.facebook.com/dialog/oauth'; 
$params = array(
    'client_id' => $this->strategy['app_id'], 
    'redirect_uri' => $this->strategy['redirect_uri'], 
    'scope' => 'email', 
); 
相關問題