p-hone p-hone.info

Xのいいね欄公開ページを作った

X(旧Twitter)で「いいね欄」が本人以外に非公開になった。

様々な意見がありそうだが、私はこの変更に否定的だ。 いいね欄はどういうものが好きかを示す自己紹介の一部だと考えているから。 本当に見られたくないならブックマークでいいというのもある。せめて公開・非公開を選択できればよかったのに……と残念でならない。

そこで、他の手段でなんとかならないかと探り私の2024/06/13からのXのいいね欄を公開したWebページを作った(※鍵アカウントの投稿は公開していない)。

https://fav.p-hone.info/

仕組みを軽く説明すると、IFTTTという「何かイベントが起きたら、他の何かに通知する」サービスを利用している。IFTTTの有料会員限定の機能1だがNew liked tweet by youトリガーを使うと、「私が投稿にいいねしたとき」に投稿URL、投稿者のID、本文などを様々な場所へ通知できる。

次に、JSONを受け取ってデータベースに溜め込んでいく小さなプログラムをCloudflare Workersで実装し、 先程のトリガーから、Make a web requestに接続する。

Make web requestの設定は次のようにする。 いいねした投稿の内容やURLがJSON形式でWorkersに通知される流れだ。

追加要素として、投稿の埋め込み用の非公開APIを利用するとメディア(画像や動画)の情報も取れたりする2。 その結果を好きなデータベースに挿入すればよい。Cloudflareの場合D1が安くておすすめ3。 自分が所有するデータベースに入ってしまえばあとは自由にできる。https://fav.p-hone.info のようにインターネットで公開してもいいし、自分用のバックアップとして保管してもいい。

試しに今日いくつかいいねをしてみたところ、だいたい5分以内にはIFTTTが動いて https://fav.p-hone.info に反映された。最大5分程度の遅延はあるらしい。

本当はみんなでXというロゴのダサいSNSをやめてBlueskyやMastodon, Misskey等の自由度の高いSNSに移動してほしいが、ここまで普及してしまった以上暫くは無理してでも付き合っていくことになりそうだ……。

脚注

  1. 有料プラン IFTTT Proは月額約4ドル。XのAPI(月額100ドル)に比べたらはるかに安い。

  2. https://github.com/vercel/react-tweet/issues/76#issuecomment-1524087933 等に情報あり。非公開APIなのでいつか使えなくなるかも。

  3. https://fav.p-hone.info もCloudflare Workersで作っている。