LaravelでRSSフィードを配信する 【#np2020】

LaravelLogo.pngのサムネイル画像

ニコニコ動画を紹介するブログ「1日1ニコ」の関連機能の中に、「タグ検索RSS」というものがありました。ニコニコ動画オフィシャルのタグ検索RSSに動画投稿者と再生数を追加するというシンプルなものなのですが、動画投稿者を確認するってRSSリーダーでは割と大事なので、個人的には重宝していました(多分僕しか使ってないと思うけど)。

サイトのWordpressへの引っ越しに伴ってディレクトリ構成が変わってしまい、今現在はブログ記事に付けられたタグのRSSフィードになってしまっていてきちんと動いていないのですが、それをLaravelで実装し直しましょう、というお話です。


出来上がったもの。

https://rss.1ni.co/tag/MikuMikuDance





使ったものは次の2つ。



上がRSSを取得するためのもの、下がRSSを配信するためのもの。


使い方はそれぞれのサイトを見て頂ければ大体わかりますが以下に簡単にサンプルを。



Awjudd/FeedReader


これだけでOK。情報を取得するメソッドはsimplepieのものを使います。こんな感じ。




詳しくはsimplepieのwikiを参照のこと。

SimplePie Documentation: SimplePie



Laravelium/Feed


必要な情報を追加した上で $feed->render(‘rss’) するだけなのですごい楽です。
$feed->render(‘atom’) ならATOMでの配信も可能。


どこで使うかによって使い方は変わって、多分Modelを用意して諸々設定することでほとんどコードを書かずにRSS配信することも出来ると思うんですが、そこまでLaravelに精通していないので、今回は全部コントローラにコードを書きました。スマートじゃねえなー。自分の理解が深まるのに合わせて順次置き換えて行くつもりです。RSS周りは今後開発していくことになると思うので。


既にLaravel熟練の方は、オフィシャルのサンプルを読んで実装してください。

Home · Wiki · Laravelium / Feed · GitLab



まとめ

以前までは、テンプレートを自分で用意したり、入力する際にも構造を意識したりとかなり面倒だったんですが、もう何もする必要が無くなって拍子抜けです。環境の設定の方が開発より時間掛かったくらい。便利だなあ。