各位大侠,遇到一个问题,一直解决不了,找不到原因,
使用yahoo api过程中报错,401 Unauthorized
授权都成功,https://api.login.yahoo.com/oauth/v2/get_request_token,https://api.login.yahoo.com/oauth/v2/request_auth,https://api.login.yahoo.com/oauth/v2/get_token,这几个API都成功,拿到了最终的oauth_token,oauth_token_secret,guid等数据。但是问题来了,当我用 social profile的api时候,就报错了,
string url = string.Format("http://social.yahooapis.com/v1/user/{0}/profile?format=json", YahooToken.xoauthYahooGuid);,参考地址:http://developer.yahoo.com/oauth/guide/oauth-make-request.html,构造请求的那些数据,如nonce,timestamp,signature用的BaseOAuth类(http://oauth.googlecode.com/svn/code/csharp/OAuthBase.cs),授权过程中用的是PLAINTEXT方式,使用http://social.yahooapis.com/v1/user/{0}/profile?format=json api的时候用的是HMACSHA1方式。
有一个实例参考(http://blog.sina.com.cn/s/blog_7648f7170100qcdz.html),我也按照那上面的写的,授权登入成功,最后用user profile api也还是不行,一直报401.。。。崩溃了。。。。。。。
求各位大侠帮忙!!!!!!!!!!!!!!!!!!!
这到底啥原因!!!!!!!!!
顺便再吐槽一下。用过oauth2.0,觉得oauth 1.0 真心蛋疼。
求助!!!!!!!!!!!!!!!!!!!!!!!!!!!
string nUrl, nParams;
string nonce = this.GenerateNonce();
string timestamp = this.GenerateTimeStamp();
string UrlData = string.Format("http://social.yahooapis.com/v1/user/" + YahooToken.xoauthYahooGuid + "/profile?format=json");
string signature = this.GenerateSignature(new Uri(UrlData), clientID, clientSecret, YahooToken.oauthToken, YahooToken.oauthTokenSecret, "GET", timestamp, nonce, out nUrl, out nParams);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri(UrlData));
request.Method = "GET";
StringBuilder sb = new StringBuilder();
sb.Append("Authorization: OAuth ");
sb.Append("realm=\"yahooapis.com\"");
sb.Append(",oauth_consumer_key=\"" + clientID + "\"");
sb.Append(",oauth_nonce=\"" + nonce + "\"");
sb.Append(",oauth_signature_method=\"HMAC-SHA1\"");
sb.Append(",oauth_timestamp=\"" + timestamp + "\"");
sb.Append(",oauth_token=\"" + YahooToken.oauthToken + "\"");
sb.Append(",oauth_version=\"1.0\"");
sb.Append(",oauth_signature=\"" + this.UrlEncode(signature) + "\"");
request.Headers.Add(sb.ToString());
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
------解决方案--------------------
------解决方案--------------------
最近也在研究oauth,对于你这个问题,只能爱莫能助了