2010-08-12 13 views
9

Co robi Facebook z przycisków "Lubię to" w aplikacji internetowej ajax, jeśli odnoszą się one do tej samej strony, ale z innym ciągiem znaków?Przyciski "Lubię to" i ciągi adresów URL Facebooka?

Czy traktuje je jako różne strony do "polubienia"?

na przykład, jeśli mogę dostać 4 jak kliknięć:

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

co pojawi się w kanałów informacyjnych przez użytkowników

4 people like mysite.com/articles 

lub

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

Czy są jakieś inne rzeczy do przemyślenia przy użyciu FB i # stringów?

Odpowiedz

7

Przyciski podobne do Facebooka używają metadanych osadzonych w znacznikach HTML pojedynczej strony. Działałoby to teoretycznie, jeśli twój adres URL tworzy różne metadane, gdy uzyskuje się dostęp przez curl (tj. Bez JavaScriptu, co, jak sądzę, nie jest możliwe, ponieważ część hash nie jest widoczna po stronie serwera, więc nie ma sposobu działania po hashowych wartościach znaków po stronie serwera).

Po tym, zakładam, że przyciski podobne do Facebooka nie zachowują się inaczej dla różnych ciągów mieszających. Spojrzenie na dokumentację na Facebooku (które w większości jest do bani) nie wspomina o tym, ale fora programistów na Facebooku zdają się potwierdzać to: http://forum.developers.facebook.com/viewtopic.php?pid=240151

Jednak wszystko nie jest stracone. Można określić adres URL jak przycisk, więc wystarczy ustawić adres URL być URL SEO-friendly z tej samej strony: http://developers.facebook.com/docs/reference/plugins/like

AKTUALIZACJA - Wyjaśnienie od komentarzach

Więc teraz, że wiemy, że masz statyczne wersje adresów URL ciągów skrótów. Wcześniej, były najprawdopodobniej umieszczenie jak przyciski na stronie z tym kodem:

XFBML:

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

Zamiast tego powinno być określenie wersji SEO URL. Na przykład, jeśli jesteś na mysite.com/articles#story4, kod powinien wyglądać następująco:

XFBML:

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

co, jeśli jesteś ajaxingiem - w nowych danych meta kliknięcia wraz z innymi treściami ajax'd? Zgadzam się z tobą na temat złego stanu fb docs/społeczności! – Haroldo

+1

@Haroldo, AJAX jest javascript i nie jest dostępny przez cURL. Musi być w dokumencie, który jest pierwotnie załadowany przed manipulacją javascript. Takie same reguły jak wyszukiwarki. –

+0

Nie chodzi o to, że są to linki przyjazne SEO, ale o to, że są one kluczowe dla załadowania prawidłowej strony. Są one wymagane, a nie opcjonalne. –

1

Facebook spadnie wszystko po tagu hash. Co trzeba zrobić, to wysłać swoją prośbę ucieczce # symbolu kodowania go w% 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 głównie * obsługuje Google's ajax-crawling spec, tak, że jeżeli fragment rozpoczyna się z wykrzyknikiem, a następnie Facebook zrobi następującą konwersję żądanie, aby serwer mógł uzyskać fragment i podać oczekiwaną treść.

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

(Według specyfikacji Google użytkownik powinien nigdy zobaczyć brzydki URL, więc zakładam, że Facebook będzie zawsze przechowywać te adresy URL w formacie „wykrzyknik”).

Obsługa odpowiedniej zawartości dla tych żądań jest często nietrywialna. Zobacz więcej here.

* Wyzwalacz metatagów nie działa. Testowałem to w sezonie 2012/08/18.

Powiązane problemy