Estoy tratando de que los usuarios puedan publicar en sus paredes de Facebook en mi sitio externo.FB.ui() dando error en Safari con solicitud asíncrona cuando el usuario no está ya conectado
He encontrado un problema en Safari. Si el usuario no ha iniciado sesión, es decir, no han pasado por el flujo que llama a FB.login(), aparece el siguiente error de JS al llamar a FB.ui():
TypeError: 'undefined' no está un objeto (evaluando 'b.fbCallID = a.id')
Sin embargo, si están conectados, el diálogo aparece bien.
Se llama a FB.ui() en una función de devolución de llamada: estoy recuperando una URL única de mi servidor, y luego llamando a FB.ui(). Si llamo directamente a FB.ui(), funciona bien, pero no cuando es asincrónico.
Aquí está el código:
retrieveUrl(param1, param2, function(result) {
FB.ui({ method: 'feed',
description: 'My Description',
display: 'dialog',
link: result.uniqueUrl,
picture: 'http://foo.com/bar.jpg'
}, function(response) {
if (response && response.post_id) {
//Posted message
} else {
//Not posted message
}
});
});
Esto funciona en otros navegadores, independientemente del estado conectado o no.
Estoy viendo el mismo problema ... – DuckMaestro