自動ツイートシステムの作成

Twitter API の有料化に伴い、以前自分で構築した自動ツイートシステムが使えなくなっていた。

そこで Twitter API を使わない方法で自動ツイートシステムを作ってみた。

なお、あまりエレガントな方法ではないので具体的な方法には触れず概略のみの紹介とする。またより良い方法が見つかるかもしれないので。

Twitter API を使わずにツイートするにはブラウザを使うしかない。自動ツイートシステムを作りたい Twitter アカウントは複数あるので、VMware ESXi 上に GUI の Lubuntu を立てた。Twitter はアカウントの切り替えができるが、間違って別のアカウントに投稿すると困るので、アカウント数分の Lubuntu を立てた。Lubuntu では Vivaldi という軽量ブラウザを使うことにした(それでも 2GB のメモリーをいっぱいっぱい使ってしまう)。

僕は自動投稿の文章は FileMaker で管理している。過去の note やブログで書いた記事を紹介する文章であり、膨大な数なので、FileMaker のようなデータベースアプリケーションを使わないと管理できないからだ。自動化のため FileMaker Server でそのデータベースを動かしている。

FileMaker のテキストを Lubuntu のブラウザに渡すには、python-fmrest を使った。これならコマンドで FileMaker Server のレコードを読める。xsel コマンドを使うとその値をクリップボードにコピーできるので、xdotool を使って Twitter の投稿ボックスにペーストすればいい。

投稿タイミングは FileMaker Server のスケジュールによって管理する。投稿文を選ぶと同時にスクリプトで n8n に webhook を送信。あとは n8n で Lubuntu に ssh で接続。その上で python-fmrest を動かしたりといった投稿の一連の操作をすればいい。

参考:
Claris — build custom apps
https://www.claris.com/

Lubuntu – The official Lubuntu home
https://lubuntu.me/

GitHub - davidhamann/python-fmrest: Python wrapper around the FileMaker Data API
https://github.com/davidhamann/python-fmrest

GitHub - kfish/xsel: A command-line program for getting and setting the contents of the X selection
https://github.com/kfish/xsel

GitHub - jordansissel/xdotool: fake keyboard/mouse input, window management, and more
https://github.com/jordansissel/xdotool


この記事が気に入ったらサポートをしてみませんか?