去年の 11 月から続く一連の騒動を受けて、id:mizdra のフォロワーの中でも Twitter から Fediverse に移行してきている人が増えてきた。僕自身は移行するつもりはないけれど、移行したフォロワーが僕のツイートを Fediverse から見れるように、ツイートを Mastodon へと転送するようにしてみた。せっかくなので、そのやり方について書き残しておく。
作戦
IFTTT という「〇〇したらXXする」みたいなピタゴラスイッチをボタンポチポチで作れるサービスがある。これを使い、当該 Twitter アカウントでツイートがされたら、それを契機に Mastodon にトゥートを投稿する、というピタゴラスイッチを組むことにする *1。
転送する上での注意点 (2023/4/10 追記)
(トラバで情報を頂いたので追記)
今回紹介する方法では、普段は自動投稿のみをする BOT のようなものを作ることになる。しかし Mastodon インスタンスによっては、BOT の運用方法を規制するルールがあるそうだ。例えば、日本国内で著名な Mastodon インスタンスである mstdn.jp では、BOT からの Public なトゥートは禁止されている。mstdn.jp で今回紹介する方法を利用するなら、トゥートを Unlisted (ローカルタイムラインや連合タイムラインには表示せず、ホームタイムラインにのみ表示) にする必要がある。
インスタンスによってルールも異なるので、本記事で紹介している設定に加えて追加でいくつか設定が必要になるかもしれない。あるいは、そもそも自動転送やマルチポストといったものが禁止されている可能性もある。転送設定をする前にインスタンスのルールを確認するように。
ステップ1. Mastodon でアクセストークンを発行する
IFTTT から Mastodon にトゥートを投稿するには、Mastodon の「アクセストークン」と呼ばれるものが必要なので、まずはその作成から。
Mastodon のアクセストークンは、Mastodon のメニューの ユーザー設定 > 開発 > 新規アプリ
から作成できる。
するとアクセストークンの発行のために必要な情報の入力を求める画面が出てくる。今回は以下の内容を設定して「送信」ボタンを押せば良い。
- アプリの名前:
twitter2mastodon
など- 発行したアクセストークンが、どんな目的で使われているのかあとから区別できるよう、名前を付けておくための欄
- 好きな名前を入れれば良い。id:mizdra は「
twitter2mastodon
」にした。
- アプリのウェブサイト: デフォルトのままで OK
- リダイレクトURI: デフォルトのままで OK
- アクセス権:
write:media
,write:status
だけチェックを入れて、他のチェックは全部外す- 発行されるアクセストークンを使ってできることをここで制限できる
- デフォルトで
read
,write
,follow
にチェックが入っているが、今回は要らないので外す - 画像の投稿と、テキストの投稿ができるよう、
write:media
,write:status
にチェックを入れる
「送信」ボタンを押すと「アプリが作成されました」、という表示が出てくるはず。アプリ名のところをクリックすると、生成されたアクセストークンを確認できる。
発行したアクセストークンは後のステップで使うので、どこかにメモしておく。ただしこのアクセストークンが他の人に漏れてしまうと、他の人が自分になりすましてトゥートできてしまうので、取り扱うには十分注意するように。
ステップ2. IFTTT のアカウントを作成する
https://ifttt.com/join から IFTTT のアカウントを作成する。流れでできるはずなので説明は割愛。もうアカウントを持っている人はスキップで OK。
ステップ3. IFTTT で「Twitter でツイートしたら Mastodon に転送する」Applet を作る
IFTTT では「Applet」というものを作って、ピタゴラスイッチのような自動化フローを組んでいく。今回もこの Applet を作る必要がある。IFTTT のページの右上にある「Create」ボタンから作成できる。
Applet の作成画面が出てくるので、以下のような手順で Applet を作っていく:
- 「If This」の横の「Add」ボタンをクリック
- 連携可能なサービス一覧が出てくるので、「Twitter」を探して選択
- Twitter のどのイベントを対象にピタゴラスイッチを起動させるか聞かれるので、「New tweet by you (新しくツイートをした時)」を選択
- 「Add new account」から自分の Twitter アカウントと IFTTT を連携
- 「Include」欄のうち、「retweets」にチェックを入れる
- 入力内容に間違いがないか確認して、「Create trigger」をクリック
- 以下のようになっていれば OK
- 1 の画面に戻ってくるので、「Then that」の横の「Add」ボタンをクリック
- 連携可能なサービス一覧が出てくるので、「Webhooks」を探して選択
- 「Make a web request」を選択
- フォームが出てくるので以下の情報を入力
- URL:
https://<お使いの Mastodon インスタンスのドメイン>/api/v1/statuses
- Method:
POST
- Content Type:
application/x-www-form-urlencoded
- Additional Headers: 空で OK
- Body:
access_token=<ステップ1でコピーしたアクセストークン>&status={{Text}}
- URL:
- 入力内容に間違いがないか確認して、「Create action」をクリック
- また 1 の画面に戻ってくるので、「Continue」をクリック
- Applet のタイトルを設定するよう指示されるので、
Twitter => Mastodon
などと入力 - 「Finish」を押して Applet 作成完了
これで Twitter でツイートしたら Mastodon に転送されるようになったはず。
ステップ4: Mastodon アカウントを BOT アカウントとしてマークする (オプション)
Twitter のツイートをトゥートする Mastodon アカウントは、いわば Bot である。そういう BOT のトゥートを見たくない人もいるので、その配慮として Mastodon アカウントを BOT としてマークしておくと良い (とブコメで教えていただいた。ありがとうございます。)。
BOT アカウントのマークは ユーザー設定 > プロフィール > 外観
にある 「これはBOTアカウントです」にチェックを入れればできる。
あとお好みで ユーザー設定 > ユーザー設定 > その他
から「検索エンジンによるインデクスを拒否する」にチェックを入れたり、「投稿の公開範囲」を 未収載
に設定してみたりすると良いかも。Mastodon のアカウントの表示名を <ユーザ名>@twitter.com
みたいにして、マルチポストだと分かりやすくするのも良いと思う。
ひとまずこれですべての設定が完了したはず。お疲れさまでした。
余談: id:mizdra が Mastodon に転送しようと思った背景
id:mizdra は情報収取ツールとして Twitter を利用している。Twitter さえ見ていれば欲しい情報が手に入るように、情報を発信する人を積極的にフォローしている *2。同じように情報収集目的で Twitter を利用している人は大勢居るはずで、おそらく @mizdra のフォロワーにも結構居るのではないかと思っている。そうした人が Fediverse に移行したとき、移行先の Fediverse でも情報収集のために、もともと Twitter でフォローしていた人を、Fediverse でフォローしたくなってくる。しかしご存知の通り、Twitter ユーザを Fediverse からフォローすることはできない。
これは Fediverse に移行する以上仕方のないことだと思う。ただ、同じ情報収取目的で SNS をやっている身としては、少し心が痛む。
id:mizdra が Twitter に投稿したツイートを Mastodon に転送するようにしたのは、少しでもそうした人の助けになればと思ったから。少なくとも僕が Twitter を情報収取目的で使っている以上、同じように情報収集目的で SNS をやっているフォロワーには不便させたくない。
*1:IFTTT の Twitter 連携が突然動かなったらこの方法機能しなくなってしまうけど、まあもしそうなったらその時なんとかするスタイルで。