mockroNotes -モックロノート-

ガジェットやイラスト、ワークアウトに関心を示すブログです

Reeder (v4.2以降)からFreshRSS-Fever APIにアクセスする

f:id:mockro:20210616105310p:plain

RSSリーダーアプリのReederがFeedlyの自動同期機能を無効化しました。手動での同期は可能ですが、2013年のGoogle Readerディスコン(Discontinue)騒動を連想してしまいました。 ということで、早めに自前の環境でRSSフィード取得環境を構築しておこうというお話です。

FreshRSSはPC・スマホのブラウザから閲覧できたり、MacやiPhoneのReeder(v4.2以降)との同期機能がサポートされているので重宝します。 Feedlyを利用する前はfeverを利用していました。feverは2016年に販売とサポートが停止されてしまったのでFeedlyに乗り換えたという経緯があります。ですので、FreshRSSに標準搭載されているFreshRSS-Fever APIを利用してReederと同期することにします。

RSSフィードをOPML形式でエクスポート

Feedlyで購読しているRSSフィードをOPML形式でエクスポートしておきます。Feedlyにブラウザからアクセスしてログインします。左のナビゲーション「FEEDS」の右横にあるアイコン(①)をクリックして表示された画面のExport OPMLボタン(②)からOPMLファイルをエクスポート・ダウンロードします。 f:id:mockro:20210616105334p:plain


FreshRSSを設置する

FreshRSSをウェブサーバーに設置します。FreshRSS安定版のリリースから素直に安定版をダウンロードしてきます。2019年12月26日現在ではFreshRSS-1.15.3.zipが安定版のようです。解凍してできたFreshRSS-1.15.3フォルダを任意のフォルダ名にしてウェブサーバーにアップロードしましょう。


FreshRSSをの初期設定

ウェブサーバーの設置した FreshRSSパスにアクセスすると初期設定画面が表示されます。Languageに日本語はないのでEnglishで進めます。 ※ FreshRSSの設定はPCからアクセスしてください。スマートフォン、タブレットからでは設定用の各種リンクが表示されません。 f:id:mockro:20210616105402p:plain

Step2でデータベースの種類を選べます。

SQLiteでも動作するFreshRSS。つまりデータベースサーバーが必須ではないので、ミニマム構成での運用も可能です。 f:id:mockro:20210616105415p:plain

Step3でユーザーを作成します。

デフォルトのユーザー名、パスワードを設定したら初期設定は完了です。Step4で「Complete installation」ボタンを押してFreshRSSにログインしましょう。 f:id:mockro:20210616105432p:plain


OPMLをインポート

FreshRSSにログインしたら画面左上の「Subscriptions management」ボタン(①)を押します。 f:id:mockro:20210616105449p:plain

進んだ画面のナビゲーションから「Import / export」(②)を押して進み、先ほどFeedlyで作成したOPMLを選択(③)してインポート(④)しましょう。 f:id:mockro:20210616105500p:plain


FreshRSS-Fever APIを利用する

PCからアクセスしたFreshRSS画面の右上にある歯車アイコンをクリックして設定画面に入ります。 f:id:mockro:20210616105511p:plain

Enable the API in FreshRSSページに書いてあるとおり、設定画面のAuthenticationセクションで「Allow API access (required for mobile apps)」にチェックを入れてAPIを有効にします。Submitを押して設定を確定させてください。 f:id:mockro:20210616105523p:plain

続いて設定画面のProfileセクションの「API password(e.g., for mobile apps)」でAPIパスワードを設定します。Submitを押して設定を確定させてください。 f:id:mockro:20210616105545p:plain

API password フォームの下にあるリンクから進んでAPIの状態を確認します。「PASS」と表示されていればFreshRSS-Fever APIの設定は完了です。 この画面でエラーが出ているならファイル・ディレクトリのパーミッションの問題を疑います。ご利用になっているウェブサーバーに合わせて設置したファイル群のパーミッションを設定し直してください。


ReederからFreshRSS-Fever APIにアクセスする

いよいよRSSリーダーアプリからのアクセスです。ReederのAdd AccountからFreshRSS-Fever APIの情報を登録します。 SELF-HOSTEDカテゴリのFeverを選んで設定を進めます。 Serverには先ほど表示した「FreshRSS API endpoints」画面のFever compatible API項目にあるYour API addressを入力します。 EmailにはFreshRSS初期設定時に作成したデフォルトのユーザーネームを入力します。 Passwordは設定画面のProfileセクションで設定したパスワードを入力します。 Sign inで進めばフィードの同期が始まるはずです。


cronでフィードの自動更新設定

FreshRSSでのフィード更新は「actualize」ボタンをクリックしなければいけません。RSSリーダーアプリからではFreshRSSとの同期は取れますが、FreshRSSによるフィードの更新が実行されません。 cronで定期的にFreshRSSによるフィードの更新を実行しましょう。 SSHでウェブサーバーに接続します。

$ crontab -e

上記のコマンドでcron編集画面に入ったら定期的に「YOUR_PATH/app/actualize_script.php」を実行するように設定します。ここでは30分毎にactualize_script.php を実行するようにしています。

*/30 * * * * php _YOUR_PATH_/app/actualize_script.php > /tmp/FreshRSS.log 2>&1

保存して編集画面を抜けたらcrontab -lで設定を確認します。

$ crontab -l
*/15 * * * * php _YOUR_PATH_/app/actualize_script.php > /tmp/FreshRSS.log 2>&1

以上で前工程完了です。お疲れ様でした。