忘れる度検索してるので覚書。
動作環境:Python 3.12.3
Webhook送信先(エンドポイント)
mastodon
マストドンベースインスタンスはこれ(Fedibird等)
https://[インスタンスURL]/api/v1/statuses
例:
https://mstdn.jp/api/v1/statuses
Misskey
https://[インスタンスURL]/api/notes/create
例:
https://misskey.io/api/notes/create
公開範囲 (visibility)
公開 | ホーム(未収載) | フォロワー | DM(※) | |
---|---|---|---|---|
mastodon | public | unlisted | private | direct |
Misskey | public | home | followers | specified |
※DMの場合送信先ユーザの指定が必要
(一応指定しなくても自分にだけ見える投稿は可能)
記述は下記参照
mastodon
@user_id_1
,@user_id_2
…:送信先ID
payload = {
"status": "@user_id_1 @user_id_2 投稿テキスト", # メンション付きの投稿テキスト
"visibility": "direct" # DMの場合は "direct" を指定
}
status
のuser_id
,text
を変数にしたもの。
user_id_1 = "user_id_1"
user_id_2 = "user_id_2"
text = "ここに投稿テキストを入力"
payload = {
"status": f"@{user_id_1} @{user_id_2} {text}", # メンション付きの投稿テキスト
"visibility": "direct" # DMの場合は "direct" を指定
}
Misskey
user_id_1
,user_id_2
…:送信先ID
payload = {
"text": "投稿テキスト",
"visibility": "specified",
"visibleUserIds": ["user_id_1", "user_id_2"] #DMの場合ユーザを指定
}
リクエストヘッダー
HTTPリクエストヘッダー。
mastodon、Misskey共通
fediverse_access_token
:各インスタンスで取得したAPIアクセストークン
fediverse_headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {fediverse_access_token}"
}
おわり
mastodonとMisskeyで投稿パラメータが違うところでよく引っかかる。
(mastodonはstatus
、Misskeyはtext
)
そのうちBlueskyのAPIもやってみたいね