Fediverseのお試し(2)MastodonのAPI利用
Mastodon の APIの利用
Mastodon の API を叩くには以下の手順を踏む必要がある:
- OAuth2 クライアントを登録する
- アクセストークンを取得する
- アクセストークンを
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