Facebook没有从网址上抓取元数据

时间:2012-06-20 06:22:28

标签: facebook html5 facebook-opengraph meta-tags

我正在尝试在我的网页上实现一个类似的按钮。标题部分包含相关的元标记:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
  xmlns:og="http://ogp.me/ns#"
  xmlns:fb="http://ogp.me/ns/fb#" >
<head>
<title>
What have you for the world today - Blogs by Antezen
</title>
<link rel="shortcut icon" href="/images/favicon3.ico" type="image/x-icon">
<link rel="icon" href="/images/favicon3.ico" type="image/x-icon">

<meta name="description" content="It was a sunny afternoon..&lt;br&gt;">
<meta property="og:site_name" content="Antezen" />
<meta property="og:locale" content="en_US" />
<meta property="og:type" content="article" />

<meta property="og:title" content="Beginning of a new chapter" />
<meta property="og:url" content="http://antezen.com/blogs/1" />
<link rel="canonical" href="http://antezen.com/blogs/1">
<meta property="og:image" content="http://www.antezen.com/system/pics/645/medium/photo.jpg?1337587175" />
<link rel="image_src" href="http://www.antezen.com/system/pics/645/medium/photo.jpg?1337587175">
<meta property="og:description" content="It was a sunny afternoon..&lt;br&gt;" />

<meta property="fb:admins" content="FB_ADMIN_ID" />
<meta property="fb:app_id" content="FB_APP_ID" />

在body标签内,我指定了javascript sdk:

<body class='app_cont_body'>
<!-- fb JSDK -->
<div id="fb-root"></div>
<script>
  window.fbAsyncInit = function() {
    if(typeof FB != 'undefined') {
      FB.init({
        appId      : 'FB_APP_ID',
        status     : true, 
        cookie     : true,
        xfbml      : true,
        oauth      : true
      });
    }
  }

  // Load the SDK Asynchronously
  (function(d){
    var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
    if (d.getElementById(id)) {return;}
    js = d.createElement('script'); js.id = id; js.async = true;
      js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=FB_APP_ID";
    ref.parentNode.insertBefore(js, ref);
  }(document));
</script>
....

和像这样的xfbml代码的fb类按钮:

<div id='fblike' class='inline'>
 <fb:like href="http://antezen.com/blogs/1" send="false" layout="button_count" width="450" show_faces="false" font="arial"></fb:like> 
</div>

但是在检查facebook调试工具https://developers.facebook.com/tools/debug中的网址时,它显示facebook无法刮取og:type标签,如og:image,og:title等。 在检查'确切地查看我们的刮刀看到您的URL'时,我得到以下输出:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
 <head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head>
 <body>
  <p>$(document).ready(function(){
   $(".cast_container").html("\n</p>....
   ...
   ...
   </body>
   </html>

我不知道为什么facebook不会从页面中删除元标记。请帮帮我。

1 个答案:

答案 0 :(得分:1)

我用

<!DOCTYPE html>
<html itemscope itemtype="http://schema.org/Blog" xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US" xmlns:fb="https://www.facebook.com/2008/fbml">
<head prefix="og:http://ogp.me/ns# anotherfeed:http://ogp.me/ns/apps/anotherfeed#">

anotherfeed是我的应用程序的名称空间 - 例如; http://apps.facebook.com/anotherfeed/?ref=FSOF 头部前缀用于打开图形,希望这有帮助。