Gattxxa / Mastodon.pyを使ってトゥートする

Created Fri, 03 Feb 2023 01:39:39 +0900 Modified Thu, 25 Apr 2024 17:58:06 +0000
1118 Words

前置き

2023年2月2日、TwitterAPI有料化の発表により私が運営していたTwitter@PSO2NGS_JPも影響を直に受けることに。昨今のTwitterはツイ廃ユーザーにとっては改悪と思えてしまうようなアップデートが続いており、他のSNSへ移住を考える人の声が私の少ないフォロー数の中でも見かけます。

そこで移住先の候補の一つであるMastodonにてサービスを継続することにしました。
Misskeyでもよかったのですが、PSO2ユーザーはMastodonにおそらく流れるだろうということでこちらを選択。

本題に入っていきます。

本題

Mastodonアカウントを作成する

記事中ではmstdn.jpで作成されたアカウントを使用しています。
必要に合わせて適切なMastodonインスタンスでアカウントを作成すること。

アカウントが作成出来たらプロフィール編集開発新規アプリからアプリを作成する。
トゥートするだけのBotならアプリの名前だけ入力し、最下部の送信をクリックして終了です。

作成したアプリの名前をクリックすると クライアントキー クライアントシークレット アクセストークン を確認できます。

Mastodon.pyをインストール

$ pip3 install Mastodon.py

Python 3.7 以上をサポートしているようです。

トゥートするコードを書く

from mastodon import Mastodon

access_token = '作成したアプリのアクセストークン'
api_base_url = 'MastodonインスタンスのURL'
mastodon = Mastodon(access_token=access_token, api_base_url=api_base_url)

status = 'Python3を使ってトゥート!'
visibility = 'unlisted'
mastodon.status_post(status, visibility=visibility)

コピペで動きます。

visibility には public unlisted private direct の4つを指定することができますが
mstdn.jpでは public を使用しないでください。

mstdn.jpにBotを設置しようと考えている方々には、最低限以下の条件を守って頂きたいと思います:
・Publicな投稿をしないこと(Unlisted, Private, Directを使ってください)
・能動的に他のアカウントをフォローしに行かないこと
・フォローしていない人のトゥートを自動でお気に入り登録したり、リプライを飛ばしたりしないこと
mstdn.jp - Bot運用ルール より

他のMastodonインスタンスでも同様のルールが設けられていたり、そもそもBotを禁止している場合もありますので、運営者・既存のユーザーの方々に迷惑をかけないためにも遵守するようによろしくお願いします。

実行する

作成した .py を実行してトゥートできることを確認してください。

おわりに

英作文を書いたりしてAPIの利用申請を行う必要があるTwitterより圧倒的に楽でした。

MastodonでのBot作成のハードルが低い現状、mstdn.jpが今後どのように動いていくのか気になりますね。