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
うちのサイトでいうところの
ですね。
するってーと何かい、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の不具合を探してみる
神様!キタァ!!!!
日本語部分がおかしいらしい orz
wordpressの設定かなと思って探ったがない。
今日は遅いのでこれで終了かな。