Pregunta

Estoy desarrollando un pequeño CMS en PHP y estamos organizando integración social.

El contenido es cambiado por un solo administrador que tiene razón para publicar noticias, eventos, etc. en ...

Agregaría esta función, cuando el administrador publica algo que ya se publica en Facebook Wall. No estoy muy familiarizado con Facebook PHP SDK, y estoy un poco confundido al respecto.

Si (convertirlo en un ejemplo) 10 sitios diferentes están usando mi CMS, ¿tengo que crear 10 aplicaciones de Facebook diferentes? (Supongamos que los 10 sitios web están en diferentes dominios y servidores)

En segundo lugar, ¿hay alguna forma de autenticarse con solo PHP (algo como enviar nombre de usuario y contraseña directamente) para que el usuario no necesite registrarse en Facebook?

Gracias

¿Fue útil?

Solución

Por favor lea http://developers.facebook.com/docs/.

Es realmente fácil y directo y bien explicado.

Su pregunta es tan vaga y extensa que no se puede responder bien aquí.

Si experimenta algún problema de implementación específico, este es el lugar correcto.

Sin embargo, para responder al menos una parte de su pregunta:

La herramienta más poderosa cuando se trabaja con aplicaciones de Facebook es la API de gráficos.

Su principio es muy simple. Puede hacer Almonst cualquier acción en nombre de cualquier usuario o aplicación. Primero debe generar un token que identifique al usuario y los permisos adecuados. Esos tokens se pueden hacer "permanentes" para que pueda hacer tareas de fondo. Por lo general, solo están activos en muy poco tiempo, por lo que puede realizar acciones mientras interactúa con el usuario. El proceso de generación de tokens involucra al usuario para que tenga que confirmar los privilegios que está pidiendo.

Para los sitios web que publican algo automáticamente, probablemente generaría un token permanente una vez que esté activo siempre que elimine la aplicación en su configuración de privacidad.

Básicamente, Yuo puede trabajar con cualquier aplicación en cualquier sitio web. No hay limitación. Sin embargo, hay dos formas de generar tokens. Uno implica en una solicitud adicional y uno está hecho al lado del cliente, que está vinculado a un dominio especificado en la configuración de sus aplicaciones.

Apéndice:

@Artoale

Tiene razón sobre cada aplicación de abeja a su fin a un dominio exactamente. Sin embargo, una vez que obtuvo un token válido, no importa desde dónde o con quién lo usa dentro de la API de gráficos.

Déjame expalir esto un poco:

No tendría sentido ya que está haciendo la solicitud. No existe "de dónde proviene la solicitud". Por supuesto, existe la información del encabezado del "referente", pero se puede especificar libremente y no se usa en ningún contexto de esto.

El dominio que ingresa en la configuración de sus aplicaciones solo restringe a dónde Facebook redirige al usuario.

¿por qué?

Esto asegura que un chico malo no pueda configurar un sitio web en ningún dominio y dejar que el usuario autorice una aplicación y obtenga un token de acceso con su aplicación.

Por lo tanto, esta configuración garantiza que el usuario y el token de acceso se redirigan a su sitio y no a otro sitio malo.

Pero hay una alternativa. Si usa el flujo de control para aplicaciones de escritorio, no obtiene un token de acceso justo después de que el usuario haya sido redirigido hacia atrás. Obtiene una sesión temporal de sesión que puede excambiar para un token de acceso. Este intercambio se realiza el lado del servidor sobre la API REST y requiere el secreto de su aplicación. Entonces, en este punto, se asegura que eres tú quien obtiene el token.

Este método se puede hacer en cualquier dominio o en caso de aplicaciones de escritorio en ningún dominio.

Esta es una cita de los Docs de Faceboo:

Para convertir sesiones, envíe una solicitud de publicación a https://graph.facebook.com/oauth/exchange_sessionsCon una lista de sesiones separadas por comas, desea convertir:

curl client_id = your_app_id -f client_secret = your_app_secret -f sesions = 2.dbavcpzl6yc_xgei0ip9ga __. 3600.1271649600-12345,2.Abdc ... https://graph.facebook.com/oauth/exchange_sessionsLa respuesta de la solicitud es una matriz JSON de los tokens de acceso OAuth en el mismo orden que las sesiones dadas:

{"Access_token": "...", "expire": 1271649600,}, ...

Sin embargo, no necesita este método, ya que es un poco más complejo. Para su caso de uso, sugeriría usar un punto central de autorización.

Por lo tanto, especificaría su único dominio como URL de redirección. Este dominio es compartido entre sus sitios web. Allí puede obtener el token de acceso totalmente válido y redirigir sin problemas al usuario al sitio web específico de su proyecto y pasar el token de acceso.

De esta manera, puede usar el flujo tradicional de autenticación fácil que probablemente también sea más pruebas futuras.

El hecho sigue siendo. Una vez que se genera el token de acceso, puede realizar cualquier acción desde cualquier dominio, no hay diferencia ya que literalmente no hay "dominio" de donde proviene la solicitud (ver arriba).

Aparte de eso, si desea que funcionen algunas funciones de JavaScript, como el cuadro de comentarios o el botón Me gusta, debe configurar Etiquetas de gráficos abiertos correctamente.

Si tiene algunos problemas de implementación o, como dijo "errores de dominio", descríbelos más claramente, incluya los pasos que realizó y, si es posible, un mensaje de error.

Otros consejos

Es posible que desee dividir su pregunta en unidades comprensibles más pequeñas. Es muy difícil entender a qué conduces.

Mi comprensión de su problema podría ser mínimo, pero aquí va ...

1_ No, no creas 10 aplicaciones de Facebook diferentes. Cree una sola aplicación de Facebook y conviértalo en un punto de entrada del servicio. Para que todos sus sitios de CMS puedan hablar con este sitio para interactuar con Facebook. (Una capa de servicio de descanso).

2_ La API de Facebook no admite la autenticación de nombre de usuario y contraseña. Solo apoyan OAuth2.0. Aunque OAuth no es trivial, pero dado que han proporcionado biblioteca para eso, la implementación de la autenticación es bastante trivial.

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