Fediverseのお試し(2)MastodonのAPI利用

Mastodon の APIの利用

Mastodon の API を叩くには以下の手順を踏む必要がある:

  1. OAuth2 クライアントを登録する
  2. アクセストークンを取得する
  3. アクセストークンを Authorization ヘッダに指定して API にアクセスする

手順1、2は、Mastodonの「ユーザ設定」→「開発」→「新規アプリ」メニューからでも取得可能。

Mastodon の API開発例は、Ruby、Perlのが多い。なるべく基本のWeb POSTで開発できようにしたい、後々AppInventorでも開発すると考える。

cURLのAPI利用

cURL は、HTTP 要求を送信し、応答を取得するための美しいコマンド ライン ツール。Mastodon の API との通信には HTTP リクエストを使用する。

Mastodon API と通信するには、いくつかの情報が必要になります。

  • Mastodon サーバーのアドレス
  • Mastodon アカウントのアクセス トークン

自分のサーバは本当に動作するか自信がないため、https://mstdn.jp/ で試した。

curl https://mstdn.jp/api/v1/statuses -H ‘Authorization: Bearer 4-Y3nDFgrz8hV7WmbRqDAV52TiAnsQ8jeSvfbYN0g30’ -F ‘status=Look Mom, I can update my status via Mastodon’s API!’

cURLで投稿できた!

PythonのAPI利用

Python は古典的なスクリプト言語。Python リクエストの場合、cURL リクエストと同じように、次のものが必要になる。PythonのMastodon API専用のモジュールもあるが、基本のWeb POSTで完結する。

Mastodon API と通信するには、いくつかの情報が必要になります。

  • Mastodon サーバーのアドレス
  • Mastodon アカウントのアクセス トークン

CharGPTの機能を試したくて、cURLで投稿するコードをPythonで実現すると指示して、動くコードが返ってきました。

実際のコード:

import requests

url = ‘https://mstdn.jp/api/v1/statuses
auth = {‘Authorization’: ‘Bearer 4-Y3nDFgrz8hV7WmbRqDAV52TiAnsQ8jeSvfbYN0g30’}
params = {‘status’: ‘Mastodon API request from Pythong!’}

r = requests.post(url, data=params, headers=auth)

print(r)

しかしcURLで投稿できたが、Pythonは権限ないとエラーが返ってきた。

色んな対策、検証しても上手くいかない。悩んだ末、自分のMastodonで試したら、すんなりできた。

AppInventorのAPI利用

AppInventorでも利用できた。

以前のAppInventorでブログ投稿のサンプルを改造して、マイクロ(Mastadon)投稿に利用する。

画面デザインはブログ投稿のサンプルそのまま。

Post Blog部分のブロックコードをちょっと改造した様子。

投稿ができた。

参考:

  • https://dev.to/bitsrfr/getting-started-with-the-mastodon-api-41jj