「RSSを取得し加工・出力を行うアプリケーション」の版間の差分
Ippei Suzuki (トーク | 投稿記録) 編集の要約なし |
Ippei Suzuki (トーク | 投稿記録) 細 Ippei Suzuki がページ「RSS関連アプリケーション」を「RSSを取得し加工・出力を行うアプリケーション」に移動しました |
||
| (同じ利用者による、間の9版が非表示) | |||
| 21行目: | 21行目: | ||
=== 実現のために追加で必要な機能 === | === 実現のために追加で必要な機能 === | ||
Flickrは既に写真を追加出来なくなっているので、スライドショーの対象から外す。代わりにTumblrを利用することになるのだけど、スライドショーにせよサムネイル一覧にせよ、画像を特定出来る方が良い。media要素(RSS2.0では <enclosure> というらしい)に入っていれば最高なんだけど、普通に配信されているTumblrのRSSフィードには含まれていない。ので、Laravelで加工する際に補うか、RSSフィードを読み込む代わりにTumblr APIで情報を取得してJSONを組み立てる必要がある。 | |||
どちらにしてもRSSフィードを読み込む機能は作るわけだから、 | どちらにしてもRSSフィードを読み込む機能は作るわけだから、 | ||
| 32行目: | 33行目: | ||
という順番になる。つまりRSSフィードを作る機能、かつて「DIY RSS」と呼んでいた機能が必要になる。マジか。まあTumblr API関連はあとでumblsにもコピーして使うので、実装しておいて損は無いが。 | という順番になる。つまりRSSフィードを作る機能、かつて「DIY RSS」と呼んでいた機能が必要になる。マジか。まあTumblr API関連はあとでumblsにもコピーして使うので、実装しておいて損は無いが。 | ||
→ と思ったけど、これならもう最初からumblsの実装をしてしまった方が良くない? | |||
=== まとめ === | |||
* はてなブックマークのRSSフィードを取得して一覧表示する | |||
* FlickrまたはTumblrのRSSフィードを取得してスライドショー表示する | |||
** Tumblr APIを叩いてenclosure込みのフィードを書き出す | |||
* TumblrのRSSフィードを取得してサムネイル一覧として表示する | |||
** Tumblr APIを叩いてenclosure込みのフィードを書き出す | |||
* 1日1ニコのRSSフィードを取得して表示する | |||
** 未定。リスト表示だけなら特になし | |||
== 実装 == | |||
=== LaravelでRSSフィードを取得してJSONで出力(API) === | |||
Awjudd\FeedReaderを通してSimplePieを使うことでRSSデータをバージョンを意識せずに取得する。 | |||
さらにその中から必要な情報だけを抜き出して配列化し、JSONで返す。 | |||
return array( | |||
'title' => trim($feed->get_title()) | |||
,'permalink' => trim($feed->get_permalink()) | |||
,'description' => trim($feed->get_description()) | |||
,'items' => array( | |||
'id' => trim($item->get_id()) | |||
,'title' => trim($item->get_title()) | |||
,'site_title' => trim($item->get_feed()->get_title()) | |||
,'permalink' => trim($item->get_permalink()) | |||
,'date' => trim($item->get_date('Y-m-d H:i:s')) | |||
,'content' => trim($item->get_content(true)) | |||
,'description' => trim($item->get_description(true)) | |||
,'enclosure' => $item->get_enclosure() | |||
,'categories' => $categories | |||
) | |||
); | |||
=== Vue.jsでJSONを読み込んで任意の形で出力 === | |||
想定される出力形式は以下の通り | |||
* シンプルなリスト形式 | |||
* 横並びのサムネイル形式 | |||
* スライドショー形式(BootstrapVueのカルーセルを使うと便利そう) | |||
=== LaravelでTumblr APIを叩いて情報を取得する === | |||
==== インストール ==== | |||
$ composer require tumblr/tumblr | |||
$ composer update | |||