4

我正在使用 OauthBase.cs 类生成签名,但不断收到错误消息,指出签名无效。谁能告诉我哪里出错了?

我暂时将其显示在消息框中,然后将其复制并粘贴到浏览器中以进行检查。

这是我的代码..

        string consumerKey = "consumer_key";
        string consumerSecret = "consumer_secret";

        string normalizedUrl = null;
        string normalizedRequestParameters = null;


        Uri url = new Uri("http://www.flickr.com/services/oauth/request_token");
        oAuthBase oAuth = new oAuthBase();

        string nonce = oAuth.GenerateNonce();
        string timeStamp = oAuth.GenerateTimeStamp();
        string callback = oAuth.UrlEncode("http://www.example.com");
        string sig = oAuth.GenerateSignature(url, consumerKey, consumerSecret, string.Empty   , string.Empty , "GET", timeStamp, nonce, callback , oAuthBase.SignatureTypes.HMACSHA1,out normalizedUrl ,out normalizedRequestParameters );
        sig = HttpUtility.UrlEncode(sig);
        StringBuilder sb = new StringBuilder(url.ToString());


        sb.AppendFormat("?oauth_nonce={0}&", nonce);
        sb.AppendFormat("oauth_timestamp={0}&", timeStamp);
        sb.AppendFormat("oauth_consumer_key={0}&", consumerKey);
        sb.AppendFormat("oauth_signature_method={0}&", "HMAC-SHA1");           

        sb.AppendFormat("oauth_version={0}&", "1.0");

        sb.AppendFormat("oauth_signature={0}", sig);
        sb.AppendFormat("oauth_callback={0}", callback);


        MessageBox.Show(sb.ToString());
4

1 回答 1

0

从昨天开始,我一直在做同样的事情。无论我做了什么,我都不断收到 invalid_signature。

然后我尝试使用http://flickrnet.codeplex.com/,效果很好。我可以建议你使用它。或者也许查看源代码,这可能会帮助您找到代码的问题。

希望这可以帮助你:)

于 2013-07-19T23:08:38.550 回答