2010-06-17 4 views
69

Uso de Graph API Me gustaría poder tener un usuario "me gusta" en una página.'Me gusta' en una página usando Facebook Graph API

He intentado publicar la siguiente

https://graph.facebook.com/${PAGE_ID}/likes?access_token=${ACCESS_TOKEN}

y me da un error HTTP 500 acompañado de "parámetro post_id no válido" en el cuerpo de la respuesta JSON. Parece que el recurso /likes es adecuado para que le guste una publicación en la pared y no una página. ¿Cómo hago que esto funcione con una página?

Respuesta

3

Creo que esto no está permitido, excepto para sitios asociados específicos, como yelp. La razón es la seguridad, usted podría poner algo de javascript en una página y hacer que todos los que visiten esa página lo "sigan" sin su conocimiento.

Ver How do I "Like" a URL? en el Foro de Desarrolladores de Plataforma Facebook

+2

Bueno, no realmente - la API gráfica hace uso de un token de acceso para evitar ese tipo de problema de seguridad preguntando el usuario para dar acceso explícitamente a la aplicación de Facebook. De todos modos, resolví el problema yendo por la ruta preferida de Facebook de incrustar un iframe en su botón "me gusta" (abrir API api). –

+4

"Me gusta" ing (a través de iframe o fbml) no es una aplicación por lo que no se requieren permisos adicionales, todo lo que se requiere es que haya iniciado sesión en Facebook. Todavía estoy buscando una forma de tener un botón Me gusta personalizado no en un iframe alojado en Facebook. – Luke

+0

Luke - yo también! Háganos saber si encuentra una forma de tener un botón personalizado (Android API en mi caso) para que le guste una Página o una Aplicación. –

5

Si desea que esta funcionalidad en una ficha de página o página de tela dentro de Facebook (digamos, para permitir que para el gusto de la página desde dentro de una página likegated), una solución alternativa que pueda involucra lo que Tom Wells sugirió en su respuesta a Luke. En primer lugar, insertar la versión iframe de su botón en su página, y luego simplemente detectar el evento edge.create en sus JS así:

FB.Event.subscribe('edge.create', 
    function(response) { 
     alert('You liked the URL: ' + response); 
     // ... 
    } 
); 

En la devolución de llamada, puede hacer frente a lo que sucede cuando el usuario tiene le gustó la página, por ejemplo, navegar fuera de la página like-gate o mostrar contenido de solo me gusta.

Cuando el usuario hace clic en el botón iFrame like, su código JS debe recibir el evento edge.create suponiendo que el iFrame se configuró para apuntar a la url de la página en cuestión.

+1

Creo que el OP pregunta cómo hacer esto programáticamente, tal vez como una forma de pasar un "me gusta" a través de un control personalizado. –

42

Facebook ha anunciado que admite las URL que le gustan fuera de Facebook mediante el uso del built-in Like action oficial. Necesita tener permisos publish_actions. La url gráfico de esto es: https://graph.facebook.com/[User FB ID]/og.likes?object=OG_OBJECT_URL&access_token=USER_ACCESS_TOKEN

Sin embargo, no se puede usar esto para recibir una página en Facebook en la actualidad, como el documentation states:

Para las páginas de Facebook o sitios web que no se integran con Facebook autenticación , los desarrolladores deben seguir utilizando el botón social del complemento social.

+0

No creo que le pueda gustar una página usando el catión similar incorporado. ¿Puedes confirmar? – AbhinavVinay

+0

@AbhinavVinay Eso es correcto. Actualicé la respuesta. – bkaid

+0

¿Hay algún recurso de desarrollador de Facebook que diga que no puede usar Built-in like en las páginas de Facebook? No es que no te crea, pero estoy tratando de entender por qué es así. ¿Se refiere a esta afirmación en la página incorporada como doc: "El uso de la acción Me gusta incorporada por una aplicación, como con cualquier acción de Open Graph, debe enviarse y aprobarse. Para páginas de Facebook o sitios web que sí lo hacen no se integra con la Autenticación de Facebook, los desarrolladores deben continuar utilizando el complemento social del botón Me gusta. "? –

9

Actualización Junio ​​el año 2016

Todavía no es posible recibir una página usando API de Facebook, como se indica en la /{user_id}/likesdocumentation page sobre Creación/Actualización/Eliminación:

Usted no puede realizar esta operación en este punto final.

En versiones anteriores, el mensaje era más claro (ver la cita a continuación), pero el resultado es el mismo: no es posible.

de mayo de 2014

La página Unidos /{user-id}/likes documentación acerca de las páginas de Facebook Publishing Likes:

No se pueden publicar usando este borde, como no es posible recibir una página de Facebook a través de cualquier API. Debería usar el botón Me gusta si desea que las personas puedan incluir una página en su aplicación.

Esta es la declaración más obvia y clara que me ha podido dar una respuesta a la pregunta.

0

Puede recibir un objeto con su identificador de objeto usando Facebook API utilizando el siguiente fragmento de código

[FBRequestConnection startForPostWithGraphPath:[NSString stringWithFormat:@"/%@/likes",{object_id}] graphObject:nil completionHandler:^(FBRequestConnection *connection, id result, NSError *error) { 
    //do you customisation post like here 
}]; 
Cuestiones relacionadas