2010-08-12 13 views
9

¿Qué hace Facebook con los botones 'Me gusta' en una aplicación web ajax si se están refiriendo a la misma página pero con un # diferente?Facebook 'me gusta' botones y # cadenas de URL?

¿Las trata como páginas diferentes a 'me gusta'?

por ejemplo, si me da 4 como clics:

mysite.com/articles#story1 
mysite.com/articles#story2 
mysite.com/articles#story3 
mysite.com/articles#story4 

lo que se van a plantear en el suministro de noticias de los usuarios

4 people like mysite.com/articles 

o

dave likes mysite.com/articles#story1 
tom likes mysite.com/articles#story2 
ben likes mysite.com/articles#story3 
nick likes mysite.com/articles#story4 

¿hay alguna otra cosa en qué pensar con FB y # strings?

Respuesta

7

Los botones como Facebook usan metadatos que están incrustados en el marcado HTML de una sola página. Funcionaría en teoría si sus URL producen metadatos diferentes cuando se accede mediante curl (es decir, sin JavaScript, que creo que no es posible ya que la porción hash no se ve en el servidor, por lo que no hay forma de actuar sobre valores de cadena hash del servidor)

Habiendo dicho eso, supongo que los botones Me gusta de Facebook no se comportan de manera diferente para diferentes cadenas de hash. Un vistazo a la documentación de Facebook (que en su mayoría apesta) no menciona esto, pero los foros de desarrolladores de Facebook parecen confirmar esto: http://forum.developers.facebook.com/viewtopic.php?pid=240151

Sin embargo, no todo está perdido. Se puede especificar la URL de un botón, por lo que acaba de establecer la URL a ser la URL de SEO-friendly de la misma página: http://developers.facebook.com/docs/reference/plugins/like

ACTUALIZACIÓN - Aclaración de los comentarios

Así que, ahora que sabemos que tiene versiones estáticas de la cadena de hash URLS. Antes, estabas muy probablemente poniendo como botones en la página con el código:

XFBML:

<fb:like show_faces="false" width="450"></fb:like> 

En su lugar, usted debe estar especificando la versión SEO de la URL. Por ejemplo, cuando estás en mysite.com/articles#story4, el código debe ser similar:

XFBML:

<fb:like href="mysite.com/articles/story/4" show_faces="false" width="450"></fb:like> 
+1

¿Qué pasa si estás ajaxing-en los nuevos metadatos en hacer clic junto con otro contenido ajax'd? ¡Estoy de acuerdo con usted sobre el mal estado de los documentos/comunidad de fb! – Haroldo

+1

@Haroldo, AJAX es javascript y no se accede por cURL. Debe estar en el documento que se cargó originalmente antes de cualquier manipulación de javascript. Las mismas reglas que los motores de búsqueda. –

+0

No se trata tanto de que estos enlaces sean amigables para SEO, sino más, de modo que son críticos para la carga de la página correcta. Son obligatorios, no opcionales. –

1

Facebook va a dejar todo a raíz de la etiqueta de hash. Lo que hay que hacer es enviar su solicitud escapar símbolo # que lo codifica en% 23

<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fmysite.com%2Farticles%2F%23story1" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:450px; height:px"> 
0

Facebook mayormente * apoya Google's ajax-crawling spec, de modo que si el fragmento comienza con un signo de exclamación, a continuación, Facebook va a hacer la siguiente conversión de la solicitud, para que el servidor pueda obtener el fragmento y servir el contenido esperado.

https://myapp.com/#!/post/2 =>https://myapp.com/?_escaped_fragment_=/post/2

(De acuerdo a las especificaciones de Google el usuario nunca debe ver la url feo, así que supongo que Facebook siempre almacenará estas direcciones URL en el formato "signo de exclamación".)

Servir el contenido adecuado para estas solicitudes a menudo no es trivial. Ver más here.

* El activador de metaetiqueta no funciona. Lo probé el 18/08/2012.

Cuestiones relacionadas