这美味有两套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到我的签名。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top