欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

使用yahoo api报错401 unauthorized解决方法

更新时间: 2014-01-05 01:59:26 责任编辑: Author_N1

 

使用Yahoo api报错401 Unauthorized
各位大侠,遇到一个问题,一直解决不了,找不到原因,
使用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,对于你这个问题,只能爱莫能助了
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 01:59:26
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/4147/
本文WWW.DOC100.NET DOC100.NET版权所有。