Actualmente estoy usando jQuery para registrar cada clic en un enlace para compartir de Facebook en mi sitio, pero estoy buscando una solución más precisa. En lugar de registrar los clics, me gustaría registrar las "participaciones" reales. ¿Hay alguna forma de recibir un mensaje de respuesta de Facebook después de que el usuario comparte un enlace?
Me encontré con esto hoy: http://graph.facebook.com/http://stackoverflow.com
Devuelve un recuento total de recursos compartidos para una URL específica. Tengo direcciones URL únicas para cada usuario en mi aplicación, por lo que puedo rastrear sus acciones fácilmente al usar esto.
También funciona para twitter: http://urls.api.twitter.com/1/urls/count.json?url=http://stackoverflow.com
Mientras permanezca activo, puede usar el cuadro de diálogo " Feed " de Facebook en lugar del cuadro de diálogo " Compartir " para obtener SIEMPRE una confirmación de compartir. (Esto se aplica al SDK de Javascript para Facebook).
Aquí está mi comprensión de las diferencias entre los dos:
FB.ui({ method: 'share', href: 'http://stackoverflow.com/questions/5363517', }, function(response){ console.log(response) });Si el usuario ha INICIADO SESIÓN y autorizado su aplicación:
response : {post_id: "10205041067000110_10205045578512895"} .response será nula.Si el usuario NO HA INICIADO SESIÓN en su aplicación (todavía debe iniciar sesión en Facebook):
response será nula independientemente de si el usuario compartió o no compartió.Por lo tanto, si necesita absolutamente la confirmación de compartir, primero debe pedirle al usuario que inicie sesión. Puede que esto no sea un problema para su aplicación, pero en mi caso esto agregó una fricción innecesaria al proceso de compartir.
(Obsoleto pero aún activo)
FB.ui({ method: 'feed', link: 'http://stackoverflow.com/questions/5363517', caption: 'Test Caption', }, function(response){ console.log(response) });INDEPENDIENTEMENTE del estado de inicio de sesión (escriba su aplicación; aún deben iniciar sesión en Facebook):
response devuelta por Facebook tendrá la identificación de la publicación: {post_id: "10205041067000110_10205045578512895"} .response será nula.Con este método, siempre podrá saber si alguien publicó o no, independientemente de su estado de inicio de sesión.
A partir de abril de 2016, Twitter dejó de usar la versión 1 de su API y no proporciona una alternativa al método anterior para determinar los recursos compartidos de un enlace. Deberá usar su API de búsqueda, que solo mantiene el recuento compartido durante los últimos 7 días y ahora debe suscribirse a su API de transmisión para mantener su propio recuento de larga duración.
Alternativamente, puede usar un servicio gratuito como http://newsharecounts.com o http://opensharecount.com/ para que puedan suscribirse a la API en su nombre y mantener el conteo. Sin embargo, espere que el recuento de recursos compartidos tarde un minuto (o más) en actualizarse.
De las preguntas frecuentes de newsharecounts -
"No importa qué tan grande sea su sitio web o qué tan antiguo sea su contenido, detectamos nuevos recursos compartidos en 1 minuto en promedio"
Desde la página de inicio de opensharecount.com -
"Los resultados de la búsqueda pueden tardar un tiempo en llegar, por lo que inicialmente el recuento informado será cero en todos los enlaces. Comuníquese con nosotros si después de una hora sigue siendo cero".
Re: compartir FB ( http://graph.facebook.com/(url) ), tenga en cuenta que es posible que el usuario use el cuadro de diálogo compartir y elija la opción 'Solo yo' y todavía se cuenta de la misma manera que si lo hubieran compartido con sus amigos. Sepa que la persona que comparte también puede eliminar la publicación poco después, pero las futuras llamadas a la API no reflejarán eso.