Проблема с Yahoo Sports API - PullRequest
       17

Проблема с Yahoo Sports API

6 голосов
/ 26 марта 2012

Я пытаюсь настроить простое приложение, которое использует спортивный 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 ()

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 требует более высокого уровня безопасности, чем предусмотрено, вы предоставили приложение, но ожидается, что по крайней мере ПОЛЬЗОВАТЕЛЬ

Я не уверен, что это значит, я передаю свою информацию об аутентификации в API, но, похоже,Мне нужно больше разрешений.У кого-нибудь есть рабочий пример этого.При необходимости я могу предоставить код для метода GetUrl, но это более или менее вставка копии здесь

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

Дайте мне знать, если у вас есть какие-либо вопросы.Спасибо!

1 Ответ

0 голосов
/ 09 августа 2017

Я не мог заставить его работать с использованием YQL, но я смог получить данные об игроках, результаты черновиков и т. Д., Напрямую используя API на https://fantasysports.yahooapis.com/fantasy/v2/

, например, чтобы получить игрока НФЛ Дэвида Джонсонаподробнее:

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

Хост: fantasysports.yahooapis.com

Авторизация: Bearer [[Код клиента Base64: секретный идентификатор]]

Тип содержимого: application / json

...