Pregunta

El hecho de que delicioso tiene dos juegos de autenticaciones API uno con nombre de usuario y contraseña y otro con OAuth me dijo algo acerca de cosas que iba a experiencia y no estaba mal. Por desgracia, tengo que lidiar con ambas API ahora y estoy sin éxito conseguir a través de la primera ronda de la versión 2 del API (Yahoo OAuth).

Aquí es un fragmento de código (estoy usando OpenSocial en este ejemplo 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;
}

Parece que no importa si sigo las instrucciones en http://delicious.com/help/oauthapi mismo de la licencia a OpenSocial, consigo un "401 no autorizado" desde el servidor sin más información.

puedo ver muchas personas tienen el mismo problema, pero no pudieron encontrar ninguna resolución.

¿Fue útil?

Solución

La respuesta es "no usar HMAC-SHA1 para esta etapa. También se me olvidó incluir callbackUrl en mi firma.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top