我正在實施一個像按鈕,但由於某種原因,元標記中的信息沒有被正確傳輸。Facebook喜歡的按鈕獲取URL正確,但不是元信息
如果我將URL放入<fb:like></fb:like>
標籤中,則正確的URL將加載到FB上的牆貼上。但是,meta標籤中描述的圖片和所有其他項目不會與其一起發佈。如果我將href
從<fb:like></fb:like>
標籤中移出,那麼鏈接默認爲like按鈕所在的頁面。不幸的是,我需要給鏈接添加一些參數,所以當用戶從FB文章點擊到網站時,它顯示正確。
我已經通過鏈接linter運行我的鏈接,它仍然在牆貼中顯示相同的圖像和基本站點信息,而不是圖像或在linter中顯示的元標記中的描述。
基本上,它看起來像我的一些元信息被忽略。我究竟做錯了什麼?這是緩存問題嗎?
編輯我只是在IE測試這一點,我得到一個錯誤的喜歡按鈕,應該是說頁面無法找到...
文檔的頭:
<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:og="http://ogp.me/ns#"
xmlns:fb="http://www.facebook.com/2008/fbml">
<head>
<meta property="og:title" content="Product Title" />
<meta property="og:type" content="product" />
<meta property="og:url" content="http://www.mysite.com/folder/folder/gateway.cfm?ifcn=1&fbx=true&type=product&product=771&page=gateway" />
<meta property="og:image" content="http://www.mysite.com/folder/folder/images/theImage.jpg" />
<meta property="og:site_name" content="My Site" />
<meta property="fb:admins" content="ADMIN_ID123" />
只是身體標記內:
</head>
<body>
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({status: true, cookie: true,
xfbml: true});
};
(function() {
var e = document.createElement('script'); e.async = true;
e.src = document.location.protocol +
'//connect.facebook.net/en_US/all.js';
document.getElementById('fb-root').appendChild(e);
}());
</script>
我的Like按鈕:
<fb:like href="http://www.mysite.com/folder/folder/product.cfm?pid=562&ifcn=1&fbx=true&type=product&product=562&page=gateway " show_faces="false" width="450" font=""></fb:like>
其中是您的HTML中的'fb-root'元素? – emaillenin 2011-04-22 06:24:55
@emaillenin,我更新了代碼以顯示它在我的頁面中的位置。正好在打開'body'標籤後。 – Ofeargall 2011-04-22 06:34:29
我認爲你需要這個doctype來使用opengraph元標記。 <!DOCTYPE html PUBLIC「 - // W3C // DTD XHTML + RDFa 1.0 // EN」「http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd」> 還試試修改xmlns:og,如下所示 xmlns:og =「http://opengraphprotocol.org/schema/」 – emaillenin 2011-04-22 06:48:47