username有两组API身份验证,一组是用户名和密码,另一组是oAuth,这一事实告诉了我一些我将要经历的事情,我没有错。不幸的是,我现在必须处理这两个API,并且没有成功地通过API v2 (雅虎oAuth)的第一个障碍。
下面是一个代码片段(我在本例http://code.google.com/p/opensocial-net-client中使用了OpenSocial )
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未授权“的消息,但没有进一步的信息。
我可以看到很多人都有同样的问题,但找不到任何解决方案。
发布于 2010-03-30 18:38:38
答案是“在这个阶段不要使用HMAC-SHA1,我也忘了在签名中包含callbackUrl。
https://stackoverflow.com/questions/2533508
复制相似问题