アプリケーションを Facebook と統合するために、Omniauth と Koala7 の gem を実装しました。カスタム オブジェクトを使用してカスタム アクションを投稿する際の小さな問題を除いて、すべてが正常に機能します。
問題は、私のオブジェクト URL が /posts/1 などの新しく作成された投稿の表示ページである必要があることです。このページを facebook オブジェクトとして認識させるには、次のようにshow.html.erbの上に facebook メタタグを配置する必要があります。
<head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# sdff: http://ogp.me/ns/fb/sdff#">
<meta property="fb:app_id" content="myid" />
<meta property="og:type" content="sdff:post" />
<meta property="og:url" content="<%= "http://sdff.herokuapp.com" + post_path(@post) %>" />
<meta property="og:title" content="Sample" />
<meta property="og:image" content="https://fbstatic-a.akamaihd.net/images/devsite/attachment_blank.png" />
</head>
問題は、facebookオブジェクト デバッガーtype:webpage
がこれをではなくとして認識することですtype:post
。これは、次のように/layouts/application.html.erbにデフォルトの head タグが既にあるためだと思います。
<head>
<title>sdff</title>
<%= stylesheet_link_tag "application", :media => "all" %>
<%= javascript_include_tag "application" %>
<%= csrf_meta_tags %>
</head>
オブジェクトデバッガーが具体的に指摘しているため、これを想定しています。
本文のメタ タグ: の外側にタグがあります。これは、形式が正しくなくて解析ツリーの下位に落ちたか、Open Graph タグを誤って間違った場所に配置したことが原因です。いずれにせよ、タグが使用可能になる前に修正する必要があります。
では、どうすればこの問題を解決できますか? Facebook メタタグを my に配置する必要show.html.erb
がありますが、ページ自体は既にアプリケーション レイアウト全体の本体の一部になっています。