Я пытаюсь настроить простое приложение, которое использует спортивный API Yahoo Fantasy и позволяет выполнять запросы через YQL.
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;
}
Здесь кое-что скрыто. У меня есть пользовательский класс, чтобы сделать URL-адрес пригодным для API Yahoo. Вот структура URL-адреса, который возвращает метод OAuth.GetUrl()
С этим у меня всегда получается Ошибка аутентификации. Для таблицы fantasysports.games требуется более высокий уровень безопасности, чем предусмотрено, вы указали APP, но ожидается, по крайней мере, USER
Я не уверен, что это значит, я передаю свою информацию для аутентификации в API, но, похоже, мне нужно больше разрешения. У кого-нибудь есть рабочий пример этого. При необходимости я могу предоставить код для метода GetUrl, но это более или менее скопированная вставка отсюда
http://andy.edinborough.org/Getting-Started-with-Yahoo-and-OAuth
Дайте знать, если у вас появятся вопросы.Спасибо!