0

angular + laravel(5.2)アプリケーションにFacebook機能でログインを追加するためにhttps://github.com/sahat/satellizerを使用しています。

FacebookグラフAPIを呼び出すためにphpで使用しているコードは次のとおりです

 $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、名前、メールをURLのフィールドとして追加しようとしました

 $profileResponse = $client->request('GET', 'https://graph.facebook.com/v2.5/me?fields=id,name,email', [
        'query' => $accessToken
    ]);

それでもIDと名前のみを返しています。

上記のリクエストによって返されたトークンを使用して、Graph API Explorer でも試してみました。適切なレスポンスを示します。

ここに画像の説明を入力

ありがとう

4

3 に答える 3

0

フィールド「email」は、ユーザーが「email」権限を付与した後にのみ User オブジェクトでアクセスできます。ここに画像の説明を入力

于 2016-01-12T13:17:29.467 に答える