ASP.NET Facebook Connect Confusion: Propiedad 'Abrir' de Object [Object DomWindow] no es una función

StackOverflow https://stackoverflow.com/questions/8803649

  •  26-10-2019
  •  | 
  •  

Pregunta

Estoy tratando de implementar la funcionalidad de Facebook Connect en un sitio web en el que estoy trabajando. El sitio utiliza ASP.NET, una página maestra que envuelve cada página existente (incluida mi página de inicio de sesión) y el kit de herramientas de control AJAX para algunos controles. Estoy usando las funciones de JavaScript SDK como dicta la documentación de Facebook. Aquí está el código para llamar a la API de Facebook:

`<div id="fb-root">
</div>
<script type="text/javascript">
    (function (d, s, id) {
        var js, fjs = d.getElementsByTagName(s)[0];
        if (d.getElementById(id)) return;
        js = d.createElement(s); js.id = id;
        js.src = "//connect.facebook.net/en_GB/all.js#xfbml=1&appId=APP_ID";
        fjs.parentNode.insertBefore(js, fjs);
    } (document, 'script', 'facebook-jssdk'));
</script>`

Y aquí está el código que proporciona a los usuarios un punto de entrada a Facebook inicio de sesión con una función anónima de JavaScript:

<input type="button" 
    onclick=" FB.login(function(response) {
                           if (response.authResponse) {
                               console.log('Welcome!  Fetching your information.... ');
                               FB.api('/me', function(response) {
                                   console.log('Good to see you, ' + response.name + '.');
                                   FB.logout(function(response) {
                                       console.log('Logged out.');
                                   });
                               });
                           } 
                           else {
                               console.log('User cancelled login or did not fully authorize.');
                        }
              }, {scope: 'email'});" value="Login Facebook" />

El problema es que obtengo una excepción diciendo que Window.apen no es una función, pero una propiedad del objeto y el cuadro de diálogo de inicio de sesión de Facebook no aparecerán (el mensaje de excepción exacta es como en el título). No entiendo de dónde proviene este error. He estado lidiando con este problema durante un día y ahora me he desesperado por resolverlo. ¿Hay alguna forma de encontrar la fuente del problema? ¿Puedes ayudarlo?

Gracias por adelantado.

Nota: Lo extraño es que funciona cuando creo una nueva página sin usar la página maestra y migrar todas las llamadas de Facebook a la nueva página.

¿Fue útil?

Solución

Gracias a todos los que echaron un vistazo a la pregunta. Afortunadamente, podría ahorrar más tiempo para resolver el problema y descubrí de dónde es razonamiento este error. Resulta que otro desarrollador declaró una variable open = false; En uno de los archivos JavaScript incluidos sin usar la palabra clave "var". Por lo tanto, anuló la función existente de "ventana. Abre" y evita que funcione correctamente. Todo lo que tenía que hacer era cambiar la declaración a var open = false;. Ni tuve la experiencia suficiente para notarlo rápidamente ni JavaScript es tan avanzado para evitar que los desarrolladores cometan tales errores. Entonces eso me llevó a este desastre :)

Otros consejos

Su APPID no se especifica en el código de carga JS SDK. Es fácil pasar por alto que necesitaría ser reemplazado ya que está oculto.

js.src = "//connect.facebook.net/en_GB/all.js#xfbml=1&appId=APP_ID";

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top