2012-03-26 13 views
6

Estoy intentando configurar una aplicación simple que consuma la API de deportes de Yahoo Fantasy y permita que las consultas se ejecuten a través de YQL.Problema con Yahoo Sports 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; 
    } 

Existe cierta ocultos aquí, tengo una clase personalizada para hacer la url bien para el API de Yahoo. Esta es la estructura de la URL que el método OAuth.GetUrl() devuelve

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

Con esto, siempre parecen llegar falla la autenticación. La tabla fantasysports.games requiere un nivel de seguridad más alto que el proporcionado, usted proporcionó la APLICACIÓN pero al menos se espera USER

No estoy seguro de lo que esto significa, estoy pasando mi información de autenticación a la API, pero parece que necesito más permisos. Alguien tiene un ejemplo de esto. Si es necesario, yo puede suministrar código al método getURL, pero es más o menos un copiar y pegar de aquí

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

Déjeme saber si usted tiene alguna pregunta. ¡Gracias!

+0

¿alguna vez resolver esto? –

+0

@RyanDrost No lo hice –

+0

Si alguien tiene alguna idea de cómo obtener datos de jugadores simples (que deberían estar a disposición del público), por favor, ayúdenme. ¿Alguien ha descubierto cómo hacer que un comando YQL funcione en su aplicación web MVC? – dave317

Respuesta

0

no pude hacer que funcione mediante el YQL, pero yo era capaz de obtener el resultado de los jugadores y los datos de proyecto, etc., mediante el uso de las API directamente en https://fantasysports.yahooapis.com/fantasy/v2/

por ejemplo, Detalles Para obtener jugador de la NFL David Johnson:

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

Anfitrión: fantasysports.yahooapis.com

Autorización: Portador [[ Base 64 codificado ClientId: secreto]]

Content-Type: application/json