android - ejemplos - La devolución de llamada con autorización de Facebook no se llama
fb api (1)
Esta pregunta ya tiene una respuesta aquí:
He desarrollado una aplicación de Facebook (un juego en "modo de desarrollo") consumida por un cliente web (lienzo de Facebook) y un cliente móvil (aplicación de Android). También tengo una API REST (desarrollada con Laravel) que permite los intercambios entre clientes y la API de Facebook. El API es accesible a través de Internet (no localhost).
Mi objetivo es detectar cuando los usuarios desinstalan mi aplicación de Facebook.
La documentación de Facebook dice que:
Las personas pueden desinstalar aplicaciones a través de Facebook.com sin interactuar con la aplicación en sí. Para ayudar a las aplicaciones a detectar cuándo ha ocurrido esto, les permitimos proporcionar una URL de devolución de llamada sin autorización que se emitirá un ping cuando esto ocurra.
Puede habilitar una devolución de llamada con autorización previa a través del Panel de aplicación. Simplemente vaya a su aplicación, luego elija el menú Configuración y finalmente la pestaña Avanzado. Se proporciona un campo de texto para la URL de devolución de llamada con autorización previa.
Cuando un usuario de su aplicación lo desautoriza, a esta URL se le enviará un POST HTTP que contiene una solicitud firmada. Lea nuestra guía para analizar la solicitud firmada para ver cómo descodificar esto para averiguar la ID de usuario que activó la devolución de llamada.
La ruta de Laravel para esta URL acepta solicitudes GET
y POST
. Sé que la devolución de llamada de Facebook utiliza la solicitud POST
, pero aceptar el método GET
me permite usar la herramienta " Depurador de objetos de gráfico abierto " para probar si los servidores de Facebook pueden acceder a mi URL (y es exitoso).
Actualmente utilizo un certificado SSL autofirmado (AES 128) . Apache es mi servidor web (redirige todas las solicitudes HTTP a HTTPS).
Sé cómo decodificar el parámetro POST codificado signed_request
(el problema no está aquí).
Problema:
Cuando elimino la aplicación (con una cuenta de prueba de Facebook), nunca se llama la URL de devolución de llamada . Los registros de Apache (acceso / error) no muestran absolutamente nada (mientras que puedo ver el acceso anterior a través del Open Graph Object Debugger).
He intentado cambiar la URL de devolución de llamada por otro dominio con un certificado SSL entregado por una CA conocida. Mismo resultado ... esto es muy frustrante.
No entiendo porque Me perdi algo
- ¿Es un problema con mi servidor web?
- ¿Es un problema con mi certificado SSL?
- ¿Es un problema con la configuración de mi aplicación de Facebook?
- ¿Es porque mi aplicación de Facebook está en modo de desarrollo?
- Es un error de Facebook?
Desde mi experiencia personal las notificaciones de facebook no son fiables. He desarrollado algunas aplicaciones que se basan en actualizaciones en tiempo real de Facebook y he experimentado los siguientes problemas:
- Actualizaciones / devoluciones de llamada perdiéndose
- Actualizaciones entregadas días después.
- Cuando Facebook actualiza la versión API de Graph, algunas de las aplicaciones funcionan aún en la versión anterior y las que migra no funcionan.
A veces, para solucionarlo, eliminaría todas las suscripciones y las volvería a agregar. Después de un tiempo, me cansé de esto y ahora sí, y las actualizaciones en tiempo real también he implementado el registro y la supervisión.
espero que esto ayude