C# 使用OAuth的YQL查询提供未经授权的

C# 使用OAuth的YQL查询提供未经授权的,c#,oauth,yql,C#,Oauth,Yql,我一直在用私有查询尝试YQL 我正在使用雅虎开发者网络的示例代码。 代码如下所示 class Program { static void Main(string[] args) { string consumerKey = "dj0yJmk9SzhxdHFrY0pHOTZ1JmQ9WVdrOWRVTTBOM1JhTkRRbWNHbzlNQS0tJnM9Y29uc3VtZXJzZWNyZXQmeD01Ng--"; string consumerS

我一直在用私有查询尝试YQL

我正在使用雅虎开发者网络的示例代码。

代码如下所示

 class Program
{
    static void Main(string[] args)
    {
        string consumerKey = "dj0yJmk9SzhxdHFrY0pHOTZ1JmQ9WVdrOWRVTTBOM1JhTkRRbWNHbzlNQS0tJnM9Y29uc3VtZXJzZWNyZXQmeD01Ng--";
        string consumerSecret = "34fd168eb4a91cd4c5cb2f9ec60e4ed74b278f00";
        var uri = new Uri("http://query.yahooapis.com/v1/yql?q=select%20*%20from%20yahoo.finance.quotes%20where%20symbol%20in%20(%22AAPL%22)&env=store://datatables.org/alltableswithkeys");
        string url, param;
        var oAuth = new OAuthBase();
        var nonce = oAuth.GenerateNonce();
        var timeStamp = oAuth.GenerateTimeStamp();
        var signature = oAuth.GenerateSignature(uri, consumerKey,
        consumerSecret, string.Empty, string.Empty, "GET", timeStamp, nonce,
        OAuthBase.SignatureTypes.HMACSHA1, out url, out param);

        using (WebRequest.Create(string.Format("{0}?{1}&oauth_signature={2}",
        url, param, signature)).GetResponse()) { }
    }
}
它得到了遵守,但当我执行时,它给了我运行时异常

远程服务器返回错误:(401)未经授权


通过大量的研究,我发现有两种类型的OAuth。2腿和3腿,上面的这一个是2腿,这间接意味着它不会向用户提供登录页面。在这种情况下,yahoo登录,因此它无法获取与用户私有/相关的数据。那么您是如何解决这个问题的?我也在尝试同样的方法来获取符号,但是得到了同样的异常。当我使用公共url时,它工作得很好。你就是这么做的吗?