Pythonを使ってBOTを作りたくなったので作ってみました。
必要なもの
- Pythonとpipがインストールされた環境
- Misskey.py
- Firefishのトークンキー
- (BOTを動かす場合)cronを動かせるサーバー
大まかな流れ(~初投稿まで)
投稿したいFirefishアカウントで「設定→API」に移動し、アクセストークンの発行します。
その後、pipでMisskey.pyをpip install Misskey.py
と入力してインストール。
インストールしたら、下記の項目を記入してテスト投稿を行います。
from misskey import Misskey
# 初期化
api = Misskey('インスタンスドメイン(例:foo.io)')
api.token = 'アクセストークン'
# ノート
api.notes_create(text='Hello World')
エラーが出なかったら投稿されてるはずです。
大まかな流れ(~時報BOT設置まで)
プログラムの改変
時報を流すために、プログラムを以下のように改変します。
#!/usr/bin/python3
from misskey import Misskey
import datetime
# 初期化
api = Misskey('インスタンスドメイン(例:foo.io)')
api.token = 'アクセストークン'
#ノート投稿
now_date = datetime.datetime.now()
time_text = now_date.strftime("%m/%d %H")
api.notes_create(text=f"{time_text}時になったメェ~")
新しい投稿を行う前に、現在の時間情報を取得しています。
VPSにpip&misskeyインストール
VPSに「pip」のインストールします。
pipはユーザーごとにインストールされるため、注意が必要です。
rootではなく、一般ユーザーでインストールすることをオススメします。
(私はcalckeyユーザーでインストールしました)
pipをインストールしたら、上記と同じコマンドでMisskey.pyをインストール。
pythonファイルのアップロード
/usr/local/bin
に移動し、ファイルをアップロードするか、viエディターを使用して新しいファイルを作成し、プログラムをコピー&ペーストします。
アップロードが完了したら、一度python3 foo.py
と入力し、プログラムが正常に動作するか確認してください。
これにより、のちのトラブルシューティングが容易になります。
cronの設定
cd /etc/cron.d
に移動したら、新しいcronファイルを作成し、下記の項目を記入して保存します。
00 * * * * calckey python3 /usr/local/bin/foo.py
ここではcalckeyとして登録していますので、必要に応じてユーザー名を変更してください。
余談:苦戦したところ
Firefish.pyのエラー
Firefish.pyをインストールしているにもかかわらず正常に読み込むことができませんでした。
Misskey.pyに切り替えたら問題なく動作したので、そのままMisskey.pyを使用することにしました。
確かにFirefishはMisskeyの派生SNSとはいえ、少し複雑……。