我有一個頁面,用戶必須在多個對象上發起操作,但是Facebook設計使用所需的元屬性標籤將每個頁面限制爲一個對象。在同一頁面上的多個Facebook opengraph對象
有沒有人找到解決這個問題的辦法?
我有一個頁面,用戶必須在多個對象上發起操作,但是Facebook設計使用所需的元屬性標籤將每個頁面限制爲一個對象。在同一頁面上的多個Facebook opengraph對象
有沒有人找到解決這個問題的辦法?
FB使用您分配給對象的URL來刮取信息。解決這個問題的唯一方法是通過iframe或某種方法顯示對象。如果直接引用該對象,則需要一種方法將其重定向回合並對象視圖的適當包裝頁面。只要所有東西都在同一個域中,你就可以通過父節點找出一個在子框架之間進行通信的方法。
Open Graph使用URL作爲對象標識符,所以它不可能在一個頁面上有多個對象,頁面是的對象。
相反,您需要每個對象的URL,並且該URL的HTML應包含正確的OG標記。
您可以在一個頁面上放置多個像按鈕,並通過爲每個類似按鈕指定「href」參數使它們指向每個對象。
不過,如果你希望用戶最終回到了同一頁,當他們點擊鏈接到這些對象上,你可以做到這一點,但它有點調皮......
在您在您的服務器上的對象頁面上,查看傳入的請求useragent。如果useragent包含字符串'facebookexternalhit',然後呈現HTML和OG標記 - 這是Facebook刮板如何看你的頁面。如果useragent不包含此字符串,請對您希望用戶查看的頁面執行302重定向。
結果?許多對象,但只有一個用戶可見頁面。贏得。
而且這是你會怎麼做:
<?php
if ($_SERVER["HTTP_USER_AGENT"] != "facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)") {
redirect('http://www.somesite.com', 302);
}
function redirect($url, $type=302) {
if ($type == 301) header("HTTP/1.1 301 Moved Permanently");
header("Location: $url");
die();
}
?>
<html...
https://stackoverflow.com/a/7659770/1354666這是一個偉大的答案,但關於它的一些東西沒有工作進行的順利我,所以我試過的替代品。
而不是在按鈕標籤中使用href我使用Iframes。
我仍然在爲我的手機輸出進行細化,但它的工作原理與大多數瀏覽器一樣。