Steamer Lane Studio技術備忘録ム―バブルタイプ

MovableTypeのMastodonへの連携自動投稿

movable-type MovableTypeのMastodonへの連携自動投稿
作成日: 2023年10月19日

別掲でTwitterへの自動投稿の方法を(半分忘れかけで書いたのでアレだが)書いたが、SNSとしてはTwitterに近いインターフェイスを持つmastodon、これをTwitterに何かあった際の代替えとして用意、自動投稿を模索した。

準備は管理画面の「開発」または「アプリ」画面でアプリを作る。
作るってもアプリ名が必須なのと、アクセス権の中のwriteにチェックを入れて書き込みってことにする。この欄変わることがあるけど書き込みをするってことにしておけばOK。

<?php
// instance & token
$apiUrl = 'https://mastodon.social/api/v1/statuses';//mastodonのURLは自分が自分が登録したものに!
$accessToken = '開発で作ったアプリのアクセストークン';
$statusText = '投稿内容/OGPがしっかりしてればURLだけでsumarry large imageと同じものが出来る';
$data = array(
'status' => $statusText,
);
$ch = curl_init($apiUrl);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Authorization: Bearer ' . $accessToken,
));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
var_dump($response);
?>

これで生成されるファイルをcronで叩けばOK。
但し連投防止機能ありとは聞いたが普通に連投されるので、そうならない処理(例えば15分おきのcronでこのコードがアクティブになる時間を15分にするphpコードで囲ってる)を施した方がベター。