test hashtag #mastodon_api
Testing mastodon.py (https://github.com/halcy/Mastodon.py), a python api client for mastodon. #mastodon #dev #python #mastodon_api #api

えー?

Mastodon のトゥート削除 API って、最新(v3.2.0)だと 1 リクエスト/分(30 分で 30 回まで)に制限されてんの?

https://github.com/tootsuite/mastodon/blob/93dd413a47f828f386d84cc1c7db15536c4d80c3/config/initializers/rack_attack.rb#L76-L78

その点、Qiitadon は 1 回/秒(5 分で 300 回まで)を許すという太っ腹仕様(v2.3.3)

https://github.com/increments/mastodon/blob/qiitadon/config/initializers/rack_attack.rb#L48-L50

マストドンのバージョンによって API のリクエスト制限って結構変わっているのね。

#Mastodon_API #Qiitadon #トゥート削除

tootsuite/mastodon

Your self-hosted, globally interconnected microblogging community - tootsuite/mastodon

#mastodon_api #Idempotency_Key

if idempotency_duplicate then 404
----

重複トゥート防止の Idempotency-Key: <UNIQUE ID> ヘッダ。便利。
でも、すでに処理済みの場合は、リクエストすると 404 エラーになる。

普通に正常処理された時に返される JSON を返してくるのが API 的に良いと思うんだども。

issue にもあがってない。
https://github.com/tootsuite/mastodon/issues?utf8=%E2%9C%93&q=idempotency

これは、「その Idempotency Key 付きリクエストの URL は処理済みだから、ないよ」という解釈なのだろうか。

404 ってそういうもの?

暗黙のプロトコルに悩まされるなり

ここ↓で分岐してる気がするけど。ルビがふられてないから読めない(Rubyわからない)
https://github.com/tootsuite/mastodon/blob/master/app/services/post_status_service.rb#L29

tootsuite/mastodon

Your self-hosted, globally interconnected microblogging community - tootsuite/mastodon

#Mastodon_API​、いつのまに​#重複トゥート防止​が付いてた。

 https://qiita.com/KEINOS/items/a1f49ad0852f7c33d3d7

トゥート時に Idempotency-Key: <UNIQUE ID> をヘッダに含めると、同じ UNIQUE ID のトゥートは1つだけが投稿されるっぽい。

これでサーバー混雑時の時報 BOT も安定化できそう。

#500エラー対策

Mastodon API で重複トゥートを防ぐ簡単な方法 - Qiita

## 重複投稿を防ぎたい > [マストドン](https://joinmastodon.org/)の API 利用時、500 系のエラー発生やネットワークの問題などで**トゥートの投稿に失敗した場合、リトライする際に重複投稿するのを...