海辺にて

備忘録

No.25

マイクロブログとしてはすっかりFediverseをメインで使うようになったものの、フォロワーの大半はXにいるのでしばらくはXにも投稿はしている。AkkomaとXに同時投稿するやり方にたどり着くのに時間はかかったが、やってみると思いのほか手軽にできた。ただし対応状況は「PCからの投稿:〇、iOSからの投稿:△、Androidからの投稿:×」で、1番よく使っているAndroidからはいまだに良い方法が思いつかないのだが…。以下、やり方のメモ。

PCからAkkoma(Mastodon)とXに投稿する
Misskey用のスクリプトがあったので見てみたらMastodon APIにも適用できそうな感じだったのでやってみた。
TwitterとMisskey、同時投稿したくない?
やってることは簡単で、Twitter本来のツイートボタンにonclickリスナーをつけ、押されたらMisskeyに対してHTTPリクエストを送ってるだけです

ただし以下のような注意点もあるため、使用は完全自己責任。
https://github.com/ZOI-dayo/Twiskey
Misskeyのトークンを文字列として保存しているため、流出に気をつけてください。

手順通りにTempermonkeyを入れ、文章投稿が出来ればいいやと思って修正したのは以下のみ。

console.log(misskey_api_key)
GM_xmlhttpRequest({
method: "POST",
url: `https://${misskey_server}/api/notes/create`,
headers: {
"Content-Type": "application/json"
},
data: JSON.stringify({
"i": misskey_api_key,
"text": text,
"fileIds": media_ids.length > 0 ? media_ids : undefined,
}),
onload: function(response) {
console.log(response.responseText);
}
});


console.log(misskey_api_key)
GM_xmlhttpRequest({
method: "POST",
url: `https://${misskey_server}/api/v1/statuses`,
headers: {
"Authorization": `Bearer ${misskey_api_key}`,
"Content-Type": "application/json"
},
data: JSON.stringify({
"i": misskey_api_key,
"status": text,
"visibility": `private`, //公開範囲をフォロワー限定にしたいため追加。デフォルトだとグローバル公開になる
"fileIds": media_ids.length > 0 ? media_ids : undefined,
}),
onload: function(response) {
console.log(response.responseText);
}
});


${misskey_api_key}や${misskey_server}は変数なのでそのまま残していても支障はない。これでXの投稿画面にMisskeyボタン(画像ソースを修正していないため)が表示されるようになり、Xへの投稿と同時にMastodonにも投稿されるようになった。

iOSからMastodonとXに投稿する
iOS13(!)から搭載されたショートカット機能だが全然使っていなかった。名前で誤解していたがRPAに近い機能のよう。
ショートカット ユーザガイド

こちらもMisskey用にショートカットを作成・配布している方がいてありがたく使わせてもらった。投稿サーバーや公開範囲は決まっているので、直接入力してなるべく選択肢は消去していく。
作成したショートカットとか

基本的な修正個所は上記と一緒だが、認証が上手くいかない部分があったのでMastodonAPI用の修正はこちらの記事を参考にした。
Mastodon API を使って iOS ショートカットからトゥートできるようにしてみる
MastodonAPIの仕様は公式ドキュメントを確認。
statuses API methods

ショートカットを呼び出すと「テキスト入力→Mastodonに投稿→テキストが入力されたXアプリの投稿フォームに飛ぶ」という流れ。Twiskeyのように完全な同時投稿ではないが、使ってみるとアプリを立ち上げていないときでも投稿画面を呼び出せるのでかなり便利。

X騒動のおかげで変に技術への理解は上がった気はするが、早くThreadsがActivityPub対応になり公式アカウントも人(ファン)も移動してくれれば、と思うばかりである。