FileMaker に RSS フィードを取り込む
FileMaker で RSS フィードの情報を取り込んでみることにした。これが実現すれば RSS リーダーのようなものが作れたり、データをあれこれ加工して面白いものが作れそうだ。
FileMaker に RSS フィードを直接取り込むことはできない。そこで rss2json というサービスを利用し、RSS フィードを JSON データに変換する。JSON データなら FileMaker で扱えるからだ。
RSS to JSON Converter online - rss2json.com
https://rss2json.com/
Available plans - rss2json.com
https://rss2json.com/plans
rss2json は API を使って最新の 10 件のみを JSON に変換するなら会員登録をせず無料で利用できる。ただし無料会員に登録した場合同様、RSS フィードのアップデートは1時間間隔となる。だから1時間に 10 投稿以上があれば取りこぼすことになる。それに実際はアップデートは1時間以上かかっている気がする。登録したほうがちゃんと1時間ごとのアップデートになるのかもしれない。
以降、例として本 note の RSS フィードを取り扱うものとする。本 note の RSS フィードは以下の URL となっている。
では試しに Mac の Terminal で以下のコマンドを実行してみよう。RSS フィードが JSON に変換できたはずだ。
$ curl -X POST https://api.rss2json.com/v1/api.json?rss_url=https://note.com/hitoshiarakawa/rss
jq コマンドを使えばもっと見やすくなる。
$ curl -X POST https://api.rss2json.com/v1/api.json?rss_url=https://note.com/hitoshiarakawa/rss | jq
会員登録して API key を使う場合は以下のようになる。
$ curl -X POST -d api_key={API KEY} -d rss_url=https://note.com/hitoshiarakawa/rss https://api.rss2json.com/v1/api.json | jq
jq コマンドについては以下を参考にしていただきたい。
さて、変換した JSON データのうち僕は title、pubDate、link、content のデータがほしい。そういうわけで、FileMaker で title、pubDate、link、content というフィールドを作成する。
そして以下のようなスクリプトを作成すれば、最新 10 件のフィードを FileMaker に取り込める。
pubDate で + 32400 としているのは、note の RSS フィードでは投稿時刻が UTC+0 となってしまうため、9時間(=96060=32400 秒)進める必要があるからだ。
定期的にスクリプトを動かせば RSS フィードのデータを取得できる。
重複データの削除は別途、重複削除用スクリプトを動かせばいい。すなわち、今回の場合 link フィールド(=note の個別記事の URL)に対して自己リレーションをを作成し、テーブルオカレンス名を duplicate2_self とした。link 重複チェック用のフィールド duluplicate という計算フィールドを作成。Case ( Count ( duplicate2_self::link ) > 1 ; 1 ; 0 ) という計算式を設定する。そのうえで、以下のスクリプトを実行すればいい。
参考:
curlコマンドでPOSTする, 様々な形式別メモ |
https://weblabo.oscasierra.net/curl-post/
RSSをJSONに変換してくれるWebサービス「rss2json」の紹介 - Qiita
https://qiita.com/920oj/items/9203c8ade378ec3b8eb7
『rss to json』 というサービスを使って RSS フィードを JSON として取得して表示してみよう
https://zenn.dev/rabee/articles/js-fetch-rss-feed-as-json
ID自己リレーションカウントによる重複削除について:Nature and FileMaker:SSブログ
https://kinda.blog.ss-blog.jp/2011-05-17-1
reactjs - rss2json API: feed is not updated in real time - Stack Overflow
https://stackoverflow.com/questions/75814956/rss2json-api-feed-is-not-updated-in-real-time