個人サイトはRSSを使って更新通知をしていますが(使ってる人いるのか?)これを自動取得してPleromaに吐き出したい。でも設定画面にはそれっぽいのがない。少し前はPleroma用にアクセストークンを作ってくれるサイトがあったみたいなんだけど御臨終していたので自分でやります。意外とPleromaでの設定がネットになかったので備忘録。でもマストドンとほぼ同じらしい。そんな頻繁に更新しないんだから全部手動でいいじゃんとは思う。 オタクは自動化が好き。
参考:
https://docs.joinmastodon.org/client/token/
https://git.pleroma.social/pleroma/pleroma/-/issues/2282
https://platform.ifttt.com/docs/api_reference
ターミナルからclient_idとclient_secretを取得。
curl -X POST \
-F "client_name=適当に名前をつける" \
-F "redirect_uris=urn:ietf:wg:oauth:2.0:oob" \
-F "scopes=read write follow" \
https://自分のドメイン/api/v1/apps
ブラウザからPleromaに認証を通す。
open https://自分のドメイン/oauth/authorize?client_id=【生成したclient_id】&redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=code&scope=read%20write%20follow
Approveすると認証用トークンが出てくる(アクセストークンではない)。Scopeとかは適宜必要なものに変更。
紐付けてアクセストークン生成。
curl -X POST \
-F "client_id=【生成したclient_id】" \
-F "client_secret=【生成したclient_secret】" \
-F "redirect_uri=urn:ietf:wg:oauth:2.0:oob" \
-F "code=【生成した認証用トークン】" \
-F "grant_type=authorization_code" \
-F "scope=read write follow" \
https://自分のドメイン/oauth/token
生成したアクセストークンが正しいか確認。
curl \
-H "Authorization: Bearer 【生成したアクセストークン】" \
https://自分のドメイン/api/v1/apps/verify_credentials
ターミナルからステータス投稿。
curl -X POST \
-H "Authorization: Bearer 【生成したアクセストークン】" \
-d "status=番長3撤去しないで" \
-d "visibility=direct" \
https://自分のドメイン/api/v1/statuses
大丈夫そうだったらIFTTT自動投稿の設定。IfはRSS、ThenはWebhookを選択。
// URL
https://自分のドメイン/api/v1/statuses
// Method
POST
// Content Type
application/json
// Additional Headers
Content-Type: application/json
Authorization: Bearer 【生成したアクセストークン】
// BODY
{
"status": "[サイト更新] {{EntryTitle}}",
"visibility": "unlisted"
}
大成功。ただJSONの改行の仕方が分からない。別にいいけど…。BODYの内容は公式ドキュメント (https://api.pleroma.social/) 読みながら変更する。Fediverse界には自動投稿は公開タイムラインに置かないという習わしがあるらしいのでvisibilityはunlistedかprivateが良さそう。うまくいかなかったらダブルクォーテーションが変なのになってないか確認する(重要)。
恥ずかしいのでブログは自動投稿しない。なんのサイトなんだろうなこれ。