我使用https://github.com/sahat/satellizer在我的angular + laravel(5.2)應用程序中添加帶有facebook功能的登錄。衛星導航:在登錄facebook時不返回電子郵件
這裏是我使用PHP中調用一個Facebook圖形API
$client = new GuzzleHttp\Client();
$params = [
'code' => $request->input('code'),
'client_id' => $request->input('clientId'),
'redirect_uri' => $request->input('redirectUri'),
'client_secret' => Config::get('app.facebook_secret')
];
// Step 1. Exchange authorization code for access token.
$accessTokenResponse = $client->request('GET', 'https://graph.facebook.com/v2.5/oauth/access_token', [
'query' => $params
]);
$accessToken = json_decode($accessTokenResponse->getBody(), true);
// Step 2. Retrieve profile information about the current user.
$profileResponse = $client->request('GET', 'https://graph.facebook.com/v2.5/me', [
'query' => $accessToken
]);
$profile = json_decode($profileResponse->getBody(), true);
的代碼,但它只是在迴應中傳回的ID和名稱。我曾嘗試在網址中添加ID,名稱和電子郵件地址爲
$profileResponse = $client->request('GET', 'https://graph.facebook.com/v2.5/me?fields=id,name,email', [
'query' => $accessToken
]);
它仍然只返回id和名稱。
我也試圖在Graph API Explorer中使用由上述請求返回的令牌。它顯示適當的反應。
感謝
相應地更新了我的答案。我沒有看到使用任何範圍參數,所以我假設你沒有授權的電子郵件許可。 – luschn
我已經檢查過,給這個應用程序的電子郵件許可。也正如你可以看到我的問題,我也嘗試添加字段來請求網址https://graph.facebook.com/v2.5/me?fields=id,name,email,但它仍然只返回id和名稱 –
所以你在api資源管理器中用你自己的應用程序來試試它?你有完全相同的迴應嗎? – luschn