Omniauth와 Koala7 보석을 구현하여 내 응용 프로그램을 Facebook에 통합했습니다. 사용자 정의 개체를 사용하여 사용자 지정 작업을 게시 할 때 발생하는 사소한 문제를 제외하면 모든 것이 잘 작동합니다.페이스 북 메타 태그를 레일스 애플리케이션에 배치하기
문제는 내 개체 URL이/posts/1과 같이 새로 만든 게시물의 표시 페이지 여야한다는 것입니다. 페이스 북의 객체로 인식이 페이지를 만들려면,이 같은 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>
문제는 페이스 북 object debugger가 type:webpage
대신으로 이것을 인식입니다 type:post
.
메타 : 오브젝트 디버거 구체적으로 지적 때문에이 가정
<head>
<title>sdff</title>
<%= stylesheet_link_tag "application", :media => "all" %>
<%= javascript_include_tag "application" %>
<%= csrf_meta_tags %>
</head>
: 내가 거기, 이미 /layouts/application.html.erb의 기본 헤드 태그입니다과 같이 때문이라고 생각 태그 본문 : 당신은 귀하의 태그가 있습니다. 이것은 당신의 조작이 잘못되어 구문 분석 트리에서 더 낮아 졌거나 실수로 Open Graph 태그를 잘못된 위치에 두었 기 때문입니다. 어느 쪽이든 태그를 사용할 수있게되기 전에 수정해야합니다.
어떻게이 문제를 해결할 수 있습니까? show.html.erb
에 페이스 북 메타 태그를 넣어야하지만, 페이지 자체는 이미 전체 애플리케이션 레이아웃 본문의 일부입니다.
도움 주셔서 감사합니다. Greg. 'content_for'를 사용할 수 있다는 것을 잊어 버렸습니다 :) –
'content_for'를 사용하면 어디에서 프리픽스를 넣을 수 있습니까? –
응용 프로그램의 각 페이지마다 접두사를 다르게해야합니까? 이것에 접근 할 수있는 한 가지 방법은 인스턴스 변수 또는 도우미 메서드를 사용하는 것입니다. '
>'와 같은 것은 이전에 변수를 설정했다고 가정 할 때 작동 할 수도 있습니다. –