‘Me gusta’ en una página usando Facebook Graph API

Uso de Graph API Me gustaría poder tener un usuario “me gusta” en una página.

Traté de publicar lo siguiente

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

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

Facebook ha anunciado su apoyo para que le gusten las URL fuera de Facebook mediante el uso de la acción de Me gusta incorporada oficial. Necesita tener permisos de publish_actions . La URL del gráfico para esto es: https://graph.facebook.com/[User FB ID]/og.likes?object=OG_OBJECT_URL&access_token=USER_ACCESS_TOKEN

Sin embargo, no puede usar esto para que le guste una página en Facebook actualmente, como lo indica la documentación :

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

Actualización junio de 2016

Todavía no es posible hacer clic en Me gusta en una página que utiliza la API de Facebook, como se indica en la página de documentación /{user_id}/likes sobre Creación / Actualización / Eliminación:

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.

Mayo de 2014

La página de la documentación de /{user-id}/likes dice sobre la publicación de me gusta de las páginas de Facebook:

No puede publicar utilizando este borde, ya que no es posible hacer clic en Me gusta en una página de Facebook a través de ninguna 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 statement más obvia y clara que ha podido darme una respuesta a la pregunta.

si su aplicación es una aplicación de gráfico abierto, ahora puede usar la API y ya no necesita el botón.

https://developers.facebook.com/docs/opengraph/actions/builtin/likes/

Si desea esta funcionalidad en una pestaña de página o página de canvas dentro de Facebook (por ejemplo, para permitir que le guste la página dentro de una página similar), un trabajo a su alrededor puede incluir lo que Tom Wells sugirió en su respuesta a Luke. Primero incrusta la versión iframe de su botón “me gusta” en su página, y luego simplemente escuche el evento edge.create en su JS de esta forma:

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

En la callback, puede lidiar con lo que sucede cuando al usuario le ha gustado la página, por ejemplo, al navegar fuera de la página like-gate o al 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 que apunte a la url de la página en cuestión.

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.

Consulte ¿Cómo “Me gusta” una URL? en el foro de desarrolladores de plataforma de Facebook

Puede usar un objeto con su ID de objeto usando la API de Facebook usando la siguiente pieza 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 }];