我正在尝试建立一个使用Yahoo Fantasy体育API并允许通过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;
}
这里有一些隐藏的东西,我有一个自定义类,可以使Yahoo API的网址正常。这是OAuth.GetUrl()方法返回的URL的结构
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要求的安全级别高于提供的安全级别(您提供的是APP,但至少应为USER)
我不确定这意味着什么,我正在将我的身份验证信息传递给api,但似乎我需要更多权限。有没有人有一个可行的例子。如果需要,我可以向GetUrl方法提供代码,但它或多或少是此处的复制粘贴
http://andy.edinborough.org/Getting-Started-with-Yahoo-and-OAuth
如果您有任何疑问,请告诉我。谢谢!
最佳答案
我无法使用YQL使其正常运行,但是我可以通过直接在https://fantasysports.yahooapis.com/fantasy/v2/上使用API来获取玩家数据和草稿结果等
例如获得NFL球员David Johnson的详细信息:
GET/fantasy/v2/players;player_keys=371.p.28474 HTTP/1.1
主持人:fantasysports.yahooapis.com
授权:承载[[Base64编码的ClientId:Secret]]
内容类型:application/json