せっかくシーケンス図も書いたことだし
勉強を兼ねて、OAuth Core 1.0 Revision A 準拠にして、Twitter の OAuth Consumer 用ライブラリを自分でいちから書いてみた。全然整理していないけど。
とりあえず、デモは動くみたい。
もう少し整理したら、ライブラリソースもアップしようかな。
自分用覚書
- Authorization Headerに埋めこもうと思って作りかけたんだけれど、Signatureの計算時はquery用パラメータと一緒にするのに実際にセットするときはheaderとqueryに分離するのが面倒だったので、やめ。
- Request Token URLへの要求時にきちんとoauth_callbackパラメータ付けてやれば、Twitterのhttp://twitter.com/oauth_clientsの"Register a new application ?"のリンクから辿れる設定中の"Callback URL:"は適当なURLでOK(oauth_callbackの方が優先される)。でも、"Callback URL:"欄を空白にはできない。また、"Application Type:"のClientの方にチェックを入れると動作が不安定になる(全く動かないならともかくとして、動くときもあるので……なんだろう?)。
- oauth_callbackパラメータを付けるようになったせいか、Obtaining User Authorization のときのコールバックでちゃんとoauth_verifierも入ってくるようになった。
- パスワード預かる必要ないんで、その点がやっぱり気楽かな。単純なタイプのbotを誰でも登録出来るようなサイトでも作ってみようか。でも負荷の問題が、なぁ(某プロキシで懲りた……)。
- 前にも書いたけど、WebHookっぽく、@だれそれが来たらすぐにアクションが起こせるような仕組みを本家が作ってくれないかねぇ。ポーリングは効率が悪すぎる……。