Python

Mastodonでbotを運用する方法

Mastodonでbotを運用する方法を紹介します。

コマンドプロンプトとPytonでbotを作ります。

bot用のフォルダとファイルを作成します。

コマンドプロンプトを起動したら 作ったフォルダに移動します。

コマンドは

cd パス

パスはフォルダを選択して右クリック、【パスのコピー】を選択してクリックすればパスがコピーできます。

Mastodonはオープンソースの分散型ソーシャルネットワークで、APIを利用して投稿やフォローの管理が可能です。

Pythonを使えば、簡単にMastodon APIとやりとりすることができます。

以下、Mastodonのbotを作るための基本的な手順を説明します。

1. 必要なツールの準備

Pythonのインストール

まず、Pythonがインストールされていることを確認してください。Python 3.xで開発することをお勧めします。

ライブラリのインストール

フォルダを作成しコマンドプロンプトでそのフォルダにアクセスする筆者

F:\bot>というフォルダを作りました。

ライブラリをインストールします。

Mastodonには公式のPythonクライアントライブラリ「Mastodon.py」があります。これを使うと、APIを簡単に利用できます。以下のコマンドでインストールしましょう。

コマンドプロンプトに以下のコマンドをコピペ

pip install Mastodon.py

2. Mastodonでアプリケーションを登録

Botを動かすには、MastodonのAPIを使うためにアクセストークンが必要です。これを取得するためには、まずMastodonのインスタンスにログインしてアプリケーションを登録する必要があります。

  1. Mastodonのインスタンスにログイン。
  2. 「設定」→「開発」→「アプリケーションを登録」ページに移動。
  3. 新しいアプリケーションを登録し、「client_id」「client_secret」「access_token」を取得します。

3. Botの作成

次に、Pythonコードを書いてMastodon APIとやりとりを行います。例えば、定期的に「トゥート」(Mastodonでの投稿)を行う簡単なbotを作ってみましょう。

mastodon_bot.py(サンプルコード)

あらかじめセットした複数の文章を一定間隔で投稿し、すべての文章を投稿した後に最初に戻るローテーション型のBotを作成したいということですね。これを実現するためのサンプルコードを提供します。

基本的な流れは次の通りです:

  1. 投稿するメッセージをリストとして用意する。
  2. 一定間隔ごとにリストからメッセージを1つずつ取り出して投稿する。
  3. リストの最後まで到達したら、最初に戻って再度投稿を繰り返す。
from mastodon import Mastodon
import time

# Mastodonクライアントを設定
mastodon = Mastodon(
    client_id='client_id.txt',  # client_idファイルのパス
    client_secret='client_secret.txt',  # client_secretファイルのパス
    access_token='access_token.txt',  # access_tokenファイルのパス
    api_base_url='https://mastodon.example.com'  # MastodonインスタンスのURL
)

# あらかじめ設定する投稿内容(投稿リスト)
toot_list = [
    "これは最初の投稿です!",
    "次の投稿です!",
    "もう一つの投稿です!",
    "最後の投稿です!次は最初に戻ります。"
]

# 投稿間隔を設定(例:60 * 60 = 1時間)
interval = 60 * 60  # 1時間ごとに投稿

# リストのインデックスを初期化
index = 0

# 無限ループで定期的に投稿を行う
while True:
    # 現在のインデックスのメッセージを投稿
    mastodon.toot(toot_list[index])
    
    # 次の投稿に進む(リストの最後なら最初に戻る)
    index = (index + 1) % len(toot_list)  # インデックスを次に進める。リストの末尾なら0に戻す
    
    # 次の投稿まで待機
    time.sleep(interval)

MastodonのインスタンスURLをapi_base_url="____"の間に貼り付ける

toot_listに好きな文章を入力しておく

"____",この間に文章を入力する事で一つの文章として認識される

botを動かしたい

MastodonのBotを実際に動かすためには、いくつかの準備ステップを確認して実行する必要があります。以下は、Botを動かすための具体的な手順です。

ステップ1: Mastodon APIの準備

まず、Mastodonインスタンスでアプリケーションを作成し、Botに必要な認証情報(client_id, client_secret, access_token)を取得する必要があります。

Mastodonインスタンスでのアプリケーション作成手順

  1. Mastodonのアカウントにログインします(例: https://mastodon.social)。
  2. プロフィールアイコンをクリックし、「設定」→「開発」→「新しいアプリケーションを登録」を選択します。
  3. アプリケーション名を入力し、スコープとして「read」と「write」を選択します。
  4. 「アプリケーションを登録」をクリックします。
  5. 登録後、「client_id」、「client_secret」、そして「access_token」が生成されるので、それらを保存します。

これで必要なAPIキーが揃いました。

ステップ2: 認証情報を保存

client_id, client_secret, access_token の内容をそれぞれテキストファイルに保存します。

  1. client_id.txt, client_secret.txt, access_token.txt の3つのファイルを作成し、それぞれのファイルに対応するAPIキーを記入します。

    • client_id.txtclient_id を書き込む
    • client_secret.txtclient_secret を書き込む
    • access_token.txtaccess_token を書き込む

client_id.txt:

YOUR_CLIENT_ID

client_secret.txt:

YOUR_CLIENT_SECRET

access_token.txt:

YOUR_ACCESS_TOKEN

ステップ4: Botの実行

全ての準備が整ったら、次のコマンドでBotを実行します。

python mastodon_bot.py

ステップ6: Botが動作するか確認

Botが正常に動作すれば、Mastodonアカウントに指定した間隔でメッセージが投稿されるはずです。まずは投稿間隔を短く(例: 60秒 = interval = 60)設定して動作確認するとよいでしょう。

注意点

  • Botが正しく動作しているか、Mastodonの投稿を確認してください。
  • 一定間隔で自動投稿されるので、Mastodonの利用規約やルールを確認し、スパムにならないように注意しましょう。

問題があれば、どの段階でエラーが発生したか教えていただければ、さらにサポートします!

-Python
-