0

invalid_signature for C# fantasy data retrieval

I have a .net app I am modifying that I can't seem to get fully working. I've included the code below and the reslts i'm writing back after that.
using System;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Net;
using System.IO;
//using OAuth.Net.Common;
//using OAuth.Net.Components;
//using OAuth.Net.Consumer;
using OAuth;
using System.Text;
using System.Xml;
using System.Collections;
using System.Collections.Generic;
using System.Net.Mail;
using System.Text.RegularExpressions;

public partial class test_oauth_test : System.Web.UI.Page
{
    public string ConsumerKey
    {
    get
    {
    return "dj0yJmk9em9YNXRnd1M3V0dzJmQ9WVdrOVQwMVpjVk55TlRBbWNHbzlNelUyT1RJNU16WXkmcz1jb25zdW1lcnNlY3JldCZ4PTFl";
    }
    }
    public string ConsumerSecret
    {
    get
    {
    return "6a771ee67b22540c587d48509391ff435c0493cb";
    }
    }

    public string OauthVerifier
    {
    get
    {
    try
    {
    if (!string.IsNullOrEmpty(Session["Oauth_Verifier"].ToString()))
    return Session["Oauth_Verifier"].ToString();
    else
    return string.Empty;
    }
    catch
    {
    return string.Empty;
    }
    }
    set
    {
    Session["Oauth_Verifier"] = value;
    }
    }
    public string OauthToken
    {
    get
    {
    if (!string.IsNullOrEmpty(Session["Oauth_Token"].ToString()))
    return Session["Oauth_Token"].ToString();
    else
    return string.Empty;
    }
    set
    {
    Session["Oauth_Token"] = value;
    }
    }
    public string OauthTokenSecret
    {
    get
    {
    if (!string.IsNullOrEmpty(Session["Oauth_Token_Secret"].ToString()))
    return Session["Oauth_Token_Secret"].ToString();
    else
    return string.Empty;
    }
    set
    {
    Session["Oauth_Token_Secret"] = value;
    }
    }
    public string OauthSessionHandle
    {
    get
    {
    if (!string.IsNullOrEmpty(Session["Oauth_Session_Handle"].ToString()))
    return Session["Oauth_Session_Handle"].ToString();
    else
    return string.Empty;
    }
    set
    {
    Session["Oauth_Session_Handle"] = value;
    }
    }
    public string OauthYahooGuid
    {
    get
    {
    try
    {
    if (!string.IsNullOrEmpty(Session["Oauth_Yahoo_Guid"].ToString()))
    return Session["Oauth_Yahoo_Guid"].ToString();
    else
    return string.Empty;
    }
    catch
    {
    return string.Empty;
    }
    }
    set
    {
    Session["Oauth_Yahoo_Guid"] = value;
    }
    }

    protected void Page_Load(object sender, EventArgs e)
    {
    if (!IsPostBack)
    {
    string oauth_token = Request["oauth_token"];
    string oauth_verifier = Request["oauth_verifier"];

    if (!string.IsNullOrEmpty(oauth_verifier) && oauth_verifier != "")
    {
    Button1.Visible = false;
    OauthToken = oauth_token;
    OauthVerifier = oauth_verifier;
    RegisterStartupScript("refresh", "<script type='text/javascript'>window.opener.location = 'oauth-test.aspx'; self.close();</script>");
    }
    else if (!string.IsNullOrEmpty(OauthVerifier))
    {
    Button1.Visible = false;
    if (string.IsNullOrEmpty(OauthYahooGuid))
    GetAccessToken(OauthToken, OauthVerifier);
    //RefreshToken();
    RetriveContacts();
    }
    }

    }
    private string GetRequestToken()
    {
    string authorizationUrl = string.Empty;
    OAuthBase oauth = new OAuthBase();

    Uri uri = new Uri("https://api.login.yahoo.com/oauth/v2/get_request_token");
    string nonce = oauth.GenerateNonce();
    string timeStamp = oauth.GenerateTimeStamp();
    string normalizedUrl;
    string normalizedRequestParameters;
    string sig = oauth.GenerateSignature(uri, ConsumerKey, ConsumerSecret, string.Empty, string.Empty, "GET", timeStamp, nonce, OAuthBase.SignatureTypes.PLAINTEXT, out normalizedUrl, out normalizedRequestParameters); //OAuthBase.SignatureTypes.HMACSHA1
    StringBuilder sbRequestToken = new StringBuilder(uri.ToString());
    sbRequestToken.AppendFormat("?oauth_nonce={0}&", nonce);
    sbRequestToken.AppendFormat("oauth_timestamp={0}&", timeStamp);
    sbRequestToken.AppendFormat("oauth_consumer_key={0}&", ConsumerKey);
    sbRequestToken.AppendFormat("oauth_signature_method={0}&", "PLAINTEXT"); //HMAC-SHA1
    sbRequestToken.AppendFormat("oauth_signature={0}&", sig);
    sbRequestToken.AppendFormat("oauth_version={0}&", "1.0");
    sbRequestToken.AppendFormat("oauth_callback={0}", HttpUtility.UrlEncode("http://localhost:34109/OAuth-yahoo/oauth-test.aspx"));
    //Response.Write(sbRequestToken.ToString());
    //Response.End();

    try
    {
    string returnStr = string.Empty;
    string[] returnData;

    HttpWebRequest req = (HttpWebRequest)WebRequest.Create(sbRequestToken.ToString());
    HttpWebResponse res = (HttpWebResponse)req.GetResponse();
    StreamReader streamReader = new StreamReader(res.GetResponseStream());
    returnStr = streamReader.ReadToEnd();
    returnData = returnStr.Split(new Char[] { '&' });
    //Response.Write(returnStr);

    int index;
    if (returnData.Length > 0)
    {
    //index = returnData[0].IndexOf("=");
    //string oauth_token = returnData[0].Substring(index + 1);
    //Session["Oauth_Token"] = oauth_token;

    index = returnData[1].IndexOf("=");
    string oauth_token_secret = returnData[1].Substring(index + 1);
    OauthTokenSecret = oauth_token_secret;

    //index = returnData[2].IndexOf("=");
    //int oauth_expires_in;
    //Int32.TryParse(returnData[2].Substring(index + 1), out oauth_expires_in);
    //Session["Oauth_Expires_In"] = oauth_expires_in;

    index = returnData[3].IndexOf("=");
    string oauth_request_auth_url = returnData[3].Substring(index + 1);
    authorizationUrl = HttpUtility.UrlDecode(oauth_request_auth_url);
    }
    }
    catch (WebException ex)
    {
    Response.Write(ex.Message);
    }
    return authorizationUrl;
    }
    private void RedirectUserForAuthorization(string authorizationUrl)
    {
    //Response.Redirect(authorizationUrl);
    RegisterStartupScript("openwin", "<script type='text/javascript'>window.open('" + authorizationUrl + "','mywindow', 'left=250,top=50,menubar=0,resizable=0,location=1,toolbar=0,status=1,scrollbars=0,width=500,height=455');</script>");
    }
    private void GetAccessToken(string oauth_token, string oauth_verifier)
    {
    OAuthBase oauth = new OAuthBase();

    Uri uri = new Uri("https://api.login.yahoo.com/oauth/v2/get_token");
    string nonce = oauth.GenerateNonce();
    string timeStamp = oauth.GenerateTimeStamp();
    string sig = ConsumerSecret + "%26" + OauthTokenSecret;

    StringBuilder sbAccessToken = new StringBuilder(uri.ToString());
    sbAccessToken.AppendFormat("?oauth_consumer_key={0}&", ConsumerKey);
    sbAccessToken.AppendFormat("oauth_signature_method={0}&", "PLAINTEXT"); //HMAC-SHA1
    sbAccessToken.AppendFormat("oauth_signature={0}&", sig);
    sbAccessToken.AppendFormat("oauth_timestamp={0}&", timeStamp);
    sbAccessToken.AppendFormat("oauth_version={0}&", "1.0");
    sbAccessToken.AppendFormat("oauth_token={0}&", oauth_token);
    sbAccessToken.AppendFormat("oauth_nonce={0}&", nonce);
    sbAccessToken.AppendFormat("oauth_verifier={0}", oauth_verifier);
    //Response.Write(sbAccessToken.ToString());
    //Response.End();

    try
    {
    string returnStr = string.Empty;
    string[] returnData;

    HttpWebRequest req = (HttpWebRequest)WebRequest.Create(sbAccessToken.ToString());
    HttpWebResponse res = (HttpWebResponse)req.GetResponse();
    StreamReader streamReader = new StreamReader(res.GetResponseStream());
    returnStr = streamReader.ReadToEnd();
    returnData = returnStr.Split(new Char[] { '&' });
    //Response.Write(returnStr);
    //Response.End();

    int index;
    if (returnData.Length > 0)
    {
    index = returnData[0].IndexOf("=");
    OauthToken = returnData[0].Substring(index + 1);

    index = returnData[1].IndexOf("=");
    string oauth_token_secret = returnData[1].Substring(index + 1);
    OauthTokenSecret = oauth_token_secret;

    //index = returnData[2].IndexOf("=");
    //int oauth_expires_in;
    //Int32.TryParse(returnData[2].Substring(index + 1), out oauth_expires_in);

    index = returnData[3].IndexOf("=");
    string oauth_session_handle = returnData[3].Substring(index + 1);
    OauthSessionHandle = oauth_session_handle;

    //index = returnData[4].IndexOf("=");
    //int oauth_authorization_expires_in;
    //Int32.TryParse(returnData[4].Substring(index + 1), out oauth_authorization_expires_in);

    index = returnData[5].IndexOf("=");
    string xoauth_yahoo_guid = returnData[5].Substring(index + 1);
    OauthYahooGuid = xoauth_yahoo_guid;
    }
    }
    catch (WebException ex)
    {
    Response.Write(ex.Message);
    }
    }
    private void RefreshToken()
    {
    OAuthBase oauth = new OAuthBase();

    Uri uri = new Uri("https://api.login.yahoo.com/oauth/v2/get_token");
    string nonce = oauth.GenerateNonce();
    string timeStamp = oauth.GenerateTimeStamp();
    string sig = ConsumerSecret + "%26" + OauthTokenSecret;

    StringBuilder sbrefreshToken = new StringBuilder(uri.ToString());
    sbrefreshToken.AppendFormat("?oauth_consumer_key={0}&", ConsumerKey);
    sbrefreshToken.AppendFormat("oauth_signature_method={0}&", "PLAINTEXT"); //HMAC-SHA1
    sbrefreshToken.AppendFormat("oauth_signature={0}&", sig);
    sbrefreshToken.AppendFormat("oauth_timestamp={0}&", timeStamp);
    sbrefreshToken.AppendFormat("oauth_version={0}&", "1.0");
    sbrefreshToken.AppendFormat("oauth_token={0}&", OauthToken);
    sbrefreshToken.AppendFormat("oauth_session_handle={0}&", OauthSessionHandle);
    sbrefreshToken.AppendFormat("oauth_nonce={0}", nonce);

    try
    {
    string returnStr = string.Empty;
    string[] returnData;

    HttpWebRequest req = (HttpWebRequest)WebRequest.Create(sbrefreshToken.ToString());
    HttpWebResponse res = (HttpWebResponse)req.GetResponse();
    StreamReader streamReader = new StreamReader(res.GetResponseStream());
    returnStr = streamReader.ReadToEnd();
    returnData = returnStr.Split(new Char[] { '&' });
    //Response.Write(returnStr);

    int index;
    if (returnData.Length > 0)
    {
    index = returnData[0].IndexOf("=");
    string oauth_token = returnData[0].Substring(index + 1);
    OauthToken = oauth_token;

    index = returnData[1].IndexOf("=");
    string oauth_token_secret = returnData[1].Substring(index + 1);
    OauthTokenSecret = oauth_token_secret;

    //index = returnData[2].IndexOf("=");
    //int oauth_expires_in;
    //Int32.TryParse(returnData[2].Substring(index + 1), out oauth_expires_in);

    index = returnData[3].IndexOf("=");
    string oauth_session_handle = returnData[3].Substring(index + 1);
    OauthSessionHandle = oauth_session_handle;

    //index = returnData[4].IndexOf("=");
    //int oauth_authorization_expires_in;
    //Int32.TryParse(returnData[4].Substring(index + 1), out oauth_authorization_expires_in);

    index = returnData[5].IndexOf("=");
    string xoauth_yahoo_guid = returnData[5].Substring(index + 1);
    OauthYahooGuid = xoauth_yahoo_guid;
    }
    }
    catch (WebException ex)
    {
    Response.Write(ex.Message);
    }
    }
    private void RetriveContacts()
    {
    //Response.Write("Test!");
    //OAuthBase oauth = new OAuthBase();
    //Uri uri = new Uri("http://query.yahooapis.com/v1/yql?q=select%20*%20from%20fantasysports.leagues%20where%20league_key%3D'257.l.24009'&diagnostics=true");
    //string nonce = oauth.GenerateNonce();
    //string timeStamp = oauth.GenerateTimeStamp();
    //string normalizedUrl;
    //string normalizedRequestParameters;
    //string sig = oauth.GenerateSignature(uri, ConsumerKey, ConsumerSecret, OauthToken, OauthTokenSecret, "GET", timeStamp, nonce, OAuthBase.SignatureTypes.HMACSHA1, out normalizedUrl, out normalizedRequestParameters);
    //StringBuilder getdata = new StringBuilder(uri.ToString());
    //Response.Write("URL: " + getdata.ToString());
    //try
    //{
    // string returnStr = string.Empty;
    // HttpWebRequest req = (HttpWebRequest)WebRequest.Create(getdata.ToString());
    // req.Method="GET";
    // string authHeader = "Authorization: OAuth " +
    // "realm=\"yahooapis.com\"" +
    // ",oauth_consumer_key=\"" + ConsumerKey + "\"" +
    // ",oauth_nonce=\"" + nonce + "\"" +
    // ",oauth_signature_method=\"HMAC-SHA1\"" +
    // ",oauth_timestamp=\"" + timeStamp + "\"" +
    // ",oauth_token=\"" + OauthToken + "\"" +
    // ",oauth_version=\"1.0\"" +
    // ",oauth_signature=\"" + HttpUtility.UrlEncode(sig) + "\"";

    // req.Headers.Add(authHeader);

    // HttpWebResponse res = (HttpWebResponse)req.GetResponse();
    // StreamReader streamReader = new StreamReader(res.GetResponseStream());
    // returnStr = streamReader.ReadToEnd();
    // Response.Write(returnStr);
    //}
    //catch(WebException ex)
    //{
    // Response.Write(ex.Message.ToString());
    //}

    OAuthBase oauth = new OAuthBase();
    //Uri uri = new Uri("http://social.yahooapis.com/v1/user/" + OauthYahooGuid + "/contacts?format=XML");
    Uri uri = new Uri("http://query.yahooapis.com/v1/yql?q=select%20*%20from%20fantasysports.leagues%20where%20league_key%3D'257.l.24009'");
    string nonce = oauth.GenerateNonce();
    string timeStamp = oauth.GenerateTimeStamp();
    string normalizedUrl;
    string normalizedRequestParameters;
    string sig = oauth.GenerateSignature(uri, ConsumerKey, ConsumerSecret, OauthToken, OauthTokenSecret, "GET", timeStamp, nonce, OAuthBase.SignatureTypes.HMACSHA1, out normalizedUrl, out normalizedRequestParameters);

    StringBuilder sbGetContacts = new StringBuilder(uri.ToString());

    Response.Write("Quer URL: " + sbGetContacts.ToString() + "<br>");
    //Response.End();
    try
    {
    string returnStr = string.Empty;
    HttpWebRequest req = (HttpWebRequest)WebRequest.Create(sbGetContacts.ToString());

    Console.WriteLine("<br>Request: " + req.ToString() + "<br>");

    req.Method = "GET";

    string authHeader = "Authorization: OAuth " +
    "realm=\"yahooapis.com\"" +
    ",oauth_consumer_key=\"" + ConsumerKey + "\"" +
    ",oauth_nonce=\"" + nonce + "\"" +
    ",oauth_signature_method=\"HMAC-SHA1\"" +
    ",oauth_timestamp=\"" + timeStamp + "\"" +
    ",oauth_token=\"" + OauthToken + "\"" +
    ",oauth_version=\"1.0\"" +
    ",oauth_signature=\"" + HttpUtility.UrlEncode(sig) + "\"";

    Response.Write("<br>Auth Headers: " + authHeader);

    req.Headers.Add(authHeader);

    Response.Write("<br>Request: " + req.Headers.ToString());

    HttpWebResponse res = (HttpWebResponse)req.GetResponse();

    Response.Write("<br> Response: " + res.ToString());

    StreamReader streamReader = new StreamReader(res.GetResponseStream());
    returnStr = streamReader.ReadToEnd();
    //XmlDocument xmldoc = new XmlDocument();
    //xmldoc.LoadXml(returnStr);
    //XmlNodeList elemList = xmldoc.DocumentElement.GetElementsByTagName("fields");

    //ArrayList emails = new ArrayList();
    //for (int i = 0; i < elemList.Count; i++)
    //{
    // if (elemList[i].ChildNodes[1].InnerText == "email")
    // emails.Add(elemList[i].ChildNodes[2].InnerText);
    // //Response.Write(elemList[i].ChildNodes[2].InnerText + "<br/>");
    //}
    //grvMyFriends.DataSource = emails;
    //grvMyFriends.DataBind();
    }
    #region error
    catch (WebException ex)
    {
    Response.Write("<br>consumer secret: " + ConsumerSecret + "<br>");
    Response.Write("<br>consume rkey: " + ConsumerKey + "<br>");

    //Response.Write(ex.Message);
    Response.Write("<br/>" + ex.Message + "</br>xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
    Response.Write("<br/>length: " + ex.Source.Length.ToString());
    Response.Write("<br/>stack trace: " + ex.StackTrace);
    Response.Write("<br/>status: " + ex.Status.ToString());
    HttpWebResponse res = (HttpWebResponse)ex.Response;
    int code = Convert.ToInt32(res.StatusCode);

    Response.Write("<br/>Status Code: (" + code.ToString() + ") " + res.StatusCode.ToString());
    Response.Write("<br/>Status Description: " + res.StatusDescription);

    if (ex.InnerException != null)
    {
    Response.Write("<br/>innerexception: " + ex.InnerException.Message);
    }

    if (ex.Source.Length > 0)
    Response.Write("<br/>source: " + ex.Source.ToString());

    if (res != null)
    {
    for (int i = 0; i < res.Headers.Count; i++)
    {
    Response.Write("<br/>headers: " + i.ToString() + ": " + res.Headers[i]);
    }
    }
    }
    #endregion error
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
    string authorizationUrl = string.Empty;
    authorizationUrl = GetRequestToken();
    RedirectUserForAuthorization(authorizationUrl);
    }

}



=====================================================
Response after authorizing my app
=====================================================

Quer URL: http://query.yahooapis.com/v1/yql?q=select * from fantasysports.leagues where league_key='257.l.24009'

Auth Headers: Authorization: OAuth realm="yahooapis.com",oauth_consumer_key="dj0yJmk9em9YNXRnd1M3V0dzJmQ9WVdrOVQwMVpjVk55TlRBbWNHbzlNelUyT1RJNU16WXkmcz1jb25zdW1lcnNlY3JldCZ4PTFl",oauth_nonce="9031992",oauth_signature_method="HMAC-SHA1",oauth_timestamp="1320595886",oauth_token="A%3DELCbnAbYtEeCABm1pFQf89juSRPVZcrFQDsSo.MljhDoSJlVG6h3045c19dxIRwPZM9m5DVdJe9F4EfBGPzPwMf4K7lnQXVyIer3FxTxGMlSr.cSNT3pqK57PJLiX5e3M_5og.WWaT8Nw5le_FYcdps7M7hGZnlMmfT45993ltavtQMhTgyZT9QpcN2RrKXllRsnvr_pdFwoMLlHQAm_62iuEIA8Tzs5M8QXZ95yXuegHSCDBxqADzyyqbkYFnqbcm0PC3hg6iq0ADic.ypr_rvSR5dNsBFO.S7d9dtT0FWWxPjS_x0lSGp8GwQo422LTWjNxv1vPdL5UtO3d1bz6SdKKVI1q.NcvFVPgiFIQl96TFJAiSM9w9HymP0Auj384r0jmCq3cQmgj4LRPbCZ0Z2u0O87C4gufJ.ErTvXlALUd_2jE8G_8kUHt0v1euYShFJQ65.RJJy1OzPxGNoHj8GjQzWwDxv7oICIyyU3MK2Gdk19X7gycKFnOg3NcZaYwW5sZ13AMkit442ZVAXT4MedMT14Q1rX.KcoQaEUVSwa05.EUyAh8BuDIM579CX28YXD8Z7xRReMnTiAb1YYb_.kbqp76IloFPa2zGGi.boMz7CrUP8onVv8yi.xggRbURFGphgQfSJJgHbM8nvtxmTnqjGvCmta_PjD5rMx3KMaM8xXIM0C7f9FUhDPgESwVzsgqVRkoeyaRwkI7tbKACW5E8i.q2p9KsPPk2auT28iSK3c",oauth_version="1.0",oauth_signature="cuoneU2Foup2mnCjoY5wNzlF8ZM%3d"
Request: Authorization: OAuth realm="yahooapis.com",oauth_consumer_key="dj0yJmk9em9YNXRnd1M3V0dzJmQ9WVdrOVQwMVpjVk55TlRBbWNHbzlNelUyT1RJNU16WXkmcz1jb25zdW1lcnNlY3JldCZ4PTFl",oauth_nonce="9031992",oauth_signature_method="HMAC-SHA1",oauth_timestamp="1320595886",oauth_token="A%3DELCbnAbYtEeCABm1pFQf89juSRPVZcrFQDsSo.MljhDoSJlVG6h3045c19dxIRwPZM9m5DVdJe9F4EfBGPzPwMf4K7lnQXVyIer3FxTxGMlSr.cSNT3pqK57PJLiX5e3M_5og.WWaT8Nw5le_FYcdps7M7hGZnlMmfT45993ltavtQMhTgyZT9QpcN2RrKXllRsnvr_pdFwoMLlHQAm_62iuEIA8Tzs5M8QXZ95yXuegHSCDBxqADzyyqbkYFnqbcm0PC3hg6iq0ADic.ypr_rvSR5dNsBFO.S7d9dtT0FWWxPjS_x0lSGp8GwQo422LTWjNxv1vPdL5UtO3d1bz6SdKKVI1q.NcvFVPgiFIQl96TFJAiSM9w9HymP0Auj384r0jmCq3cQmgj4LRPbCZ0Z2u0O87C4gufJ.ErTvXlALUd_2jE8G_8kUHt0v1euYShFJQ65.RJJy1OzPxGNoHj8GjQzWwDxv7oICIyyU3MK2Gdk19X7gycKFnOg3NcZaYwW5sZ13AMkit442ZVAXT4MedMT14Q1rX.KcoQaEUVSwa05.EUyAh8BuDIM579CX28YXD8Z7xRReMnTiAb1YYb_.kbqp76IloFPa2zGGi.boMz7CrUP8onVv8yi.xggRbURFGphgQfSJJgHbM8nvtxmTnqjGvCmta_PjD5rMx3KMaM8xXIM0C7f9FUhDPgESwVzsgqVRkoeyaRwkI7tbKACW5E8i.q2p9KsPPk2auT28iSK3c",oauth_version="1.0",oauth_signature="cuoneU2Foup2mnCjoY5wNzlF8ZM%3d"
consumer secret: 6a771ee67b22540c587d48509391ff435c0493cb

consume rkey: dj0yJmk9em9YNXRnd1M3V0dzJmQ9WVdrOVQwMVpjVk55TlRBbWNHbzlNelUyT1RJNU16WXkmcz1jb25zdW1lcnNlY3JldCZ4PTFl

The remote server returned an error: (401) Unauthorized.
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
length: 6
stack trace: at System.Net.HttpWebRequest.GetResponse() at test_oauth_test.RetriveContacts() in c:\Users\charltoc\Desktop\OAuth-yahoo\oauth-test.aspx.cs:line 423
status: ProtocolError
Status Code: (401) Unauthorized
Status Description: Unauthorized
source: System
headers: 0: Accept-Encoding
headers: 1: 0
headers: 2: chunked
headers: 3: keep-alive
headers: 4: application/xml;charset=UTF-8
headers: 5: Sun, 06 Nov 2011 16:11:26 GMT
headers: 6: YTS/1.20.7
headers: 7: OAuth oauth_problem="OST_OAUTH_SIGNATURE_INVALID_ERROR", realm="yahooapis.com"

by
6 Replies
  • 3 weeks later... does anybody from Yahoo or with experience patrol these forums? I see an awful lot of unanswered questions.

    0
  • I am also faceing the same issue can anybody have solution what is the problem, I searched that it may be due to timestamp, i checked it but it didnt work


    QUOTE(charles @ 6 Nov 2011 8:16 AM)

    I have a .net app I am modifying that I can't seem to get fully working. I've included the code below and the reslts i'm writing back after that.
    using System;
    using System.Configuration;
    using System.Data;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Net;
    using System.IO;
    //using OAuth.Net.Common;
    //using OAuth.Net.Components;
    //using OAuth.Net.Consumer;
    using OAuth;
    using System.Text;
    using System.Xml;
    using System.Collections;
    using System.Collections.Generic;
    using System.Net.Mail;
    using System.Text.RegularExpressions;

    public partial class test_oauth_test : System.Web.UI.Page
    {
        public string ConsumerKey
        {
        get
        {
        return "dj0yJmk9em9YNXRnd1M3V0dzJmQ9WVdrOVQwMVpjVk55TlRBbWNHbzlNelUyT1RJNU16WXkmcz1jb25zdW1lcnNlY3JldCZ4PTFl";
        }
        }
        public string ConsumerSecret
        {
        get
        {
        return "6a771ee67b22540c587d48509391ff435c0493cb";
        }
        }

        public string OauthVerifier
        {
        get
        {
        try
        {
        if (!string.IsNullOrEmpty(Session["Oauth_Verifier"].ToString()))
        return Session["Oauth_Verifier"].ToString();
        else
        return string.Empty;
        }
        catch
        {
        return string.Empty;
        }
        }
        set
        {
        Session["Oauth_Verifier"] = value;
        }
        }
        public string OauthToken
        {
        get
        {
        if (!string.IsNullOrEmpty(Session["Oauth_Token"].ToString()))
        return Session["Oauth_Token"].ToString();
        else
        return string.Empty;
        }
        set
        {
        Session["Oauth_Token"] = value;
        }
        }
        public string OauthTokenSecret
        {
        get
        {
        if (!string.IsNullOrEmpty(Session["Oauth_Token_Secret"].ToString()))
        return Session["Oauth_Token_Secret"].ToString();
        else
        return string.Empty;
        }
        set
        {
        Session["Oauth_Token_Secret"] = value;
        }
        }
        public string OauthSessionHandle
        {
        get
        {
        if (!string.IsNullOrEmpty(Session["Oauth_Session_Handle"].ToString()))
        return Session["Oauth_Session_Handle"].ToString();
        else
        return string.Empty;
        }
        set
        {
        Session["Oauth_Session_Handle"] = value;
        }
        }
        public string OauthYahooGuid
        {
        get
        {
        try
        {
        if (!string.IsNullOrEmpty(Session["Oauth_Yahoo_Guid"].ToString()))
        return Session["Oauth_Yahoo_Guid"].ToString();
        else
        return string.Empty;
        }
        catch
        {
        return string.Empty;
        }
        }
        set
        {
        Session["Oauth_Yahoo_Guid"] = value;
        }
        }

        protected void Page_Load(object sender, EventArgs e)
        {
        if (!IsPostBack)
        {
        string oauth_token = Request["oauth_token"];
        string oauth_verifier = Request["oauth_verifier"];

        if (!string.IsNullOrEmpty(oauth_verifier) && oauth_verifier != "")
        {
        Button1.Visible = false;
        OauthToken = oauth_token;
        OauthVerifier = oauth_verifier;
        RegisterStartupScript("refresh", "");
        }
        else if (!string.IsNullOrEmpty(OauthVerifier))
        {
        Button1.Visible = false;
        if (string.IsNullOrEmpty(OauthYahooGuid))
        GetAccessToken(OauthToken, OauthVerifier);
        //RefreshToken();
        RetriveContacts();
        }
        }

        }
        private string GetRequestToken()
        {
        string authorizationUrl = string.Empty;
        OAuthBase oauth = new OAuthBase();

        Uri uri = new Uri("https://api.login.yahoo.com/oauth/v2/get_request_token");
        string nonce = oauth.GenerateNonce();
        string timeStamp = oauth.GenerateTimeStamp();
        string normalizedUrl;
        string normalizedRequestParameters;
        string sig = oauth.GenerateSignature(uri, ConsumerKey, ConsumerSecret, string.Empty, string.Empty, "GET", timeStamp, nonce, OAuthBase.SignatureTypes.PLAINTEXT, out normalizedUrl, out normalizedRequestParameters); //OAuthBase.SignatureTypes.HMACSHA1
        StringBuilder sbRequestToken = new StringBuilder(uri.ToString());
        sbRequestToken.AppendFormat("?oauth_nonce={0}&", nonce);
        sbRequestToken.AppendFormat("oauth_timestamp={0}&", timeStamp);
        sbRequestToken.AppendFormat("oauth_consumer_key={0}&", ConsumerKey);
        sbRequestToken.AppendFormat("oauth_signature_method={0}&", "PLAINTEXT"); //HMAC-SHA1
        sbRequestToken.AppendFormat("oauth_signature={0}&", sig);
        sbRequestToken.AppendFormat("oauth_version={0}&", "1.0");
        sbRequestToken.AppendFormat("oauth_callback={0}", HttpUtility.UrlEncode("http://localhost:34109/OAuth-yahoo/oauth-test.aspx"));
        //Response.Write(sbRequestToken.ToString());
        //Response.End();

        try
        {
        string returnStr = string.Empty;
        string[] returnData;

        HttpWebRequest req = (HttpWebRequest)WebRequest.Create(sbRequestToken.ToString());
        HttpWebResponse res = (HttpWebResponse)req.GetResponse();
        StreamReader streamReader = new StreamReader(res.GetResponseStream());
        returnStr = streamReader.ReadToEnd();
        returnData = returnStr.Split(new Char[] { '&' });
        //Response.Write(returnStr);

        int index;
        if (returnData.Length > 0)
        {
        //index = returnData[0].IndexOf("=");
        //string oauth_token = returnData[0].Substring(index + 1);
        //Session["Oauth_Token"] = oauth_token;

        index = returnData[1].IndexOf("=");
        string oauth_token_secret = returnData[1].Substring(index + 1);
        OauthTokenSecret = oauth_token_secret;

        //index = returnData[2].IndexOf("=");
        //int oauth_expires_in;
        //Int32.TryParse(returnData[2].Substring(index + 1), out oauth_expires_in);
        //Session["Oauth_Expires_In"] = oauth_expires_in;

        index = returnData[3].IndexOf("=");
        string oauth_request_auth_url = returnData[3].Substring(index + 1);
        authorizationUrl = HttpUtility.UrlDecode(oauth_request_auth_url);
        }
        }
        catch (WebException ex)
        {
        Response.Write(ex.Message);
        }
        return authorizationUrl;
        }
        private void RedirectUserForAuthorization(string authorizationUrl)
        {
        //Response.Redirect(authorizationUrl);
        RegisterStartupScript("openwin", "");
        }
        private void GetAccessToken(string oauth_token, string oauth_verifier)
        {
        OAuthBase oauth = new OAuthBase();

        Uri uri = new Uri("https://api.login.yahoo.com/oauth/v2/get_token");
        string nonce = oauth.GenerateNonce();
        string timeStamp = oauth.GenerateTimeStamp();
        string sig = ConsumerSecret + "%26" + OauthTokenSecret;

        StringBuilder sbAccessToken = new StringBuilder(uri.ToString());
        sbAccessToken.AppendFormat("?oauth_consumer_key={0}&", ConsumerKey);
        sbAccessToken.AppendFormat("oauth_signature_method={0}&", "PLAINTEXT"); //HMAC-SHA1
        sbAccessToken.AppendFormat("oauth_signature={0}&", sig);
        sbAccessToken.AppendFormat("oauth_timestamp={0}&", timeStamp);
        sbAccessToken.AppendFormat("oauth_version={0}&", "1.0");
        sbAccessToken.AppendFormat("oauth_token={0}&", oauth_token);
        sbAccessToken.AppendFormat("oauth_nonce={0}&", nonce);
        sbAccessToken.AppendFormat("oauth_verifier={0}", oauth_verifier);
        //Response.Write(sbAccessToken.ToString());
        //Response.End();

        try
        {
        string returnStr = string.Empty;
        string[] returnData;

        HttpWebRequest req = (HttpWebRequest)WebRequest.Create(sbAccessToken.ToString());
        HttpWebResponse res = (HttpWebResponse)req.GetResponse();
        StreamReader streamReader = new StreamReader(res.GetResponseStream());
        returnStr = streamReader.ReadToEnd();
        returnData = returnStr.Split(new Char[] { '&' });
        //Response.Write(returnStr);
        //Response.End();

        int index;
        if (returnData.Length > 0)
        {
        index = returnData[0].IndexOf("=");
        OauthToken = returnData[0].Substring(index + 1);

        index = returnData[1].IndexOf("=");
        string oauth_token_secret = returnData[1].Substring(index + 1);
        OauthTokenSecret = oauth_token_secret;

        //index = returnData[2].IndexOf("=");
        //int oauth_expires_in;
        //Int32.TryParse(returnData[2].Substring(index + 1), out oauth_expires_in);

        index = returnData[3].IndexOf("=");
        string oauth_session_handle = returnData[3].Substring(index + 1);
        OauthSessionHandle = oauth_session_handle;

        //index = returnData[4].IndexOf("=");
        //int oauth_authorization_expires_in;
        //Int32.TryParse(returnData[4].Substring(index + 1), out oauth_authorization_expires_in);

        index = returnData[5].IndexOf("=");
        string xoauth_yahoo_guid = returnData[5].Substring(index + 1);
        OauthYahooGuid = xoauth_yahoo_guid;
        }
        }
        catch (WebException ex)
        {
        Response.Write(ex.Message);
        }
        }
        private void RefreshToken()
        {
        OAuthBase oauth = new OAuthBase();

        Uri uri = new Uri("https://api.login.yahoo.com/oauth/v2/get_token");
        string nonce = oauth.GenerateNonce();
        string timeStamp = oauth.GenerateTimeStamp();
        string sig = ConsumerSecret + "%26" + OauthTokenSecret;

        StringBuilder sbrefreshToken = new StringBuilder(uri.ToString());
        sbrefreshToken.AppendFormat("?oauth_consumer_key={0}&", ConsumerKey);
        sbrefreshToken.AppendFormat("oauth_signature_method={0}&", "PLAINTEXT"); //HMAC-SHA1
        sbrefreshToken.AppendFormat("oauth_signature={0}&", sig);
        sbrefreshToken.AppendFormat("oauth_timestamp={0}&", timeStamp);
        sbrefreshToken.AppendFormat("oauth_version={0}&", "1.0");
        sbrefreshToken.AppendFormat("oauth_token={0}&", OauthToken);
        sbrefreshToken.AppendFormat("oauth_session_handle={0}&", OauthSessionHandle);
        sbrefreshToken.AppendFormat("oauth_nonce={0}", nonce);

        try
        {
        string returnStr = string.Empty;
        string[] returnData;

        HttpWebRequest req = (HttpWebRequest)WebRequest.Create(sbrefreshToken.ToString());
        HttpWebResponse res = (HttpWebResponse)req.GetResponse();
        StreamReader streamReader = new StreamReader(res.GetResponseStream());
        returnStr = streamReader.ReadToEnd();
        returnData = returnStr.Split(new Char[] { '&' });
        //Response.Write(returnStr);

        int index;
        if (returnData.Length > 0)
        {
        index = returnData[0].IndexOf("=");
        string oauth_token = returnData[0].Substring(index + 1);
        OauthToken = oauth_token;

        index = returnData[1].IndexOf("=");
        string oauth_token_secret = returnData[1].Substring(index + 1);
        OauthTokenSecret = oauth_token_secret;

        //index = returnData[2].IndexOf("=");
        //int oauth_expires_in;
        //Int32.TryParse(returnData[2].Substring(index + 1), out oauth_expires_in);

        index = returnData[3].IndexOf("=");
        string oauth_session_handle = returnData[3].Substring(index + 1);
        OauthSessionHandle = oauth_session_handle;

        //index = returnData[4].IndexOf("=");
        //int oauth_authorization_expires_in;
        //Int32.TryParse(returnData[4].Substring(index + 1), out oauth_authorization_expires_in);

        index = returnData[5].IndexOf("=");
        string xoauth_yahoo_guid = returnData[5].Substring(index + 1);
        OauthYahooGuid = xoauth_yahoo_guid;
        }
        }
        catch (WebException ex)
        {
        Response.Write(ex.Message);
        }
        }
        private void RetriveContacts()
        {
        //Response.Write("Test!");
        //OAuthBase oauth = new OAuthBase();
        //Uri uri = new Uri("http://query.yahooapis.com/v1/yql?q=select%20*%20from%20fantasysports.leagues%20where%20league_key%3D'257.l.24009'&diagnostics=true");
        //string nonce = oauth.GenerateNonce();
        //string timeStamp = oauth.GenerateTimeStamp();
        //string normalizedUrl;
        //string normalizedRequestParameters;
        //string sig = oauth.GenerateSignature(uri, ConsumerKey, ConsumerSecret, OauthToken, OauthTokenSecret, "GET", timeStamp, nonce, OAuthBase.SignatureTypes.HMACSHA1, out normalizedUrl, out normalizedRequestParameters);
        //StringBuilder getdata = new StringBuilder(uri.ToString());
        //Response.Write("URL: " + getdata.ToString());
        //try
        //{
        // string returnStr = string.Empty;
        // HttpWebRequest req = (HttpWebRequest)WebRequest.Create(getdata.ToString());
        // req.Method="GET";
        // string authHeader = "Authorization: OAuth " +
        // "realm=\"yahooapis.com\"" +
        // ",oauth_consumer_key=\"" + ConsumerKey + "\"" +
        // ",oauth_nonce=\"" + nonce + "\"" +
        // ",oauth_signature_method=\"HMAC-SHA1\"" +
        // ",oauth_timestamp=\"" + timeStamp + "\"" +
        // ",oauth_token=\"" + OauthToken + "\"" +
        // ",oauth_version=\"1.0\"" +
        // ",oauth_signature=\"" + HttpUtility.UrlEncode(sig) + "\"";

        // req.Headers.Add(authHeader);

        // HttpWebResponse res = (HttpWebResponse)req.GetResponse();
        // StreamReader streamReader = new StreamReader(res.GetResponseStream());
        // returnStr = streamReader.ReadToEnd();
        // Response.Write(returnStr);
        //}
        //catch(WebException ex)
        //{
        // Response.Write(ex.Message.ToString());
        //}

        OAuthBase oauth = new OAuthBase();
        //Uri uri = new Uri("http://social.yahooapis.com/v1/user/" + OauthYahooGuid + "/contacts?format=XML");
        Uri uri = new Uri("http://query.yahooapis.com/v1/yql?q=select%20*%20from%20fantasysports.leagues%20where%20league_key%3D'257.l.24009'");
        string nonce = oauth.GenerateNonce();
        string timeStamp = oauth.GenerateTimeStamp();
        string normalizedUrl;
        string normalizedRequestParameters;
        string sig = oauth.GenerateSignature(uri, ConsumerKey, ConsumerSecret, OauthToken, OauthTokenSecret, "GET", timeStamp, nonce, OAuthBase.SignatureTypes.HMACSHA1, out normalizedUrl, out normalizedRequestParameters);

        StringBuilder sbGetContacts = new StringBuilder(uri.ToString());

        Response.Write("Quer URL: " + sbGetContacts.ToString() + "
    ");
        //Response.End();
        try
        {
        string returnStr = string.Empty;
        HttpWebRequest req = (HttpWebRequest)WebRequest.Create(sbGetContacts.ToString());

        Console.WriteLine("
    Request: " + req.ToString() + "
    ");

        req.Method = "GET";

        string authHeader = "Authorization: OAuth " +
        "realm=\"yahooapis.com\"" +
        ",oauth_consumer_key=\"" + ConsumerKey + "\"" +
        ",oauth_nonce=\"" + nonce + "\"" +
        ",oauth_signature_method=\"HMAC-SHA1\"" +
        ",oauth_timestamp=\"" + timeStamp + "\"" +
        ",oauth_token=\"" + OauthToken + "\"" +
        ",oauth_version=\"1.0\"" +
        ",oauth_signature=\"" + HttpUtility.UrlEncode(sig) + "\"";

        Response.Write("
    Auth Headers: " + authHeader);

        req.Headers.Add(authHeader);

        Response.Write("
    Request: " + req.Headers.ToString());

        HttpWebResponse res = (HttpWebResponse)req.GetResponse();

        Response.Write("
    Response: " + res.ToString());

        StreamReader streamReader = new StreamReader(res.GetResponseStream());
        returnStr = streamReader.ReadToEnd();
        //XmlDocument xmldoc = new XmlDocument();
        //xmldoc.LoadXml(returnStr);
        //XmlNodeList elemList = xmldoc.DocumentElement.GetElementsByTagName("fields");

        //ArrayList emails = new ArrayList();
        //for (int i = 0; i < elemList.Count; i++)
        //{
        // if (elemList[i].ChildNodes[1].InnerText == "email")
        // emails.Add(elemList[i].ChildNodes[2].InnerText);
        // //Response.Write(elemList[i].ChildNodes[2].InnerText + "
    ");
        //}
        //grvMyFriends.DataSource = emails;
        //grvMyFriends.DataBind();
        }
        #region error
        catch (WebException ex)
        {
        Response.Write("
    consumer secret: " + ConsumerSecret + "
    ");
        Response.Write("
    consume rkey: " + ConsumerKey + "
    ");

        //Response.Write(ex.Message);
        Response.Write("
    " + ex.Message + "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
        Response.Write("
    length: " + ex.Source.Length.ToString());
        Response.Write("
    stack trace: " + ex.StackTrace);
        Response.Write("
    status: " + ex.Status.ToString());
        HttpWebResponse res = (HttpWebResponse)ex.Response;
        int code = Convert.ToInt32(res.StatusCode);

        Response.Write("
    Status Code: (" + code.ToString() + ") " + res.StatusCode.ToString());
        Response.Write("
    Status Description: " + res.StatusDescription);

        if (ex.InnerException != null)
        {
        Response.Write("
    innerexception: " + ex.InnerException.Message);
        }

        if (ex.Source.Length > 0)
        Response.Write("
    source: " + ex.Source.ToString());

        if (res != null)
        {
        for (int i = 0; i < res.Headers.Count; i++)
        {
        Response.Write("
    headers: " + i.ToString() + ": " + res.Headers[i]);
        }
        }
        }
        #endregion error
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
        string authorizationUrl = string.Empty;
        authorizationUrl = GetRequestToken();
        RedirectUserForAuthorization(authorizationUrl);
        }

    }



    =====================================================
    Response after authorizing my app
    =====================================================

    Quer URL: http://query.yahooapis.com/v1/yql?q=select * from fantasysports.leagues where league_key='257.l.24009'

    Auth Headers: Authorization: OAuth realm="yahooapis.com",oauth_consumer_key="dj0yJmk9em9YNXRnd1M3V0dzJmQ9WVdrOVQwMVpjVk55TlRBbWNHbzlNelUyT1RJNU16WXkmcz1jb25zdW1lcnNlY3JldCZ4PTFl",oauth_nonce="9031992",oauth_signature_method="HMAC-SHA1",oauth_timestamp="1320595886",oauth_token="A%3DELCbnAbYtEeCABm1pFQf89juSRPVZcrFQDsSo.MljhDoSJlVG6h3045c19dxIRwPZM9m5DVdJe9F4EfBGPzPwMf4K7lnQXVyIer3FxTxGMlSr.cSNT3pqK57PJLiX5e3M_5og.WWaT8Nw5le_FYcdps7M7hGZnlMmfT45993ltavtQMhTgyZT9QpcN2RrKXllRsnvr_pdFwoMLlHQAm_62iuEIA8Tzs5M8QXZ95yXuegHSCDBxqADzyyqbkYFnqbcm0PC3hg6iq0ADic.ypr_rvSR5dNsBFO.S7d9dtT0FWWxPjS_x0lSGp8GwQo422LTWjNxv1vPdL5UtO3d1bz6SdKKVI1q.NcvFVPgiFIQl96TFJAiSM9w9HymP0Auj384r0jmCq3cQmgj4LRPbCZ0Z2u0O87C4gufJ.ErTvXlALUd_2jE8G_8kUHt0v1euYShFJQ65.RJJy1OzPxGNoHj8GjQzWwDxv7oICIyyU3MK2Gdk19X7gycKFnOg3NcZaYwW5sZ13AMkit442ZVAXT4MedMT14Q1rX.KcoQaEUVSwa05.EUyAh8BuDIM579CX28YXD8Z7xRReMnTiAb1YYb_.kbqp76IloFPa2zGGi.boMz7CrUP8onVv8yi.xggRbURFGphgQfSJJgHbM8nvtxmTnqjGvCmta_PjD5rMx3KMaM8xXIM0C7f9FUhDPgESwVzsgqVRkoeyaRwkI7tbKACW5E8i.q2p9KsPPk2auT28iSK3c",oauth_version="1.0",oauth_signature="cuoneU2Foup2mnCjoY5wNzlF8ZM%3d"
    Request: Authorization: OAuth realm="yahooapis.com",oauth_consumer_key="dj0yJmk9em9YNXRnd1M3V0dzJmQ9WVdrOVQwMVpjVk55TlRBbWNHbzlNelUyT1RJNU16WXkmcz1jb25zdW1lcnNlY3JldCZ4PTFl",oauth_nonce="9031992",oauth_signature_method="HMAC-SHA1",oauth_timestamp="1320595886",oauth_token="A%3DELCbnAbYtEeCABm1pFQf89juSRPVZcrFQDsSo.MljhDoSJlVG6h3045c19dxIRwPZM9m5DVdJe9F4EfBGPzPwMf4K7lnQXVyIer3FxTxGMlSr.cSNT3pqK57PJLiX5e3M_5og.WWaT8Nw5le_FYcdps7M7hGZnlMmfT45993ltavtQMhTgyZT9QpcN2RrKXllRsnvr_pdFwoMLlHQAm_62iuEIA8Tzs5M8QXZ95yXuegHSCDBxqADzyyqbkYFnqbcm0PC3hg6iq0ADic.ypr_rvSR5dNsBFO.S7d9dtT0FWWxPjS_x0lSGp8GwQo422LTWjNxv1vPdL5UtO3d1bz6SdKKVI1q.NcvFVPgiFIQl96TFJAiSM9w9HymP0Auj384r0jmCq3cQmgj4LRPbCZ0Z2u0O87C4gufJ.ErTvXlALUd_2jE8G_8kUHt0v1euYShFJQ65.RJJy1OzPxGNoHj8GjQzWwDxv7oICIyyU3MK2Gdk19X7gycKFnOg3NcZaYwW5sZ13AMkit442ZVAXT4MedMT14Q1rX.KcoQaEUVSwa05.EUyAh8BuDIM579CX28YXD8Z7xRReMnTiAb1YYb_.kbqp76IloFPa2zGGi.boMz7CrUP8onVv8yi.xggRbURFGphgQfSJJgHbM8nvtxmTnqjGvCmta_PjD5rMx3KMaM8xXIM0C7f9FUhDPgESwVzsgqVRkoeyaRwkI7tbKACW5E8i.q2p9KsPPk2auT28iSK3c",oauth_version="1.0",oauth_signature="cuoneU2Foup2mnCjoY5wNzlF8ZM%3d"
    consumer secret: 6a771ee67b22540c587d48509391ff435c0493cb

    consume rkey: dj0yJmk9em9YNXRnd1M3V0dzJmQ9WVdrOVQwMVpjVk55TlRBbWNHbzlNelUyT1RJNU16WXkmcz1jb25zdW1lcnNlY3JldCZ4PTFl

    The remote server returned an error: (401) Unauthorized.
    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    length: 6
    stack trace: at System.Net.HttpWebRequest.GetResponse() at test_oauth_test.RetriveContacts() in c:\Users\charltoc\Desktop\OAuth-yahoo\oauth-test.aspx.cs:line 423
    status: ProtocolError
    Status Code: (401) Unauthorized
    Status Description: Unauthorized
    source: System
    headers: 0: Accept-Encoding
    headers: 1: 0
    headers: 2: chunked
    headers: 3: keep-alive
    headers: 4: application/xml;charset=UTF-8
    headers: 5: Sun, 06 Nov 2011 16:11:26 GMT
    headers: 6: YTS/1.20.7
    headers: 7: OAuth oauth_problem="OST_OAUTH_SIGNATURE_INVALID_ERROR", realm="yahooapis.com"

    0
  • i know this was a few months ago, but did you ever figure this out? 

    QUOTE(charles @ 21 Nov 2011 6:48 AM)

    3 weeks later... does anybody from Yahoo or with experience patrol these forums? I see an awful lot of unanswered questions.

    0
  • I had same problem :|
    0
  • Anyone figure this out?....

    0
  • Any one ???

    0

Recent Posts

in OAuth General Discussion YDN SDKs