movable-type MovableType投稿時のTwitter連携
作成日: 2023年10月19日

Twitterの施策によりbot投稿の規制がきつくなり、Wordpressでもそうだが投稿時のTwitterへの自動投稿が難しくなった。
一日一投稿程度、商用サイトなどでそんな使い方をしている分にはAPIの無料版でどうにかなる。
まぁ一日一投稿ならOGPをきっちり書いておくこと前提だが連携自動投稿でなくてタイトルとURLコピペでも大した手間ではない。
既に7月時点で利用していたが備忘として残し忘れたので今更書くが、bot投稿だとあからさまに露出が減る(このbotを設定している間は手入力投稿してたがその時のインプ数といいねの数の大きな違いにびっくりだ)ので、そこ気にする方は普通に手入力でツイートした方がベターです。

使用するライブラリ
twiferなるライブラリを使います。検索するとgithubのページがでるのでそこを読む。
ダウンロードできるが、SSHでインストールしたかな?3か月以上前で忘れた。
APIは2になるのでTwitterのDevツールでその様に設定し、4つのトークンやキーを取得しておく。

SSHでインストールとか滅多やらないからよく覚えていないけど
まずやったのはSSHでサーバーのルートにcomposerをインストール(サーバーによりルートってもね、今X使ってるけどXならドメイン毎にディレクトリがあるがその上)。(他のと間違えたわ)
次にクーロンで叩くphpファイルから近い(同じ階層/フォルダ内がわかりやすい)にSSHでtwiferをインストール。
成功するとtwiferのフォルダが出来る。
ここまでの作業が面倒くさい。Web屋なんてSSHはそんなに使わないからね、はっきり言って理屈が解ってこの一連の作業してるわけじゃない。

cronで叩くphpファイルの作成

<?php
require 'twifer/vendor/autoload.php';
use Twifer\API;
?>
<?php
$conn = new API('CONSUMER_KEY', 'CONSUMER_SECRET', 'OAUTH_TOKEN', 'OAUTH_TOKEN_SECRET');
$postfields = "{\"text\":\"投稿内容リンクはhttpsからのURLだけ\"}";
$res = $conn->request('POST', '/2/tweets', $postfields);
print_r($res);
?>

githubにzipなどダウンロードできるが、それそのままでは”twifer/vendor/autoload.php”はない。
SSHでcomposer使ってインストールしないとダメ。

サーバー移転で使いまわしが利くかどうか試すことはあるかもしれないが、それはそれで追記する。
SSHもサーバーによって鍵が必要だったり要らなかったり色々だしね。

そのサイトではイーロンだったか現CEOだったかの発言から同じようなインターフェイスのmastodonも始めた。
Twitterが広まりすぎて今更の感は多くの人が持ってるだろうけど、呟きでなくてエックスに変わって価値を落としているし、商利用なんかに不便だからSNSへの自動投稿はいくつか準備しておいたら良いかも。
mastodonへの自動投稿コードは別掲で。