Criar aplicativos dentro de um iframe usando SDK de PHP e JS

  • Autor Autor Cicklow
  • Data de início Data de início
Tradução em andamento: em alguns minutos este tópico estará em português. Por enquanto, o conteúdo está no original em espanhol. Ver original
Cicklow

Cicklow

Admin
Dseda
Verificado
Verificación en dos pasos activada
Suscripción a IA
Hola en este post les enseñare como crear aplicaciones dentro de un iframe. Ya que facebook no permite más aplicaciones FBML, tendremos que aprender a programar en iframes. No es tan difícil, solo tendremos que usar el SDK de PHP y el SDK de JS.
SDK PHP = Enlace eliminado
SDK JS = JavaScript SDK - Facebook Developers

Creamos un archivo llamado config.php, con este contenido:
Lo primero que tendremos que hacer es definir las url de nuestra apps dentro de nuestro servidor y la url dentro de facebook.
Inserir CODE, HTML ou PHP:
    define('FAC','http://apps.facebook.com/miapps/');
    define('WEB','http://www.miserver.com/miapps/');

Ahora crearemos una función encargada de crear la url de login de facebook (pedir permisos).
Inserir CODE, HTML ou PHP:
    @set_time_limit(0);
    $__ID = 'ID_DE_NUESTRA_APLICACION';
    $__KEY = 'SECRET_KEY';

    require '../src/facebook.php'; //SDK PHP-Facebook

    // Creamos una instancia de facebook
    $facebook = new Facebook(array(
      'appId'  => $__ID,
      'secret' => $__KEY,
      'cookie' => true,
    ));

    function redirect($PERMS="") { //esta funcion nos regresara el link para pedir permisos, el parametro son los permisos especiales
        global $facebook;
        $loginUrl=$facebook->getLoginUrl(array(
        'canvas'=>1,
        'fbconnect'=>0,
        'display'=>'page',
        'next'=>FAC,
        'cancel_url'=>FAC,
        'req_perms'=>$PERMS,
        ));

        return $loginUrl;
        exit();
    }

    //Guardamos la session de facebook!
    $session = $facebook->getSession();
Con esto tendríamos config.php

Ahora crearemos nuestra aplicación.
Llamamos a nuestro config.php
Inserir CODE, HTML ou PHP:
    include('config.php');

Comenzamos con nuestro código HTML (No me pondré en detalle de cómo hacer una web HTML, este código iría después del BODY)
Inserir CODE, HTML ou PHP:
<div id="fb-root"></div>
    <script>
      window.fbAsyncInit = function() {
        FB.init({appId: '<?=$__ID;?>', status: true, cookie: true, xfbml: true});
        FB.Canvas.setAutoResize(); //Acomoda el tamaño para que no se vean las barras de navegacion
      };

      //Funcion encargada de recomendar nuestra aplicacion (Será llamada desde un link)
      function Rec(){
        FB.ui({method: 'apprequests', message: 'Te recomiendo mi aplicacion', data: 'track<?=time();?>'});
      }

      //Usamos el SDK JS-Facebook
      (function() {
        var e = document.createElement('script'); e.async = true;
        e.src = document.location.protocol +
          '//connect.facebook.net/es_LA/all.js';
        document.getElementById('fb-root').appendChild(e);
      }());
    </script>
En el código anterior lo que hacemos es llamar la api de Facebook desde el SDK JS, con esto tendremos los datos del usuario en funciones JavaScript, también las tendremos desde nuestro SDK-PHP. Ya les mostrare como.

Ahora verificamos si el usuario tiene una sesión creada, si tiene continuamos con nuestra aplicación, de lo contrario re direccionamos al login de facebook (si el usuario accede por primera vez se le pedirá permisos para acceder, si ya a accedido solo re direccionara y regresara a nuestra aplicación (creando así la sesión). (PHP CODE)
Inserir CODE, HTML ou PHP:
    if (!is_array($session)) {
        //Redireccionamos usando window.top ya que tenemos que redireccionar por ensima de nuestro iframe, llamamos a redirect() que nos regresara el link, si necesitamos por ejemplo pedir el email del usuario usamos redirect('email').
        echo '<script>window.top.location="'.redirect().'";</script>';
        die();
    } else {
        try {
            //Esto lo usaremos si queremos saber algún dato del usuario.
            $me = $facebook->api('/me/?fields=name');
        } catch (FacebookApiException $e) {
            //Si existe algun error lo mostramos
            echo $e;
            die();
        }
    }

Ahora mostraremos los datos del usuario con PHP
Inserir CODE, HTML ou PHP:
    echo 'Hola '.$me['data']['name'].'<br/>'; //Mostramos su nombre
    echo '<img src="https://graph.facebook.com/'.$facebook->getUser().'/picture"/>'; //Mostramos la imagen del perfil, $facebook->getUser() nos regresa el id del usuario

Ahora mostraremos los datos del usuario con JS
Inserir CODE, HTML ou PHP:
    <div id="texto"></div>
    <script>
        FB.api('/me', function(response) { 
            document.getElementById('texto').innerHTML = 'Nombre: ' + response.name + '<br/>';
            document.getElementById('texto').innerHTML += 'Imagen: <img src="https://graph.facebook.com/' + response.id +'/picture"/><br/>';
        } });
    </script>

Para recomendar nuestra aplicación usamos este código:
Inserir CODE, HTML ou PHP:
    <a href="#" onclick="Rec();return false;">Recomendar Aplicacion</a>


Saludos y suerte

Adjuntos:
Ver o anexo index.txt
Ver o anexo config.txt
 
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
Bastaten bueno amigo, muchas gracias, haber si pronto me animo a realizar una app para Facebook! Der verdad muchas gracias!
 
Se agradece amigo....saludos
Podrias poner alguna que hayas hecho??
 
Soy programador de mas de dos años en Facebook, por ende tengo varias ya... jejej, pero te paso el directorio de mis apps:
Cicklow Aplicaciones on Facebook | Facebook

Saludos. Cualquier cosa me dicen, tengo mas tutoriales por mostrarles. (tengo un foro propio en el cual voy enseñando a crear apps facebook)
 
Soy programador de mas de dos años en Facebook, por ende tengo varias ya... jejej, pero te paso el directorio de mis apps:
Cicklow Aplicaciones on Facebook | Facebook

Saludos. Cualquier cosa me dicen, tengo mas tutoriales por mostrarles. (tengo un foro propio en el cual voy enseñando a crear apps facebook)

Ojala pudieses pasarme eese foro por MP y a la vez publicar más tutoriales como estos, son bastante buenos! 😉
 
PM enviado. es un foro muy chico, pero siempre coloco tutoriales de Face

Vale aclarar que si usan el SDK 3.0 de facebook tienen que reemplazar esto:
Inserir CODE, HTML ou PHP:
$session = $facebook->getSession();
Por:
Inserir CODE, HTML ou PHP:
$session = $facebook->getUser();

Ya que la nueva SDK no usa mas sessiones abiertas (pasando los parametros por GET o POST), estos quedan en cookies y sessiones.

Saludos
 
Muy bueno. Tengo una consulta: si quisiera sólo crear una pestaña con una imagen (iframe) pero que no se visualice el scroll... ¿cómo le haría?
 
tenes ke usar la api de facebook, pero el SDK JavaScript.
Usando:
Inserir CODE, HTML ou PHP:
<script>window.fbAsyncInit = function() {
		FB.init({appId: 'APP_ID', status: true, cookie: true, xfbml: true});
		FB.Canvas.setAutoResize();
	};</script>

Tmb puedes usar el tag body CSS para que no muestre el scroll.

http://developers.facebook.com/docs/reference/javascript/

Saludos
 
Última edição:
¿Cuál es el tag body CSS? Gracias por la respuesta.

tenes ke usar la api de facebook, pero el SDK JavaScript.
Usando:
Inserir CODE, HTML ou PHP:
<script>window.fbAsyncInit = function() {
		FB.init({appId: 'APP_ID', status: true, cookie: true, xfbml: true});
		FB.Canvas.setAutoResize();
	};</script>

Tmb puedes usar el tag body CSS para que no muestre el scroll.

JavaScript SDK - Facebook Developers

Saludos
 
Inserir CODE, HTML ou PHP:
<body style="overflow: hidden;" leftMargin="0" topMargin="0" marginwidth="0" marginheight="0">
 
Inserir CODE, HTML ou PHP:
<body style="overflow: hidden;" leftMargin="0" topMargin="0" marginwidth="0" marginheight="0">

Gracias!!! yo lo puse así

Inserir CODE, HTML ou PHP:
<style type="text/css"> 
html { overflow:hidden; }
.......
</style>

También sirve... tu respuesta me sirvió para buscar más sobre el overflow... ahora sólo me queda aprender a usar el JavaScritp SDK de facebook
 
Soy programador de mas de dos años en Facebook, por ende tengo varias ya... jejej, pero te paso el directorio de mis apps:
Cicklow Aplicaciones on Facebook | Facebook

Saludos. Cualquier cosa me dicen, tengo mas tutoriales por mostrarles. (tengo un foro propio en el cual voy enseñando a crear apps facebook)


Me interesa aprende a programas apps para facebook puede mandarme el link de tu foro??
 
Cuando entro a la API que cree en facebook me sale "Sorry, the application you were using is misconfigured. Please try again later."

Como la configuro correctamente?
 
Voltar
Topo