美味的API和雅虎的Oauth在.NET
-
22-09-2019 - |
题
这美味有两套API认证一个用户名和密码以及一个使用OAuth的事实告诉了我一些事情,我要去的经验,我没有错。不幸的是我现在必须同时面对API和我不成功通过API V2的第一道关卡(雅虎的OAuth)获得。
下面是一个代码段(我在这个例子中使用 HTTP:/ /code.google.com/p/opensocial-net-client )
public static string GetRequestToken(string callbackUrl)
{
string normaluri;
string normaluriparam;
OAuthBase oAuth = new OAuthBase();
string nonce = oAuth.GenerateNonce();
string timeStamp = oAuth.GenerateTimeStamp();
string sig = oAuth.GenerateSignature(new Uri(TOKEN_URL), ConfigurationManager.AppSettings[CONSUMER_KEY],
ConfigurationManager.AppSettings[SECRET_KEY],
string.Empty,
string.Empty,
"GET",
timeStamp,
nonce,
OAuthBase.SignatureTypes.HMACSHA1,
out normaluri,
out normaluriparam);
sig = HttpUtility.UrlEncode(sig);
string result =
HttpClient.Get(TOKEN_URL, new
{
oauth_nonce = nonce,
oauth_timestamp = timeStamp,
oauth_consumer_key = ConfigurationManager.AppSettings[CONSUMER_KEY],
oauth_signature_method = "HMAC-SHA1",
oauth_signature = sig,
oauth_version = "1.0",
oauth_callback = callbackUrl
});
return result;
}
看来,如果我按照说明在 http://delicious.com/help/oauthapi没关系自己交给OpenSocial的,我得到一个“401未授权”从服务器,没有进一步的信息。
我可以看到很多人有同样的问题,但找不到任何决议。
解决方案
答案是“不使用HMAC-SHA1这个阶段,我也忘了,包括callbackUrl到我的签名。
不隶属于 StackOverflow