2009-05-04 21 views

Respuesta

16

Sí, esto es definitivamente posible, pero tiene que usar Facebook Connect y XFBML. Específicamente, desea utilizar la etiqueta fb:serverfbml para que funcione fb: friend-selector. Tengo una aplicación iframe mediante la cual uso todo esto y el selector fb: friend en el contexto estándar "invitar amigos a su aplicación", y funciona muy bien.

Aquí está el cuerpo de mi archivo de plantilla, que se pone de salida en el interior del cuerpo de mi iframe:

<fb:serverfbml style="width: 650px;"> 
<script type="text/fbml"> 
    <fb:fbml> 
     <fb:request-form 
      action="http://example.com/invite/sent" 
      method="POST" 
      invite="true" 
      type="My App" 
      content="Try out my app! 
       <fb:req-choice url='http://your-facebook-canvas-url' 
       label='<?php echo htmlspecialchars("Accept button text",ENT_QUOTES); ?>' 
       /> 
      " > 
      <fb:multi-friend-selector 
       showborder="false" 
       actiontext="Invite your friends to try My App." 
       exclude_ids="<?php echo $excludeIds; ?>" 
       rows="3" 
      /> 
     </fb:request-form> 
    </fb:fbml> 
</script> 
</fb:serverfbml> 

En el pie de página de la página, tengo el código estándar de Facebook Connect, que cargará y hacer que el fb: contenidos serverfbml:

<script src="http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php" type="text/javascript"></script> 
<script type="text/javascript"> 
    FB_RequireFeatures(
     ["CanvasUtil"], 
     function(){ 
      FB.XdComm.Server.init('/xd_receiver.html'); 
      FB.CanvasClient.startTimerToSizeToContent(); 
     } 
    ); 
</script> 

<script type="text/javascript"> 
    FB_RequireFeatures(["XFBML"], function(){ FB.Facebook.init("Your Facebook API Key", "/xd_receiver.html"); }); 
</script> 

Eso debería ser todo lo que necesita (llene sus propias opciones en su caso, por supuesto). Tendrá que configurar Facebook Connect para trabajar con un archivo de receptor entre dominios. Sugiero seguir el rendering XFBML steps.

+0

es decir que tienes que utiliza Facebook Connect. De la documentación parece haber dos enlaces a FeatureLoader.js uno con Connect y otro sin Connect en la url. No estoy seguro de qué hacer con esto y estoy muy confundido. – f4hy

+2

Si bien la respuesta sugerida por Zombat funciona, debe usar el nuevo [JS SDK] (http://developers.facebook.com/docs/reference/javascript/) en lugar del antiguo SDK de JS que utiliza su código de ejemplo. XFBML seguirá siendo el mismo, pero el código JS se verá diferente. Aquí hay un ejemplo en vivo: http://apps.facebook.com/fbrelll/xfbml/fb:server-fbml-multi-friend-selector. – daaku

+0

@daaku - Sí, esta pregunta fue hecha/respondida hace más de un año, por lo que está desactualizada. – zombat

3

Dado que hay muchas preguntas sobre el selector de amigos dentro de un iframe.

Guys la sintaxis correcta ahora es <fb:serverfbml width="650px">

9

La pregunta en este hilo sigue siendo relevante, pero la respuesta no está actualizado. Debería usar el nuevo javascript SDK. Esto debería reemplazar el segundo fragmento de código publicado por zombat

<script src="http://connect.facebook.net/en_US/all.js"></script> 
<script type="text/javascript"> 
    FB.init({appId: 'your app id', 
     status: true, 
     cookie: true, 
     xfbml: true}); 
    FB.Event.subscribe('auth.sessionChange', function(response) { 
    if (response.session) { 
     // A user has logged in, and a new cookie has been saved 
    } else { 
     // The user has logged out 
    } 
    }); 
</script> 

más información aquí: http://www.clickonchris.com/2010/11/facebook-javascript-sdks/

0

uno mayor y punto importante que consigue perder es que muchos de ustedes (incluido yo) se pegan en las secuencias de comandos en cualquier lugar. .. pero el archivo "FB" load.js debe cargarse INMEDIATAMENTE después de la etiqueta de cuerpo.

al menos esto es lo que encontré para que todo funcione y funcione según corresponda. Lo encontré en una publicación en otro sitio (no estaba seguro de si debería publicarlo aquí o no ...) pero llegó después de pasar incontables horas, haciendo lo mencionado anteriormente, así como siguiendo cada 1,2, 3 pasos ponche en conseguir el iframe a tamaño adecuadamente ...

y ahora he llegado a trabajar :)

Cuestiones relacionadas