2012-01-12 45 views
2

我一直在尋找,但沒有找到全面的答案,我想知道的是,當我把一個鏈接放入Facebook時,它會爲該網站生成標題,描述和圖像 - 如何?Facebook上的鏈接功能如何工作?

它發生了什麼過程?

+0

FB的代碼需要url,在後臺加載頁面,提取/生成信息,以及繁榮......有預覽。 – 2012-01-12 22:29:09

+0

但是,從代碼的角度來看,它會怎麼做呢? – AviateX14 2012-01-12 22:31:03

+0

他們可能使用CURL來獲取信息。對圖像不太確定,有幾種方法可以做到這一點 – 2012-01-12 22:33:04

回答

4

我假設你是指當你分享到Facebook的鏈接。 Facebook在網站的<title>標籤中找到標題。描述取自HTML文檔中的描述元標記或網站上的文本。由於這不完全可靠,因此您可以在發佈鏈接之前編輯說明。我認爲標題也是一樣。

該圖像是從Facebook可以在您提供的鏈接的文檔中找到的圖像中選擇的。您還可以選擇在發佈鏈接時使用哪個圖像,或者您可以選擇不顯示圖像。

我不知道任何有關這方面的細節比我上面寫的,我也找不到任何有關該主題的文檔。以上幾乎是你需要知道的使用該功能,並計劃任何網站你計劃在Facebook上分享相應。


關於如何從鏈接中提取數據的技術術語是Web scraping。只需要獲取原始HTML(如果您想要刮取的網站)(您可以使用CURL來完成此操作,或者使用PHP的file_get_content或多種其他方法),然後搜索您要提取的數據。

提取標題很容易。如果你使用正則表達式,你可以寫一個獲取該網站的<title></title>標籤之間的內容,這裏是一個簡單的例子:(?<=(\<title\>))(.*)(?=</title>)

類似的正則表達式可用於查找網站上所有圖片鏈接,以及樣本內容。

0

它從您鏈接的頁面的源獲取該信息。

頁面的標題來自title標籤之間的任何內容,並且它將頁面上顯示的第一個圖像作爲參考。

+1

這也是事實,不過最好是專門爲URL指定'og:tags',這樣您就可以更好地控制它的顯示方式。 – Lix 2012-01-12 22:44:33

2

Facebook服務器會查看發佈的鏈接並從中提取某些數據。它可能是標題,圖像或一些文字作爲摘要。服務器如何決定採取什麼以及忽略什麼取決於HTML的構建方式。
爲了讓開發人員能夠確保Facebook的服務器看到正確信息og:tags放置在其pages.s 例子是:

  • OG:標題 - 鏈接預覽的標題。
  • og:image - 將在預覽中使用的圖片網址。

他們出現這樣的頁面的HTML標記:

<meta property="og:title" content="The Rock"/>
<meta property="og:image" content="http://ia.media-imdb.com/rock.jpg"/>


如果你想看到這個動作,你可以使用 Debugger Tool說Facebook有提供。這個工具會向你顯示 ,正好 facebook如何查看網址,查看哪些信息,以及如果查看網址信息時出現問題,它也會引起你的注意。

您可以閱讀更多關於Open Graph Protocol,以及如何在Facebook上使用它here

0

啊是在Facebook的好ol鏈接功能。我看着如何做到這一點,當我開發一個類似的功能爲我的網站projectclimb.com

本質上,它完成這些步驟

1)客戶端請求(通過AJAX)被加載/鏈接稱爲Facebook的服務器上通過AJAX

2)Facebook服務器執行http獲取請求,然後解析返回的HTML並剝離除標題,描述標記以及任何圖像以外的所有內容。

3)Facebook服務器重新打包此信息並將其發送回(通過AJAX)對顯示着一個很好的控制着這一切信息整齊陳列

這聽起來比它更復雜真的..沒有客戶端花費太長的時間來複制我的網站。