Estoy tratando de crear una aplicación de Facebook Connect que muestre un diálogo de invitación de amigo dentro de la página usando la API de Javascript de Facebook (a través de FBMLPopupDialog).Conecta a Facebook mostrando el diálogo de invitar amigos y cerrando al finalizar
El problema es mostrar un cuadro de diálogo de amigo amigo que utiliza un formulario multi-amigo que requiere un atributo action = "url" que representa la URL para redirigir su página cuando el usuario completa u omite el formulario. El problema es que quiero cerrar el FBMLPopupDialog (el mismo comportamiento que si el usuario simplemente presionara el botón 'X' en el cuadro de diálogo emergente). Lo mejor que puedo hacer es redirigir al usuario de vuelta a la página en la que estaba básicamente una recarga, pero pierde todo el estado de la aplicación AJAX/Flash.
Me pregunto si los desarrolladores de Facebook Connect se han topado con este problema y tienen una buena manera de mostrar un diálogo de invitación "lightbox" dentro de su sitio web donde no desean "actualizar" o "redirigir" cuando el usuario termina.
facebook connect JS API proporciona un FB.Connect.inviteConnectUsers, que proporciona un diálogo agradable pero solo conecta a los usuarios existentes de su aplicación que también tienen una cuenta de Facebook y no se han conectado.
http://bugs.developers.facebook.com/show_bug.cgi?id=4916
function fb_inviteFriends() {
//Invite users
log("Inviting users...");
FB.Connect.requireSession(
function() { //Connect succes
var uid = FB.Facebook.apiClient.get_session().uid;
log('FB CONNECT SUCCESS: ' + uid);
//Invite users
log("Inviting users...");
//Update server with connected account
updateAccountFacebookUID();
var fbml = fb_getInviteFBML() ;
var dialog = new FB.UI. FBMLPopupDialog("Weblings Invite", fbml) ;
//dialog.setFBMLContent(fbml);
dialog.setContentWidth(650);
dialog.setContentHeight(450);
dialog.show();
},
//Connect cancelled
function() {
//User cancelled the connect
log("FB Connect cancelled:");
}
);
}
function fb_getInviteFBML() {
var uid = FB.Facebook.apiClient.get_session().uid;
var fbml = "";
fbml =
'<fb:fbml>\n' +
'<fb:request-form\n'+
//Redirect back to this page
' action="'+ document.location +'"\n'+
' method="POST"\n'+
' invite="true"\n'+
' type="Weblings Invite"\n' +
' content="I need your help to discover all the Weblings and save the Internet! WebWars: Weblings is a cool new game where we can collect fantastic creatures while surfing our favorite websites. Come find the missing Weblings with me!'+
//Callback the server with the appropriate Webwars Account URL
' <fb:req-choice url=\''+ WebwarsFB.WebwarsAccountServer +'/SplashPage.aspx?action=ref&reftype=Facebook' label=\'Check out WebWars: Weblings\' />"\n'+
'>\n'+
' <fb:multi-friend-selector\n'+
' rows="2"\n'+
' cols="4"\n'+
' bypass="Cancel"\n'+
' showborder="false"\n'+
' actiontext="Use this form to invite your friends to connect with WebWars: Weblings."/>\n'+
' </fb:request-form>'+
' </fb:fbml>';
return fbml;
}
El invitan formulario muestra correctamente y estoy estoy bastante seguro de que mi xd_receiver está configurado correctamente.Es solo el comportamiento del formulario de invitación al omitir o completar lo que provoca que toda la página se actualice en lugar de cerrar el FBMLPopupDialog. – Dougnukem
tuve el problema similar, lo que hice fue poner el archivo xd_receiver.html en la raíz del sitio y el problema fue resuelto, es decir, el diálogo se cerró correctamente – Sarfraz