今日の午前3時半はからずっと・・・10時半までの7時間かかった!
辛かった・・・が何とかアプリ認証に成功したぞ!!わっはっは!!
手間取ったトラップ ... percent encoding
https://dev.twitter.com/oauth/overview/creating-signatures
↑これ見ながらシグネチャ作るコード書いてて(※このページの説明のAPIのURLが1.1になってるけどbase stringの生成から1.1ではなく1を使ってるのでそれも罠だった)
最初 System.Net.WebUtilityのUrlEncode()を使ったんだけど
エンコーディングされてない文字があるの気づいて
System.Uri.EscapeUriString()やらSystem.Uri.EscapeDataString()やらを使っても駄目で
何か国際化ドメインのIRIやらIDNやらがどうのこうのでググって.configファイル作るやらやっても駄目で
System.Web.HttpUtility.UrlEncode()やSystem.Web.HttpUtility.UrlPathEncode()を使ってみたけど駄目で
結局 RFC 3986 に準拠してない感じだったので、エスケープされない、!'*() の5文字を変換するコードを入れて、エンコーディングはパスした・・・
手間取ったアホなバグ ...
テストコードでUtility.signatureの引数のsigning key生成に渡す文字列を間違ってたせいで
小一時間くらい何のバグか悩んだ・・・
HMACSHA1の使い方を真っ先に怪しんだが全然違っててそれで時間溶けたわけ
マヌケすぎ・・・
少し手間取ったトラップ ... access_token API
https://dev.twitter.com/oauth/reference/post/oauth/access_token
OAuthに渡すパラメータ分かってなかったのでこれで半時くらい死んだ
一度 https://oauth.net/core/1.0/#auth_step3 を見たけど
ちゃんと読んでなかったのでうまくいかず・・・
最初はrequest_token APIと同じパラメータにoauth_verifierにPIN添えてやってうまく行かず
OAuthのページ見てcallbackのパラメータ要らないジャン!と削除してうまくゆかず・・・
件のページを目を凝らして眠気に耐えながら見てたらoauth_tokenというパラメータに気づいて・・・
それでやっと成功した、認証成功した!!アクセストークンゲットできました!!
今日はここまでしかやってない、ここまでで7時間も費やしたのだ・・・
うおおおおおおおおおおおおおおおおおおおおおおおおおお!!!!!!!!
疲れた
以上