【超初心者】PythonでMastodonのAPIを叩く


最近メインのSNSとしてMastodonを使っているので試しに何かbotでも作ってみるかと思い、備忘録代わりに

アクセストークンの取得

APIを叩くためのアクセストークンを取得します。
Mastodonのホームから
ユーザー設定→開発→新規アプリ
でこのページにたどり着くはずです。

このページでアプリの名前を適当に入力して、下のほうにある送信を押すと
先ほど入力した名前が表示されているのでそこを押すと

クライアントキー
クライアントシークレット
アクセストークン

というのが表示されると思います。
この後必要となるのはアクセストークンのみです。
このページはいつでも見れるので覚えておく必要はありません。

Tootしてみる

以下のコードでtootできます。

toot.py
import requests
headers = {'Authorization': 'Bearer xxxxxxxxxxxxxxxxx'}    #xxxxxxxxxxxxxxxxxに自分で取得したアクセストークンを入れる。
host = "https://example.com/api/v1/statuses"    #example.comを自分のインスタンスのドメインに変更する。
toot = ""   #toot本文
content = toot.encode()    #エンコードしないと動かない
data = {'status': cotent}
post = requests.post(host, headers=headers, data=data)
print(post.status_code)

必要なライブラリはrequestsだけなので非常に簡単にtootすることができます。
コードに直接Access tokenを記述するのはセキュリティ上好ましくないのでその辺は適宣かえて使用してください。
tootするにあたってtootする文章をエンコードしないとうまく動かないらしく、そので手こずってしまいました。
これで200が出力されていれば無事tootができます。

tootしたい文をテキトーに作って持ってきてcronで回せばbotの完成です。