web-dev-qa-db-ja.com

「 'og:type'プロパティは必須ですが、存在しません。」エラー

FacebookのグラフAPIに問題があります。 「og:type」プロパティは必須ですが、存在しません。このURLのエラー: http://thatnewjoint.com/posts/logic-driving-ms-daisy-feat-childish-gambino (および私のブログの他のすべてのURL)。

Og:typeメタタグは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"
}

(コアラRuby gem)を介して)彼らのAPIを使用して投稿しているときに、リンクが削られないようですか?og:typeエラーが原因であると思いますが、ここにありますそのページのメタタグ:

<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 にURLを入れたかのように見えますが、最初は「The 'og:type' property is required、but not present。」と表示されます。エラーが表示されますが、[Fetch new scrape information]ボタンをクリックすると、正しい情報がすべて見つかります。 FBがURLをスクレイピングしようとしているのが早すぎる可能性はありますか?最初のパスでは、URLを適切に取得していないようですが、理由がわかりません。

12
kitdesai

Your-app-id(一意のFacebookアプリID)を使用して、このHTMLメタタグをHEADに追加する必要があります。 "your-app-id"を交換してください:

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

FBアプリIDを作成するには、ここに移動します: https://developers.facebook.com/apps

そして、同じ一意のFacebookアプリIDをFacebook JSに追加し、できる限りHTML本文タグの上部に配置します。 "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とメタタグの詳細については、次の2つの役立つリンクをご覧ください。1。 https://developers.facebook.com/docs/opengraph/using-objects = 2. https://developers.facebook.com/docs/sharing/best-practices

これでうまくいくはずです。他にサポートが必要な場合はお知らせください。

この回答を更新しました。kitdesaiのおかげで、FacebookのGraph APIバージョンには現在v2.1までの新しい要件があることを指摘してくれました。

これと同じ問題があり、私の問題は、og:urlに設定したURLの末尾に「/」があり、facebookに投稿したページのURLにないことでした。

デバッガーは、og:typeがまだ設定されていないことを教えてくれました。問題は、facebookのパーサーが不一致をリダイレクトとして扱い、混乱したことだと思います。

とにかく、それらを一致させることで私の問題は修正されました。

2
jeffjv