tutorial open manager depurer debugger debug checker facebook fbjs

facebook - open - FB.getLoginStatus no llama a su devolución de llamada



open graph checker (11)

Asegúrese de que el protocolo sea HTTPS y no HTTP.

El titulo lo dice todo. Bajo algunas condiciones (indeterminadas), FB.getLoginStatus () simplemente deja de funcionar y no invoca la devolución de llamada que le di. Las únicas pistas interesantes que he encontrado son

  • FB.Auth._loadState está bloqueado en "cargando": todo lo que se supone que haga que haga clic en "cargado" no está sucediendo
  • leves retrasos, como poner en alert() llamadas tienden a hacer que comience a funcionar

Cualquier indicio sobre incluso cómo investigar esta bienvenida.


Como otros han publicado, debes acceder a tu sitio en la misma URL que espera Facebook. Por ejemplo, si Facebook tiene una devolución de llamada "example.com" pero su navegador tiene "www.example.com", puede causar este problema.

Además, si su navegador no permite las cookies de terceros, también puede ver este problema. O puede ver la devolución de llamada informando erróneamente que el usuario no está conectado .


De acuerdo a:

https://developers.facebook.com/bugs/240058389381072

No puede poner su aplicación en modo de caja de arena, o de lo contrario no funcionará. Ve a la configuración de tu aplicación, avanzada, y cámbiala. Esto me dejó perplejo durante un par de horas hasta que me topé con el informe de error.


En la Configuración de la aplicación de Facebook, vaya a Configuración de OAuth del cliente , consulte los URI de redireccionamiento de OAuth válidos

Asegúrese de haber incluido todos los URI que son los dominios desde los que se invoca el SDK de Facebook. Por ejemplo:

Me desarrollo en localhost: 5000 y despliegue en Heroku. Note el formato: http://domain.name/ : http://domain.name/


En la nueva versión de la aplicación Developer, debe asegurarse de haber puesto la URL correcta que está utilizando para acceder a la aplicación en el campo Sitio web debajo de

Selecciona cómo tu aplicación se integra con Facebook

sección.


Esto suele suceder cuando ejecuto la página bajo un dominio diferente del que se ha registrado en Facebook. Típicamente esto es cuando estoy desarrollando localmente.

Si está ejecutando localmente, tendrá que configurar un servidor web local y luego modificar su archivo de hosts para que apunte el dominio registrado a 127.0.0.1 para poder probar en su máquina local. No olvide eliminar esa línea del archivo de hosts cuando desee probarla en el servidor.


Si su aplicación está en el modo sandbox, Facebook actúa como si su aplicación fuera invisible para cualquier persona que no esté en la lista de desarrolladores de aplicaciones. Si no ha iniciado sesión, sería lógico que su aplicación ahora sea invisible.

La devolución de llamada solo se activará si está inicializando con una aplicación visible. De lo contrario se devuelve la siguiente respuesta:

<span>Application Error: There was a problem getting data for the application you requested. The application may not be valid, or there may be a temporary glitch. Please try again later. </span>

Para obtener más información, consulte mi comentario sobre este ticket de error: https://developers.facebook.com/bugs/240058389381072


Solo publicando una situación que estaba llamando FB.getLoginStatus obtuvo ninguna respuesta.

Mi aplicación está diseñada para ejecutarse en una pestaña, y solo ingresé las URL de la pestaña de la página en la página de administración de la aplicación, y no las URL de la aplicación en Facebook (es decir, el lienzo). La pestaña se carga perfectamente, pero cualquier llamada al SDK FB JS no provoca respuesta.


Tal vez usted está utilizando la llamada asíncrona. Lo mismo sucedió cuando llamé a FB.init con window.fbAsyncInit. Todo lo que hice fue retrasar el FB.getLoginStatus con una función setTimeout

window.setTimeout(checkLogStatus, 1000); function checkLogStatus(){ alert("check"); // fetch the status on load FB.getLoginStatus(handleSessionResponse); }

Pareció funcionar después de eso


Tuve un problema similar con la API FB. Resultó que mi aplicación de Facebook estaba mal configurada. Por favor, asegúrese de que este no sea el caso para usted. Mi problema fue que mi parámetro " URL del sitio " en la aplicación FB apuntaba a https , pero estaba usando el protocolo http para el desarrollo. Cualquier llamada contra FB api después de FB.init no estaba llamando a mis funciones de devolución de llamada. Entonces, lo primero que debe hacer es verificar la configuración de la aplicación.

Ahora, si por alguna razón usted depende de la API de FB pero desea tener una opción de respaldo en caso de que no esté operativa, la solución con el temporizador debería estar bien para usted. Simplemente configure un temporizador y desactívelo si FB Api le da la respuesta adecuada. Si no, retroceda a alguna función personalizada que realizará alguna lógica adicional.

function callFbApi() { var timeoutHandler = setTimeout(function() { requestFailed(); }, 1000); function requestFailed() { // When this happens, it means that FB API was unresponsive doSomeFallbackWork(); alert(''hey, FB API does not work!''); } FB.getLoginStatus(function(response) { clearTimeout(timeoutHandler); // This will clear the timeout in case of proper FB call doSomeUsualWorkAfterFbReplies(); return false; }, true); }


Tuve un problema similar. El sitio funcionaba cada vez que abría el navegador, pero falla cuando intentaba recargar.

La causa fue la falta de "www" en el nombre del sitio en las configuraciones de Facebook. Tenga en cuenta que poner "www" (como www.yoursite.com) funciona en ambas situaciones (yoursite.com o www.yoursite.com).