Issue with Yahoo Sports API

无人久伴 提交于 2019-12-07 03:01:32

问题


I am trying to setup a simple app that consumes the Yahoo Fantasy sports API, and allows queries to be executed through 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;
    }

There is some hidden in here, I have a custom class to make the url ok for the Yahoo API. Here is the structure of the URL that the OAuth.GetUrl() method returns

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

With this, I always seem to get Authentication Error. The table fantasysports.games requires a higher security level than is provided, you provided APP but at least USER is expected

I am not sure what this means, I am passing my auth information to the api, but it seems I need more permissions. Has anyone have a working example of this. If needed, I can supply code to the GetUrl method, but it is more or less a copy paste from here

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

Let me know if you have any questions. Thanks!


回答1:


I couldn't make it work using the YQL, but I was able to get the players data and draft result etc, by directly using the APIs at https://fantasysports.yahooapis.com/fantasy/v2/

e.g. to get NFL player David Johnson details:

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

Host: fantasysports.yahooapis.com

Authorization: Bearer [[Base64 encoded ClientId:Secret]]

Content-Type: application/json



来源:https://stackoverflow.com/questions/9877486/issue-with-yahoo-sports-api

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!