2012-03-26 82 views
6

我想设置一个简单的应用程序,消费雅虎幻想体育API,并允许查询通过YQL执行。问题与雅虎体育API

class Program 
{ 
    static void Main(string[] args) 
    { 

     string yql = "select * from fantasysports.games where game_key in ('268')"; 
     //var xml = QueryYahoo(yql); 
     // Console.Write(xml.InnerText); 

     string consumerKey = "--my key--"; 
     string consumerSecret = "--my secret--"; 

     var xml = QueryYahoo(yql, consumerKey, consumerSecret); 
     Console.Write(xml.InnerText); 
    } 

    private static XmlDocument QueryYahoo(string yql) 
    { 
     string url = "http://query.yahooapis.com/v1/public/yql?format=xml&diagnostics=false&q=" + Uri.EscapeUriString(yql); 

     var req = System.Net.HttpWebRequest.Create(url); 
     var xml = new XmlDocument(); 
     using (var res = req.GetResponse().GetResponseStream()) 
     { 
      xml.Load(res); 
     } 
     return xml; 
    } 

    private static XmlDocument QueryYahoo(string yql, string consumerKey, string consumerSecret) 
    { 
     string url = "http://query.yahooapis.com/v1/yql?format=xml&diagnostics=true&q=" + Uri.EscapeUriString(yql); 
     url = OAuth.GetUrl(url, consumerKey, consumerSecret); 

     var req = System.Net.HttpWebRequest.Create(url); 
     var xml = new XmlDocument(); 
     using (var res = req.GetResponse().GetResponseStream()) 
     { 
      xml.Load(res); 
     } 
     return xml; 
    } 

有一些隐藏在这里,我有一个自定义的类,使雅虎API的网址正常。下面是URL的是,OAuth.GetUrl()方法返回

http://query.yahooapis.com/v1/yql?diagnostics=true&format=xml&oauth_consumer_key=mykey&oauth_nonce=rlfmxniesu&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1332785286&oauth_version=1.0&q=select%20%2A%20from%20fantasysports.games%20where%20game_key%20in%20%28%27268%27%29&oauth_signature=NYKIbhjoirJwB6ADxVq5DOgLW1w%3D

有了这个结构,我似乎总是得到 认证错误。表fantasysports.games需要比提供的更高的安全级别,您提供的应用程序,但至少USER是预计

我不知道这是什么意思,我传递我的身份验证信息到API,但它似乎我需要更多的权限。有没有人有这个工作的例子。如果需要,我可以提供代码getURL方法,但它或多或少复制粘贴从这里

http://andy.edinborough.org/Getting-Started-with-Yahoo-and-OAuth

让我知道如果您有任何问题。谢谢!

+0

你有没有想出解决办法? – 2012-09-14 20:51:08

+0

@RyanDrost我没有 – 2012-09-25 14:19:15

+0

如果任何人有任何想法如何拉简单的球员数据(应该公开?),请帮助我。有没有人想过如何在他们的MVC网络应用程序中使YQL命令工作? – dave317 2017-05-15 03:08:43

回答

0

我不能使它工作使用YQL,但我可以在https://fantasysports.yahooapis.com/fantasy/v2/

例如得到玩家的数据和结果草案等,通过直接使用API获得NFL球员大卫·约翰逊的详细信息:

GET /fantasy/v2/players;player_keys=371.p.28474 HTTP/1.1

主持人:fantasysports.yahooapis.com

授权:承载[ Base64编码的客户端Id:揭秘]

内容类型:应用程序/ JSON