tag:blogger.com,1999:blog-714625945410569535.post593094680146692226..comments2024-02-06T11:37:53.828+09:00Comments on Black Everyday Company: 【C#でTwitter】OAuth認証を行う[デスクトップクライアント版]B.C.Rikkohttp://www.blogger.com/profile/16356457343247420696noreply@blogger.comBlogger4125tag:blogger.com,1999:blog-714625945410569535.post-5149318491454684202017-03-19T06:44:08.672+09:002017-03-19T06:44:08.672+09:00なるほどー!!!
そういうことだったんですね!
いま再現させる環境がないので試せないのですが、si...なるほどー!!!<br />そういうことだったんですね!<br /><br />いま再現させる環境がないので試せないのですが、signatureの桁数とエンコードの関係でエラーになっていたんですね。<br /><br /><br />有益なコメントありがとうございました!B.C.Rikkohttps://www.blogger.com/profile/16356457343247420696noreply@blogger.comtag:blogger.com,1999:blog-714625945410569535.post-58765445244550817622017-03-18T23:13:47.989+09:002017-03-18T23:13:47.989+09:00早速返信ありがとうございます。ライブラリの中身ではなく、
string reqTokenUrl =...早速返信ありがとうございます。ライブラリの中身ではなく、<br /><br />string reqTokenUrl = normalizedUrl + "?"<br /> + normalizedReqParams <br /> + "&oauth_signature=" + signature;<br /><br />の最後のsignatureの事です。signatureの桁数が足らないときは最後が=で埋められる仕様になっていますが、この=がURLEncodeされていないとまずいのではないかと思います。<br />もしかして、「たまに「リモート サーバーがエラーを返しました: (401) 許可されていません」となる場合がありますが、何度か行うと取得できます。」とありますが、signatureの桁数が足らず=が入った時に起こっていたのではないでしょうか?<br /><br />あと、ソースが違うのかもしれませんが、Gitから取ったソースでは<br />GenerateSignatureの第9引数(OAuthBase.SignatureTypes.HMACSHA1)がエラーが出ます(オーバーロードが無い)。ここを省略した場合自動的にHMAC_SHA1になるようなのですが...<br /><br />いずれにしてもこの記事、大変助かりました。ありがとうございました。<br />通りすがりnoreply@blogger.comtag:blogger.com,1999:blog-714625945410569535.post-76371962859328742752017-03-18T08:11:17.395+09:002017-03-18T08:11:17.395+09:00そう言っていただけると幸いですw
こちらこそ、コメントにて共有ありがとうございます。
(記事公開当...そう言っていただけると幸いですw<br />こちらこそ、コメントにて共有ありがとうございます。<br /><br />(記事公開当時は)URLEncodeしなくても大丈夫でした。<br />このコードを書いたのが4年前なので、もしかしたらOAuthBase.csがアップデートされているかもです。<br />※ googlecodeのリンクが切れていたので、2013年にダウンロードしたコードをgistにアップしました。<br /><br /><br />OAuthBase.csを見ると、ライブラリ側でURLEncodeしてくれているようです。<br />https://gist.github.com/BcRikko/57d3cb7175c46316bca4c675c1c61f32#file-oauthbase-cs-L229-L230<br /><br />さらにハッシュ化までしているのでだいじょうぶだと思うのですが…。<br />https://gist.github.com/BcRikko/57d3cb7175c46316bca4c675c1c61f32#file-oauthbase-cs-L277-L283<br /><br /><br />ただ、これでうまくいかないのでしたら、ご指摘どおりURLEncodeが必要だと思います。<br /><br /><br />ちゃんとした回答ができず申し訳ございません。B.C.Rikkohttps://www.blogger.com/profile/16356457343247420696noreply@blogger.comtag:blogger.com,1999:blog-714625945410569535.post-79011310789049855202017-03-18T04:13:12.385+09:002017-03-18T04:13:12.385+09:00有益な情報ありがとうございます。大変参考になりました。
「0.リクエストトークン取得の前処理」でリク...有益な情報ありがとうございます。大変参考になりました。<br />「0.リクエストトークン取得の前処理」でリクエストURLにシグネチャを追加していますが、URLEncodeしなくて良いのでしょうか?というか、上記の通りやったらうまくいかず、URLEncodeして行ったらうまくいったのですが…通りすがりnoreply@blogger.com