[RUBY] [Rails] Configurer Twitter OGP

Il n'y a pas de gemme.

Je me suis référé à l'article suivant pour la balise meta nécessaire pour afficher l'OGP de Twitter. [Édition 2020] Qu'est-ce qu'une carte Twitter? Résumé de l'utilisation et de la méthode de paramétrage

la mise en oeuvre

app/helper/application_helper.rb


def full_title(page_title = '')
  base_title = 'MC BATTLE CHANNEL'
  if page_title.empty?
    base_title
  else
    "#{page_title} | #{base_title}"
  end
end

def full_url(path)
  domain = if Rails.env.development?
             'http://0.0.0.0:3000'
           else
             'https://mcbattle-ch.jp'
           end
  "#{domain}#{path}"
end

erb:app/views/layouts/application.html.erb


<head>
  <!-- ogp -->
  <meta name="twitter:card" content="summary_large_image" />
  <meta name="twitter:site" content="@McBattleChannel" />
  <meta property="og:title" content="<%= full_title(yield(:title)) %>" />
  <meta property="og:url" content="<%= request.url %>" />
  <meta property="og:description"
    content="<%= content_for?(:description) ? yield(:description) : 'Ceci est un site complet pour les batailles MC.' %>" />
  <meta property="og:image"
    content="<%= content_for?(:image_url) ? yield(:image_url) : full_url('/assets/other/ogp_default.png') %>" />

erb:app/views/hoge/fuga.html.erb


<%= content_for(:title, "Titre de cette page individuelle!") %>
<%= content_for(:description, "Description de cette page individuelle!") %>
<%= content_for(:image_url, full_url("assets/mc/hoge.img")) %>

S'il n'est pas affiché dans l'environnement de production

Si vous le voyez dans l'environnement de test mais pas dans l'environnement de production, c'est probablement dû au cache OGP. Si vous utilisez l '"Outil pour vérifier l'affichage de l'OGP" ci-dessous, le cache sera effacé en même temps que la vérification de l'affichage. https://cards-dev.twitter.com/validator

Recommended Posts

[Rails] Configurer Twitter OGP
[rails] Définir la validation
Rails6 OmniAuth Twitter Authentification Branche conditionnelle des e-mails