RestSharp を使用して OAuth 1 REST クライアントを作成しようとしていますが、GET 要求で無効な署名の問題が発生しています。コードを調べてみたところ、GET リクエストの場合、リクエスト パラメータが署名のベース文字列から省略されていることが問題のようです。特に、OAuth1Authenticator.cs の問題のあるコードは次のとおりです。
// for non-GET style requests make sure params are part of oauth signature
if (request.Method != Method.GET && request.Method != Method.DELETE)
{
foreach (var p in request.Parameters.Where(p => p.Type == ParameterType.GetOrPost))
{
parameters.Add(new WebPair(p.Name, p.Value.ToString()));
}
}
if ステートメントを削除すると、期待どおりに機能します。
私は何か誤解していますか?http://oauth.net/core/1.0a/#sig_base_exampleの OAuth 仕様の署名ベース文字列の例に基づいて、これらのパラメーターを基本署名に追加する必要があるようです。これは OAuth1Authenticator のバグですか、それとも何か間違っていますか?
ありがとうございました!