2

ruby on rails で作成したブログがあり、記事はほとんどありません。記事はデータベースに保存されます。コンテンツを書くために Tinymce gem を使用します。RSS は Feedly で作業していたので、FB のインスタント記事で記事を表示したいと思います。FB ページのドキュメントに従いました: https://developers.facebook.com/docs/instant-articles/publishing/setup-rss-feed

この 2 つのリンクにある情報を使用して機能させようとしました: https://www.codingfish.com/blog/129-how-to-create-rss-feed-rails-4-3-steps

http://apidock.com/rails/Builder/XmlMarkup

時々、FB は記事をロードしたが、スタイルが見つからない、コンテンツが見つからない、記事が見つからない、「問題が発生しました...」というエラーが表示され、しばらく待たなければならないなどのことがありました。私は何をすべきかわかりません。これは feed.rss.builder の最後のバージョンであり、FB には何も表示されません (まだインスタント記事を作成していません)。

#encoding: UTF-8
xml.instruct! :xml, :version => "1.0"
xml.rss :version => "2.0" do
  xml.channel do
    xml.title "Blog"
    xml.author "Blog"
    xml.description "Web Development"
    xml.link "http://myblog.dev.eu/"
    xml.language "en"
    for article in @blog_articles
      xml.item do
        if article.title
          xml.title article.title
        else
          xml.title ""
        end
        xml.link("href" => "http://myblog.dev.eu/blog_posts/"+article.slug.to_s)
        xml.guid article.id
        xml.pubDate article.created_at.to_s(:rfc822)
        xml.author article.author_name
        xml.description article.short_description
        xml.html do
          xml.head do                   
            xml.link("rel" => "stylesheet", "title" => "default", "href" => "#")
            xml.title(article.title)
            xml.meta("property" => "fb:article_style", "content" => "bam")
            xml.link("rel" => "canonical", "href" => "http://myblog.dev.eu/blog_posts/"+article.slug.to_s)
          end 
          xml.body do
            xml.header do
              xml.image "http://myblog.dev.eu/" + article.picture_url.to_s
            end
            xml.article(article.content)
          end
        end
      end
    end
  end
end

このコードを修正するのを手伝ってください! レビューのために提出し、feed.rss.builder のコードには二度と触れないようにしたいと思います。ありがとうございました!

編集:

コードのいくつかを変更したところ、次のようになりました。

#encoding: UTF-8
xml.instruct! :xml, :version => "1.0"
xml.rss :version => "2.0", "xmlns:content"=>"http://purl.org/rss/1.0/modules/content/" do
xml.channel do
  xml.title "MyBlog"
  xml.link "http://myblog/"
  xml.description "Web Development, Digital Marketing, Education"
  xml.language "en-us"
  xml.lastBuildDate Time.new.strftime("%Y-%-m-%dT%H:%M").to_s

  for article in @blog_articles
    xml.item do
      xml.title article.title
      xml.link "http://myblog.eu/"+article.slug.to_s
      xml.guid article.id
      xml.pubDate article.created_at.strftime("%Y-%-m-%dT%H:%M").to_s
      xml.author article.author_name
      xml.description article.short_description
        xml.content:encoded do
          xml.tag!("!doctype html") 
          xml.html("lang"=>"en", "prefix"=>"op:http://media.facebook.com/op#") do
            xml.head do
              xml.meta("charset"=>"utf-8")   
              xml.link("rel" => "stylesheet", "title" => "default", "href" => "#")
              xml.title(article.title)
              xml.link("rel" => "canonical", "href" => "http://myblog.eu/blog_posts/"+article.slug.to_s)
              xml.meta("property" => "fb:article_style", "content" => "bam")
            end 
            xml.body do
              xml.article do 
                xml.header do
                  xml.figure("data-mode" => "aspect-fit") do
                    xml.img("src"=>"http://myblog.eu/blog_posts/#{article.picture.url}")
                  end
                  xml.h1 article.title
                  xml.h2 article.short_description 
                  xml.h3("Introduction" , "class"=>"op-kicker")
                  xml.address "myadr"
                  xml.time(article.created_at.strftime("%B %dth %Y, %l:%M %p").to_s, "class" => "op-published", "dateTime" => article.created_at.strftime("%Y-%-m-%dT%H:%M").to_s) 
                  xml.time(article.created_at.strftime("%B %dth %Y, %l:%M %p").to_s, "class" => "op-modified", "dateTime" => article.updated_at.strftime("%Y-%-m-%dT%H:%M").to_s)
                end

                xml.p article.content
                xml.figure("data-feedback"=>"fb:likes, fb:comments") do
                  xml.img("src"=>"http://myblog.eu/blog_posts/#{article.picture.url}")      
                    xml.figcaption do
                      xml.h1 "descript"
                      xml.cite "text"
                    end                 
                end
                xml.footer do 
                  xml.small "Lab"
                end
              end
            end
          end
        end
      end
    end
  end
end 

FB は記事を認識するようになりましたが、「ロゴがありません」というエラーが表示されます。FB スタイルにロゴを追加しました。オンラインで見つけることができます。

xml.meta("property" => "fb:article_style", "content" => "bam")

FB エディタで 1 つの記事を開くと、コンテンツ全体がヘッダー タグの前の記事タグに追加されます。次のようになります。

<html>
<body><article><p>!doctype html/&gt;

...Content...


      </p>
<header><time class="op-modified" datetime="2016-01-19T10:38:00-08:00">2016-01-19T10:38:00-08:00</time><time datetime="2016-01-19T10:38:00-08:00" class="op-published"></time><h1>Title</h1></header><footer></footer></article></body>
<head><link rel="canonical" href="http:///myblog.eu/article.title"></head>
</html>

そして、それはレビューの準備ができていません。何か案は?

4

1 に答える 1