Получите электронную почту пользователя Facebook с разрешением «email», но без разрешения «offline_access», и сеанс завершен - PullRequest
0 голосов
/ 03 мая 2011

Я делаю приложение для Facebook, и я запросил разрешение на получение его информации, но данные не были сохранены.

Проблема в том, что мне нужен их адрес электронной почты, который былразрешено раньше, но я не могу взять сейчас.Теперь я знаю, что должен был также спросить разрешение «offline_access».: - /

Есть ли другой способ получить электронную почту сейчас?Что-то вроде скрипта на моей странице FB, проверяющего, авторизован ли пользователь знать свою электронную почту, и если да, я получаю информацию или что-то в этом роде?

Спасибо ..

Ответы [ 2 ]

1 голос
/ 04 мая 2011

Вы должны заставить своих пользователей повторно посетить ваше приложение и использовать действительный токен доступа, чтобы получить / сохранить их адрес электронной почты.Вы не можете получить доступ к адресу электронной почты пользователя без действительного токена доступа (либо токена offline_access, либо стандартного)

0 голосов
/ 05 мая 2011

Хорошо, это было решение, которое спасло меня: отправка на мою электронную почту всех пользователей, которые вернулись в мое приложение, поскольку я искал одну конкретную электронную почту (но вместо этого я мог сохранить в базе данных) ..

Наслаждайся, Диего Триго

#Creating the facebook object
$facebook = new Facebook(array(
    'appId'  => 'APP_ID',
    'secret' => 'APP_SECRET',
    'cookie' => true
));

# Let's see if we have an active session
$session = $facebook->getSession();


if($session){
    try {

        $facebook_id = $facebook->getUser();
        $_fb_profile = $facebook->api('/me'); //if not null valid session

        $facebook_name = $_fb_profile['name'];
        $facebook_link = $_fb_profile['link'];  
        $facebook_email = $_fb_profile['email'];  
        mail('myemail@domain.com',$facebook_name,$facebook_email);
        //echo "authorEmail = '$facebook_email';";
    }
    catch (FacebookApiException $e) {
        //nothing..
        }
...