結論
timestamp が float だった
経緯
私が作っている nim の oauth library を修正したところ
bitbucket の例がうまく動かなかった (というか bitbucket は多分ずいぶん昔から動いていなかった) ので調査していて分かったのでメモ
問題の切り分けに時間がかかった要因としては
の例は動いていた、という点があります。
概要
いくつかの bitbucket x oauth 1 の例から正常に動く以下の例を参考に
Bitbucket OAuth 1 Tutorial — Requests-OAuthlib 1.0.0 documentation
送られているヘッダーを見比べた結果
- Requests-OAuthlib
oauth_timestamp=\"1530407158\",
- oauth
oauth_timestamp=\"1530407309.0\",
となっていて、ここが原因でした。
先ほどの Twitter 等のサービスは、timestamp が float でも受け入れていたということのようです。
わかれば単純ですけど、bitbucket は理由を返してくれないので何故こけてるのかが分からずかなり時間がかかりました...