2012-03-07 3 views
3

Я пытаюсь включить кнопку входа в facebook на домашнюю страницу моего сайта. Я связал его с приложением, поэтому у меня есть идентификатор и секрет приложения, но я не могу понять, как проверить, зарегистрирован ли пользователь на моем сайте, поэтому в моей базе данных, чтобы просмотреть его пользовательский файл. Я использовал javaScript sdk из facebook, но когда я нажимаю кнопку входа в facebook, после авторизации ничего не происходит, и снова отображается домашняя страница моего сайта. Кто-нибудь знает, как получить электронную почту пользователя из javascript sdk? Я использую сервлеты Java для своих страниц. Я использовал код из документации на facebook.Использование facebook login для моего сайта

<div id="fb-root"></div> 
<script> 
    window.fbAsyncInit = function() { 
    FB.init({ 
     appId  : '8568345835', // App ID 
     channelUrl : '//WWW.YOUR_DOMAIN.COM/channel.html', // Channel File 
     status  : true, // check login status 
     cookie  : true, // enable cookies to allow the server to access the session 
     xfbml  : true // parse XFBML 
    }); 

    // Additional initialization code here 
    }; 

    // Load the SDK Asynchronously 
    (function(d){ 
    var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0]; 
    if (d.getElementById(id)) {return;} 
    js = d.createElement('script'); js.id = id; js.async = true; 
    js.src = "//connect.facebook.net/en_US/all.js"; 
    ref.parentNode.insertBefore(js, ref); 
    }(document)); 
</script> 

<div class="fb-login-button" data-scope="email"> 

ответ

1

После OAuth редиректа и авторизации, как только вы страница отображается снова, попробуйте демпинг сеанс (что-то, что будет напоминать print_r ($ _ SESSION) в PHP). Он должен содержать пользовательские данные, полученные из facebook.

+0

Благодарим вас за ответ. Я искал информацию по документу facebook, но я все еще запутался в javascript, какие методы я должен включить ... Что касается перенаправления, где мне нужно поставить ссылку на перенаправление?извините, если это звучит как глупые вопросы, но я совершенно новичок в этом ... –

4

https://developers.facebook.com/docs/authentication/

стороне клиента Flow

Клиентский поток также использует OAuth диалог для пользователя аутентификации и авторизации приложений. Единственное отличие состоит в том, что вы необходимо указать параметр response_type со значением маркера:

https://www.facebook.com/dialog/oauth? 
client_id=YOUR_APP_ID&redirect_uri=YOUR_URL&response_type=token 

Как с потоком на стороне сервера, вы можете также запросить дополнительные разрешения с помощью параметра Область применения:

https://www.facebook.com/dialog/oauth? 
client_id=YOUR_APP_ID&redirect_uri=YOUR_URL&scope=email,read_stream& 
response_type=token 

Это возможно, но это не лучшая практика. Я бы предложил ввести некоторые скрипты на стороне сервера (например, PHP), но если вы используете SDK для Javascript Facebook только для получения некоторых пользовательских данных, этот метод может быть полезен. Рабочий процесс будет таким.

  1. Пользователь нажимает кнопку Facebook Connect, который перенаправляет:

    https://www.facebook.com/dialog/oauth? client_id = YOUR_APP_ID & redirect_uri = YOUR_URL & response_type = маркер

  2. Facebook проверяет YOUR_APP_ID и URL, и выполняет аутентификацию

  3. Перенаправление греться на ваш URL.

http://YOUR_URL#access_token=166942940015970%7C2.sa0&expires_in=64090 

... с маркером доступа в URL.

Позже вы извлечете токен из URL-адреса и используете его для выполнения FQL (Facebook Query Language) с помощью запроса AJAX и получения пользовательских данных.

Описан здесь: https://developers.facebook.com/docs/reference/fql/

Смежные вопросы