Pregunta

Estoy desarrollando un sitio para un cliente que ya tiene las fotos de sus productos en Facebook y quiere que los mismos álbumes se repliquen en su sitio. Ya estaba usando Facebook Connect, así que descarté una combinación de photos.getAlbums y photos.get para crear dinámicamente las galerías.

Hasta ahora todo bien, pero luego me di cuenta de que si no hay ningún usuario registrado a través de FBC, no se crea ninguna sesión y la API queda inutilizable, incluso para el contenido que está disponible públicamente. Obviamente quiero mostrar los álbumes a todos y no solo a las personas que conectan sus cuentas.

¿Es así como funcionan todas las funciones en la API de Facebook? ¿Cuál es la mejor solución (más fácil de implementar) para esta situación?

¿Fue útil?

Solución

A partir de septiembre de 2010, ahora puede autenticarse solo como una aplicación, sin usuario asociado. Consulte http://developers.facebook.com/docs/authentication/ para obtener más información. O puede ejecutar este código de ejemplo para obtener un token de acceso:

curl -F grant_type=client_credentials \
 -F client_id=your_app_id \
 -F client_secret=your_app_secret \
 https://graph.facebook.com/oauth/access_token

Otros consejos

Para el registro, logré resolver esta situación desarrollando un pequeño backend que requiere que el cliente inicie sesión en Facebook una vez y proporcione offline_access permiso extendido para la aplicación FB, para que pueda guardar su clave de sesión y usarla para autenticar el cliente API de Facebook cada vez que necesito usar FQL para obtener contenido no público.

Obviamente, se podría agregar un poco de almacenamiento en caché en el medio para evitar solicitudes innecesarias a Facebook, pero ha estado funcionando bien durante meses sin alcanzar ningún límite que yo sepa.

Eso no tiene sentido para mí: tengo una aplicación (relativamente simple) que se muestra en Facebook incluso si el usuario nunca ha iniciado sesión en Facebook antes (en cuyo caso muestra datos de demostración).

Cuando uso la biblioteca PHP de Facebook, solo hago esto:

$ facebook = nuevo Facebook ($ api_key, $ secret);

No se requiere ID de sesión, pero, obviamente, las funciones de API que dependen de la información sobre el usuario no van a funcionar.

También puede consultar una " sesión infinita " para su aplicación: puede crear una clave de sesión infinita para usted y usar esa sesión para acceder a la API.

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