diff --git a/README.txt b/README.txt index 01cde4a..d6cedc5 100644 --- a/README.txt +++ b/README.txt @@ -25,7 +25,7 @@ Also this tab allows to unlink your Facebook account. -- REQUIREMENTS -- PHP 5.2 or higher versions. Drupal 6.x. -Facebook PHP Library: http://github.com/facebook/php-sdk/ +Facebook PHP 3.x Library or higher: http://github.com/facebook/php-sdk/ (OAuth 2.0 Support Now) Facebook API key: http://www.facebook.com/developers/ diff --git a/fbconnect.js b/fbconnect.js index 4067954..14e2dbf 100644 --- a/fbconnect.js +++ b/fbconnect.js @@ -10,7 +10,7 @@ Drupal.fbconnect.init = function () { } if (Drupal.settings.fbconnect.loginout_mode == 'auto') { - FB.Event.subscribe('auth.sessionChange', Drupal.fbconnect.reload_ifUserConnected); + FB.Event.subscribe('auth.authResponseChange', Drupal.fbconnect.reload_ifUserConnected); // FB.Event.subscribe('auth.login', function(response) { // console.log('event auth.login'); // }); @@ -35,8 +35,8 @@ Drupal.fbconnect.logout = function(keep_fbaccount_logged) { Drupal.fbconnect.reload_ifUserConnected = function(state) { var user = Drupal.settings.fbconnect.user; - if (!state.session || user.uid) return; - if (state.session.uid != user.fbuid) { + if (!state.authResponse || user.uid) return; + if (state.authResponse.userID != user.fbuid) { window.location.reload(); } }; @@ -51,7 +51,7 @@ Drupal.fbconnect.initLogoutLinks = function(context) { if (loginout_mode == 'manual') return; links.addClass('logout_link_inited').click(function() { - var fbuid = FB.getSession() && FB.getSession().uid; + var fbuid = FB.getAuthResponse().userID && FB.getAuthResponse().userID; if (!user.fbuid || user.fbuid != fbuid) return; if (loginout_mode == 'auto') { Drupal.fbconnect.logout(); @@ -87,17 +87,20 @@ Drupal.fbconnect.initLogoutLinks = function(context) { }; Drupal.fbconnect.DoFastRegistration = function(link) { - FB.login(function(response) { - if (response.session && /email/.test(response.perms)) { - window.location.href = link.href; + FB.login(function(response) { + if (response.authResponse && response.status == 'connected') { + FB.api('/me/permissions', function(perms_response) { + if(perms_response['data'][0]['email']) { + window.location.href = link.href; + } + }); } - }, {perms:'email'}); + }, {scope:'email'}); }; - function facebook_onlogin_ready() { // http://github.com/facebook/connect-js/issues/194 - if (!FB.getSession()) { + if (!FB.getAuthResponse()) { return; } $("#fbconnect-autoconnect-form").submit(); diff --git a/fbconnect.module b/fbconnect.module index 9e9b91c..c190eb5 100644 --- a/fbconnect.module +++ b/fbconnect.module @@ -206,7 +206,7 @@ function fbconnect_form_alter(&$form, $form_state, $form_id) { #848354 : ask user for email permission when account linking is disabled $attr = array(); if (variable_get('fbconnect_fast_reg', 0) && variable_get('fbconnect_reg_options', 0)) { - $attr = array('perms' => 'email'); + $attr = array('scope' => 'email'); } $form['fbconnect_button'] = array( @@ -383,8 +383,7 @@ function fbconnect_get_fbuid($check_connected = FALSE) { $client = facebook_client(); - if ($client && $session = $client->getSession()) { - $fbuid = $session['uid']; + if ($client && $fbuid = $client->getUser()) { if ($check_connected && $fbuid) { if (_get_user_fbuid($user->uid) != $fbuid) { @@ -423,7 +422,8 @@ function fbconnect_render_js() { function fbconnect_footer() { if (facebook_client() && !_fbconnect_is_excluded_page($_GET['q'])) { $config = fbconnect_get_config(); - $footer = array(); + $footer = array(); + $channel_uri = preg_replace("@'@msi", "\'", "http://".$_SERVER['HTTP_HOST']."/".drupal_get_path('module', 'fbconnect')."/channel.html"); $footer['fb-init-code'] = <<