【发布时间】:2013-02-02 11:47:18
【问题描述】:
我已经实现了 Omniauth 和 Koala7 gem 来将我的应用程序与 Facebook 集成。 除了使用自定义对象发布自定义操作的一个小问题之外,一切都运行良好。
问题是我的对象 url 应该是新创建帖子的显示页面,例如 /posts/1。为了使这个页面被识别为 facebook 对象,我需要将 facebook 元标记放在 show.html.erb 的顶部,如下所示:
<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 object debugger 将其识别为 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 元标记放在我的 show.html.erb 中,但页面本身已经是整个应用程序布局主体的一部分。
【问题讨论】:
标签: ruby-on-rails facebook-opengraph meta-tags