Search code examples
phpfacebook-graph-apifacebook-php-sdk

Permission to get user email with Facebook PHP SDK


I have a working integration with facebok api via PHP SDK and working login. Now I tried to add the permission for email as well with the following code, but when trying to connect/login to the app the email is not requested.

// login or logout url will be needed depending on current user state.
if ($me) {
  $logoutUrl = $facebook->getLogoutUrl();
} else {
  $loginUrl = $facebook->getLoginUrl(array(
    'req_perms' => 'email',
  ));
}

The error must be in this code since everything else works fine. Thanks!


Solution

  • Remove the comma you have after 'email' and redirect the browser to $loginUrl, like this:

    $loginUrl = $facebook->getLoginUrl(
      array(
        'req_perms' => 'email'
      )
    );
    
    echo '<script>top.location="'.$loginUrl.'";</script>';
    die();
    

    EDIT

    This was how it was done back in the day, now facebook have changed their API:s. For a more current solution, look at the other answers on this question.