2014-08-29 75 views
11

我遇到了Facebook的圖形API問題。我得到了'''':''屬性是必需的,但不存在。「此網址錯誤:http://thatnewjoint.com/posts/logic-driving-ms-daisy-feat-childish-gambino(以及我博客上的其他所有網址)。「'og:type'屬性是必需的,但不存在。」錯誤

og:type meta標籤在HTML中,所以我不確定爲什麼Facebook不認識它。下面是他們的圖形API調用返回:

{ 
    "id": "561280430667026", 
    "created_time": "2014-08-28T20:35:18+0000", 
    "is_scraped": false, 
    "type": "website", 
    "updated_time": "2014-08-28T20:35:18+0000", 
    "url": "http://thatnewjoint.com/posts/eminem-superman-throwback-thursdays" 
} 

似乎當我使用他們的API(通過考拉紅寶石寶石)張貼,鏈接不會被刮什麼樣的?我將認爲OG:錯誤類型是從頁造成這一點,但這裏的meta標籤:

<meta property="og:url" content="http://thatnewjoint.com/posts/eminem-superman-throwback-thursdays" /> 
<meta property="og:title" content="Eminem - &quot;Superman&quot; [Throwback Thursdays] | ThatNewJoint | Premier Hip Hop Blog" /> 
<meta property="og:description" content="Classic from The Eminem Show. I&#39;ll be honest - the video is very strange, but the song is great." 
<meta property="og:type" content="video"> 
<meta property="og:image" content="http://i3.ytimg.com/vi/8kYkciD9VjU/hqdefault.jpg" /> 
<meta property="og:video" content="http://www.youtube.com/v/8kYkciD9VjU?version=3&amp;autohide=1"> 
<meta property="og:video:type" content="application/x-shockwave-flash"> 
<meta property="og:video:width" content="1920"> 
<meta property="og:video:height" content="1080"> 

編輯,瞭解更多信息:

好像如果我把網址進入FB Debugger,我最初得到這個「'og:type'屬性是必需的,但不存在。」錯誤,但如果我然後單擊「獲取新的刮信息」按鈕,它會發現所有正確的信息,像它應該。 FB是否有可能試圖過早地抓取URL?似乎他們的第一遍,他們只是沒有正確地抓取網址,但我不明白爲什麼。

+0

這似乎是現在修復;但是,您必須爲視頻添加安全的網址,否則它將無法播放新聞。 – CBroe 2014-08-29 21:56:26

+0

@kitdesai你嘗試過在下面實施我的答案嗎?它是我的網站FB Like按鈕所必需的。這是爲了讓個人myWebsite - 「喜歡」註冊爲對應的myFacebook網站 - 「贊」。請告訴我。 – totallytotallyamazing 2014-09-02 15:48:12

+0

@totallytotallyallyzing感謝您的評論。我意識到我正在錯誤地初始化FB SDK。我解決了它(根據您的意見和新的FB JS SDK文檔),但鏈接仍然沒有被正確地抓取。看到這篇文章,我剛剛:http://thatnewjoint.com/posts/ti-don-t-tell-em-remix – kitdesai 2014-09-03 06:05:33

回答

5

您需要使用您的應用程序ID(唯一的Facebook應用程序ID)將此HTML元標記添加到您的HEAD。只要確保換出 「您的應用ID」:

<meta property="fb:app_id" content="your-app-id"> 

要創建一個FB應用程序ID去這裏:https://developers.facebook.com/apps

,並添加您一樣獨特的Facebook的App ID到Facebook的JS和儘可能地將它放在HTML body標籤的頂部。請務必將「your-app-id」替換爲:

<script> 
    window.fbAsyncInit = function() { 
    FB.init({ 
     appId  : '{your-app-id}', 
     xfbml  : true, 
     version : 'v2.0' 
    }); 
    }; 

    (function(d, s, id){ 
    var js, fjs = d.getElementsByTagName(s)[0]; 
    if (d.getElementById(id)) {return;} 
    js = d.createElement(s); js.id = id; 
    js.src = "//connect.facebook.net/en_US/sdk.js"; 
    fjs.parentNode.insertBefore(js, fjs); 
    }(document, 'script', 'facebook-jssdk')); 
</script> 

此外,還要將您的網站Facebook按鈕添加此代碼以及。只是一定要換掉「你唯一的頁面將要受歡迎」:

<div class="fb-like" data-href="your-unique-page-to-be-liked" data-layout="button_count" data-action="like" data-show-faces="true" data-share="false"></div> 

最後,在Facebook的開發者控制檯把你的FB應用了「開發模式」,並把它放在「公共」模式。

有關FB的Open Graph和meta標籤的詳細信息這裏有2個有用的鏈接:1. https://developers.facebook.com/docs/opengraph/using-objects 2. https://developers.facebook.com/docs/sharing/best-practices

這應該做的伎倆。讓我知道你是否需要任何幫助。

我這個答案,感謝kitdesai用於指出Facebook有其圖形API版本的新要求,這是目前最多可以達到2.1

1

我有這個同樣的問題,我的問題是更新的URL我已經設置爲og:url最後有一個'/',我在Facebook上發佈的頁面的url沒有。

調試器剛剛告訴我og:type還沒有設置。我認爲問題在於Facebook的解析器將不匹配視爲重定向,並且感到困惑。

無論如何,使他們匹配固定我的問題。