LaravelのRSSフィールドへようこその話

今回は…以下のコマンドからお送りしております

composer create-project laravel/laravel sample_larabel_rss

さて、早速ですが、今回のあらましってヤツを紹介します。
某会社、某プロジェクトでこんなことを言われました。
「TOPページにWORDPRESSの最新記事一覧を出すからよろしく」
ちなみに、別サーバにて….

おぉぉぉぉ〜〜〜〜ぃ!同じサーバならWordpressのライブラリとか使えるとか思ったのに、別サーバかよ!
9%ほど諦めていました。ま、正直ブログの最新一覧っつーたらRSSでしょw

早速、WORDPRESSのRSS情報を調べてやりましたよ!

https://codex.wordpress.org/WordPress_Feeds

はい、簡単でしょ
こんな感じで指定します。

http://example.com/?feed=rss
http://example.com/?feed=rss2
http://example.com/?feed=rdf
http://example.com/?feed=atom

うちのサイトでいうところの

http://35.78.51.61/?feed=rss2

ですね。

するってーと何かい、RSSフィールドを読み取ってやれば、WORDPRESSブログの新着記事一覧が取得可能ってやつかい。

今回は、composerのcomposer.jsonファイルを直書きしてやります。
requireに以下の内容を追加してやります

        "awjudd/feed-reader": "^1.3"

そして、パッケージのアップデート

composer update

次に、laravelのconfig/app.phpに登録します。
providersとaliasesに登録します。
‘providers’ => [
の末尾に

        Awjudd\FeedReader\FeedReaderServiceProvider::class,
'aliases' => [
の末尾に
        'FeedReader' => Awjudd\FeedReader\Facade::class,

を登録します。

とりあえずのおまじないとして、composerをupdateします。

次にソースを書きますが… サンプルページなのでシンプルに書きますと以下です

<html>
<body>
<ul class="wnTopic__list">
    @foreach(FeedReader::read('http://35.78.51.61/?feed=rss2')->get_items() as $item)
    <li class="wnTopic__item">
        <span class="wnTopic__date">[{{$item->get_date('Y/m/d')}}]</span>
        <a href="{{ $item->get_permalink() }}" target="_parent" class="wnTopic__title">{{ $item->get_title() }}</a>
    </li>
@endforeach
</ul>
</body>
</html>

内容の解説は見ればわかるでしょう!

早速アクセス!

….

PHP Notice: http://35.78.51.61/?feed=rss2 is invalid XML, likely due to invalid characters. XML error: Invalid character at line 276, column 27 in .vendor/simplepie/simplepie/library/SimplePie.php on line 1507

はにゃ?XMLじゃないとか言われますが!
早速調査!

うむ、結局うちのRSSが変というか… WordPress使っているのに変だ
独立行政法人情報処理推進機構(IPA)新着情報RSSだったら普通に通ったw

https://www.ipa.go.jp/about/newsonly-rss.rdf

うん…
腑に落ちない…

https://github.com/wataru775/laravel_sample_rss

ソースはここです。

ちょっとだけ調査…

で、だね、問題となるのが WORDPRESSのRSSソースかと思ったわけですXML errorだし頭に<?XML タグが付いているので…
公式な部分を色々探っていると

https://wordpress.org/news/feed/

にソースをアクセスしてやると…
出ます…

WORDPRESSの不具合だ!と思いましたが….なんだろうな

なるほど、内容を短くすると表示される。
なんとなく、フィールドの内容が悪さしている気がする。
特に、content:encoded部分!ってか一覧ほしいからいらない!

とりあえず、うちの発行しているRSSの不具合を探してみる

http://validator.w3.org/feed/

神様!キタァ!!!!

日本語部分がおかしいらしい orz

wordpressの設定かなと思って探ったがない。

今日は遅いのでこれで終了かな。