Python を使って、画像を添付したステータス「Hello, Misskey!」を misskey.io へ投稿する方法を紹介する。
Mastodon.py のインストール
Python で Misskey にメッセージを投稿するには Misskey.py
というパッケージを使用する。Python から Misskey API に簡単にアクセスするためのツールである。
このパッケージは pip を使ってインストールできる。
pip install Misskey.py
Misskey.py を使ってステータスを misskey.io へ投稿する
この例では api_base_url
に misskey.io
を指定しているが、皆さんが利用しているサーバーのAPIベースURLに変更して欲しい。
import os import sys import time from misskey import Misskey misskey_access_token = 'アクセストークン' misskey_api_base_url = 'misskey.io' misskey = Misskey( misskey_api_base_url, i = misskey_access_token ) # 引数から画像を含むディレクトリのパスを取得する image_dir_path = sys.argv[1] # 画像をアップロードする misskey_media_ids = [] for filename in sorted(os.listdir(image_dir_path)): if filename.endswith('.png') or filename.endswith('.jpg'): file_path = os.path.join(image_dir_path, filename) with open(file_path, "rb") as f: media = misskey.drive_files_create(f) media_id = media['id'] print(f"アップロードされたファイル: {file_path}, メディアID: {media_id}") misskey_media_ids.append(media_id) #print(f"{misskey_media_ids}") # 画像のアップロード後、すぐにステータスを投稿しようとするとステータスコード 422 が返ってくるので10秒待機 time.sleep(10) # 投稿を作成する status = 'Hello, Misskey!' misskey.notes_create(status, file_ids=misskey_media_ids, visibility='public')
ターミナルで、アップロードしたい画像ファイルが入っているディレクトリパスを指定して実行しよう。
python post_media_misskey.py /Users/ch3cooh/Desktop/images/20230412
上記のスクリプトを実行した。成功すると下図のようにノートを投稿できているはずだ。