2010-03-28 87 views
2

事实上,Delicious拥有两组API认证,一组使用用户名和密码,另一组使用oAuth告诉我一些关于我将要体验的事情,而我没有错。不幸的是,我现在必须处理这两个API,并且通过API v2的第一个障碍(Yahoo oAuth)不成功。美味的API和.NET中的Yahoo oAuth

下面的代码片段(我在这个例子中使用的OpenSocial 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未经授权”从服务器没有进一步的信息。

我可以看到很多人都有同样的问题,但找不到任何解决方案。

回答

1

答案是“不使用HMAC-SHA1这个阶段,我也忘了,包括callbackUrl到我的签名。

+0

我知道你关闭这一点,但你做了什么你得到了令牌之后,如何你有没有提出要求? – 2012-03-27 17:24:43