Jump to content


Corporate Sponsors


Latest News: (loading..)

gjferrando

Member Since 28 Sep 2006
Offline Last Active Jan 02 2012, 15:51
-----

Posts I've Made

In Topic: Facebook Connect Support Thread

29 December 2011, 13:30

View Postjuanmasi1, on 28 December 2011, 20:29, said:

Guille existe un problema con la contribución ahora, pasa que...
uno hace click en el boton de facebook, popup de facebook requiere los permisos para la app, uno lo acepta, desaparece el popup, se refresca la pagina de create_account y el problema viene acá... no escribe los datos del usuario en el formulario de registro... pero sin embargo si yo refresco de nuevo la pagina Voila!!! si aparecen los datos, podés suponer a que se debe esto?, un abrazo

Si, me pasaba lo mismo con Internet Explorer y Mozilla Firefox por eso le agregué el setTimeout('document.location.href = "create_account.php"', 0);

Cuál navegador usas..?

In Topic: Facebook Connect Support Thread

28 December 2011, 14:18

Sigo colaborando..

Para que funcione en Internet Explorer, Chrome y Mozilla Firefox (no probé en los otros, pero seguro funciona)

Reemplazar:

document.location.href = "login.php";
por:

setTimeout('document.location.href = "login.php"', 0);
o

window.location.reload();
por:

setTimeout('document.location.reload()',0);

In Topic: Facebook Connect Support Thread

28 December 2011, 11:53

View Postgjferrando, on 28 December 2011, 09:48, said:

Yo actualicé lo mio a OAuth 2.0 y me funciona perfecto.

- Descargar el nuevo PHP-SDK de: "https://github.com/facebook/php-sdk/"
- Subir los archivos de la carpeta: "\facebook-php-sdk-4ea94b9\src\" a: "catalog/includes/classes/"

En catalog/fbconnect.php
<?php
// Facebook Connect
  $fbconfig['appid' ]  = "xxxxxxxxxxxxxxx"; // your application id
  $fbconfig['api'   ]  = ""; // your api key
  $fbconfig['secret']  = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; // your application secret
 
	// Create our Application instance.
	$facebook = new Facebook(array(
	  'appId'  => $fbconfig['appid'],
	  'secret' => $fbconfig['secret'],
	  'cookie' => true,
	));
 
	// We may or may not have this data based on a $_GET or $_COOKIE based session.
	// If we get a session here, it means we found a correctly signed session using
	// the Application Secret only Facebook and the Application know. We dont know
	// if it is still valid until we make an API call using the session. A session
	// can become invalid if it has already expired (should not be getting the
	// session back in this case) or if the user logged out of Facebook.
	$user = $facebook->getUser();
 
	$fbme = null;
	// Session based graph API call.
	if ($user) {
	  try {
		$uid = $facebook->getUser();
		$fbme = $facebook->api('/me');
	  } catch (FacebookApiException $e) {
		echo '<pre>'.htmlspecialchars(print_r($e, true)).'</pre>';
		$user = null;
	  }
	}
?>


En catalog/login.php
Ojo!!!! todo debe ir debajo de: require('includes/application_top.php');
  require('includes/application_top.php');
 
// Facebook Connect
  include('includes/classes/facebook.php');
  include_once('fbconnect.php');
 
// If user is logged in and session is valid.
  if ($fbme) {
  // Collect some data using legacy api
	$param = array(
	 'method'	 => 'users.getinfo',
	 'uids'	   => $fbme['id'],
	 'fields'	 => 'birthday_date, locale',
	 'callback'   => ''
	);
	try{
	  $info = $facebook->api($param);
	}
	catch(FacebookApiException $e) {
	  error_log("Legacy Api Calling Error!");
	  echo '<pre>' . htmlspecialchars(print_r($e, true)) . '</pre>';
	  $fbme = null;
	}
  }

<div id="fb-root"></div>
	<script type="text/javascript">
			window.fbAsyncInit = function() {
				FB.init({appId: '<?php echo $fbconfig['appid']; ?>', status: false, cookie: true, xfbml: true, oauth: true});
				/* All the events registered */
				FB.Event.subscribe('auth.login', function(response) {
					// do something with response
					login();
				});
				FB.Event.subscribe('auth.logout', function(response) {
					// do something with response
					logout();
				});
			};
			(function() {
				var e = document.createElement('script');
				e.type = 'text/javascript';
				e.src = document.location.protocol +
					'//connect.facebook.net/es_LA/all.js';
				e.async = true;
				document.getElementById('fb-root').appendChild(e);
			}());
			function login(){
				document.location.href = "login.php";
			}
			function logout(){
				document.location.href = "logoff.php";
			}
			function createAccount(){
				document.location.href = "create_account.php";
			}
	</script>
<p>
  <fb:login-button autologoutlink="true" scope="email, offline_access, user_birthday, user_location, user_about_me, user_work_history, sms, user_website, user_groups, user_online_presence">Identificarme con Facebook</fb:login-button>
</p>


En catalog/create_account.php
Ojo!!!! todo debe ir debajo de: require('includes/application_top.php');
  require('includes/application_top.php');
 
// Facebook Connect
  include('includes/classes/facebook.php');
  include_once('fbconnect.php');
 
// If user is logged in and session is valid.
  if ($fbme){
// Collect some data using legacy api
	$param  =   array(
	 'method'	 => 'users.getinfo',
	 'uids'	   => $fbme['id'],
	 'fields'	 => 'birthday_date, locale',
	 'callback'   => ''
	);
 
	try{
	  $info = $facebook->api($param);
	}
	catch(FacebookApiException $e){
	  error_log("Legacy Api Calling Error!");
	  echo '<pre>' . htmlspecialchars(print_r($e, true)) . '</pre>';
	  $fbme = null;
	}
	// Convert fb gender
	if ($fbme['gender'] == 'female') {
	  $fbgender = 'f';
	}elseif ($fbme['gender'] == 'male') {
	  $fbgender = 'm';
	}
// Convert fb birthday
  function fb_birthday($birthday) {
	list($m, $d, $a) = explode("/", $birthday);
	return $d . "/" . $m . "/" . $a;
	}
  }

<div id="fb-root"></div>
	<script type="text/javascript">
			window.fbAsyncInit = function() {
				FB.init({appId: '<?php echo $fbconfig['appid' ]; ?>', status: false, cookie: true, xfbml: true, oauth: true});
 
				/* All the events registered */
				FB.Event.subscribe('auth.login', function(response) {
					// do something with response
					login();
				});
				FB.Event.subscribe('auth.logout', function(response) {
					// do something with response
					logout();
				});
			};
			(function() {
				var e = document.createElement('script');
				e.type = 'text/javascript';
				e.src = document.location.protocol +
					'//connect.facebook.net/es_LA/all.js';
				e.async = true;
				document.getElementById('fb-root').appendChild(e);
			}());
 
			function login(){
				document.location.href = "create_account.php";
			}
 
			function logout(){
				document.location.href = "logoff.php";
			}
	</script>
		<?php if ($fbme) {
			  } else { ?>
			  <p>
				<fb:login-button autologoutlink="true" scope="email, offline_access, user_birthday, user_location, user_about_me, user_work_history, sms, user_website, user_groups, user_online_presence">Registrarme usando Facebook</fb:login-button>
			  </p>
		<?php } ?>


En catalog/logoff.php debajo de: $cart->reset();
  $cart->reset();
 
// Facebook Connect
  include('includes/classes/facebook.php');
  include_once('fbconnect.php');
  
  if ($fbme > 0) {
  tep_session_unregister('fb_' . $facebook->getAppId() . '_user_id');
  tep_session_unregister('fb_' . $facebook->getAppId() . '_code');
  tep_session_unregister('fb_' . $facebook->getAppId() . '_access_token');
  // setcookie('fbsr_' . $facebook->getAppId(), '', time()-100, '/', '.' . HTTP_COOKIE_DOMAIN);
  setcookie('fbsr_' . $facebook->getAppId());
  }


Corregir catalog/logoff.php

Reemplazar:

// setcookie('fbsr_' . $facebook->getAppId(), '', time()-100, '/', '.' . HTTP_COOKIE_DOMAIN);
setcookie('fbsr_' . $facebook->getAppId());

Por:

unset($_COOKIE['fbsr_' . $facebook->getAppId()]);
setcookie('fbsr_' . $facebook->getAppId(), NULL, -1);

Obs.: Agregar estas dos líneas para que no aparezca en el "log" el error: Unknown algorithm. Expected HMAC-SHA256

In Topic: Facebook Connect Support Thread

28 December 2011, 10:37

View Postjuanmasi1, on 27 December 2011, 17:10, said:

Hi How about, well I wanted to tell you make some changes ... at least now when I click on the facebook connect button works and allows users to deploy the app on Facebook ... but what fails is to write down the names of the client when running the facebook connect, maybe to go forward ..

Need to be replaced "$session" per "$user"

In Topic: Facebook Connect Support Thread

28 December 2011, 09:48

Yo actualicé lo mio a OAuth 2.0 y me funciona perfecto.

- Descargar el nuevo PHP-SDK de: "https://github.com/facebook/php-sdk/"
- Subir los archivos de la carpeta: "\facebook-php-sdk-4ea94b9\src\" a: "catalog/includes/classes/"

En catalog/fbconnect.php
<?php
// Facebook Connect
  $fbconfig['appid' ]  = "xxxxxxxxxxxxxxx"; // your application id
  $fbconfig['api'   ]  = ""; // your api key
  $fbconfig['secret']  = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; // your application secret
 
    // Create our Application instance.
    $facebook = new Facebook(array(
      'appId'  => $fbconfig['appid'],
      'secret' => $fbconfig['secret'],
      'cookie' => true,
    ));
 
    // We may or may not have this data based on a $_GET or $_COOKIE based session.
    // If we get a session here, it means we found a correctly signed session using
    // the Application Secret only Facebook and the Application know. We dont know
    // if it is still valid until we make an API call using the session. A session
    // can become invalid if it has already expired (should not be getting the
    // session back in this case) or if the user logged out of Facebook.
    $user = $facebook->getUser();
 
    $fbme = null;
    // Session based graph API call.
    if ($user) {
      try {
        $uid = $facebook->getUser();
        $fbme = $facebook->api('/me');
      } catch (FacebookApiException $e) {
        echo '<pre>'.htmlspecialchars(print_r($e, true)).'</pre>';
        $user = null;
      }
    }
?>


En catalog/login.php
Ojo!!!! todo debe ir debajo de: require('includes/application_top.php');
  require('includes/application_top.php');
 
// Facebook Connect
  include('includes/classes/facebook.php');
  include_once('fbconnect.php');
 
// If user is logged in and session is valid.
  if ($fbme) {
  // Collect some data using legacy api
    $param = array(
     'method'     => 'users.getinfo',
     'uids'       => $fbme['id'],
     'fields'     => 'birthday_date, locale',
     'callback'   => ''
    );
    try{
      $info = $facebook->api($param);
    }
    catch(FacebookApiException $e) {
      error_log("Legacy Api Calling Error!");
      echo '<pre>' . htmlspecialchars(print_r($e, true)) . '</pre>';
      $fbme = null;
    }
  }

<div id="fb-root"></div>
    <script type="text/javascript">
            window.fbAsyncInit = function() {
                FB.init({appId: '<?php echo $fbconfig['appid']; ?>', status: false, cookie: true, xfbml: true, oauth: true});
                /* All the events registered */
                FB.Event.subscribe('auth.login', function(response) {
                    // do something with response
                    login();
                });
                FB.Event.subscribe('auth.logout', function(response) {
                    // do something with response
                    logout();
                });
            };
            (function() {
                var e = document.createElement('script');
                e.type = 'text/javascript';
                e.src = document.location.protocol +
                    '//connect.facebook.net/es_LA/all.js';
                e.async = true;
                document.getElementById('fb-root').appendChild(e);
            }());
            function login(){
                document.location.href = "login.php";
            }
            function logout(){
                document.location.href = "logoff.php";
            }
            function createAccount(){
                document.location.href = "create_account.php";
            }
    </script>
<p>
  <fb:login-button autologoutlink="true" scope="email, offline_access, user_birthday, user_location, user_about_me, user_work_history, sms, user_website, user_groups, user_online_presence">Identificarme con Facebook</fb:login-button>
</p>


En catalog/create_account.php
Ojo!!!! todo debe ir debajo de: require('includes/application_top.php');
  require('includes/application_top.php');
 
// Facebook Connect
  include('includes/classes/facebook.php');
  include_once('fbconnect.php');
 
// If user is logged in and session is valid.
  if ($fbme){
// Collect some data using legacy api
    $param  =   array(
     'method'     => 'users.getinfo',
     'uids'       => $fbme['id'],
     'fields'     => 'birthday_date, locale',
     'callback'   => ''
    );
 
    try{
      $info = $facebook->api($param);
    }
    catch(FacebookApiException $e){
      error_log("Legacy Api Calling Error!");
      echo '<pre>' . htmlspecialchars(print_r($e, true)) . '</pre>';
      $fbme = null;
    }
    // Convert fb gender
    if ($fbme['gender'] == 'female') {
      $fbgender = 'f';
    }elseif ($fbme['gender'] == 'male') {
      $fbgender = 'm';
    }
// Convert fb birthday
  function fb_birthday($birthday) {
    list($m, $d, $a) = explode("/", $birthday);
    return $d . "/" . $m . "/" . $a;
    }
  }

<div id="fb-root"></div>
    <script type="text/javascript">
            window.fbAsyncInit = function() {
                FB.init({appId: '<?php echo $fbconfig['appid' ]; ?>', status: false, cookie: true, xfbml: true, oauth: true});
 
                /* All the events registered */
                FB.Event.subscribe('auth.login', function(response) {
                    // do something with response
                    login();
                });
                FB.Event.subscribe('auth.logout', function(response) {
                    // do something with response
                    logout();
                });
            };
            (function() {
                var e = document.createElement('script');
                e.type = 'text/javascript';
                e.src = document.location.protocol +
                    '//connect.facebook.net/es_LA/all.js';
                e.async = true;
                document.getElementById('fb-root').appendChild(e);
            }());
 
            function login(){
                document.location.href = "create_account.php";
            }
 
            function logout(){
                document.location.href = "logoff.php";
            }
    </script>
        <?php if ($fbme) {
              } else { ?>
              <p>
                <fb:login-button autologoutlink="true" scope="email, offline_access, user_birthday, user_location, user_about_me, user_work_history, sms, user_website, user_groups, user_online_presence">Registrarme usando Facebook</fb:login-button>
              </p>
        <?php } ?>


En catalog/logoff.php debajo de: $cart->reset();
  $cart->reset();
 
// Facebook Connect
  include('includes/classes/facebook.php');
  include_once('fbconnect.php');
  
  if ($fbme > 0) {
  tep_session_unregister('fb_' . $facebook->getAppId() . '_user_id');
  tep_session_unregister('fb_' . $facebook->getAppId() . '_code');
  tep_session_unregister('fb_' . $facebook->getAppId() . '_access_token');
  // setcookie('fbsr_' . $facebook->getAppId(), '', time()-100, '/', '.' . HTTP_COOKIE_DOMAIN);
  setcookie('fbsr_' . $facebook->getAppId());
  }