在这种情况下,您正在访问公共数据(而不是用户私有数据),因此您将使用 OAuth 两腿授权。YDN 网站上的这个页面是不同数据类型的一个很好的起点:私有数据 v 公共数据。
两条腿意味着您需要以某种方式(使用您的应用程序密钥和秘密)签署您的请求,但没有用户授权步骤。OAuth 签名通常很棘手,因此大多数人会使用 OAuth 库。
YQL 代码示例页面上有一个很好的演练说明了这一点。向下滚动到“查询公共数据”部分,查看使用签名的两条腿请求调用 YQL 的示例。
<?php
include_once("yosdk/lib/Yahoo.inc");
define("API_KEY","your-api-key-here");
define("SHARED_SECRET","your-secret-here");
YahooLogger::setDebug(true);
$twoleg = new YahooApplication (API_KEY, SHARED_SECRET);
$query = "select * from yahoo.finance.historicaldata where symbol =\"YHOO\" and startDate = \"2011-12-01\" and endDate = \"2011-12-04\"";
$results = $twoleg->query ($query);
print_r ($results);
运行上面的代码会给出一些历史股票数据,例如:
[quote] => Array
(
[0] => stdClass Object
(
[date] => 2011-12-02
[Date] => 2011-12-02
[Open] => 16.31
[High] => 16.41
[Low] => 16.03
[Close] => 16.05
[Volume] => 22714500
[Adj_Close] => 16.05
)
[1] => stdClass Object
(
[date] => 2011-12-01
[Date] => 2011-12-01
[Open] => 16.42
[High] => 16.46
[Low] => 16.09
[Close] => 16.23
[Volume] => 47059800
[Adj_Close] => 16.23
)
)
当然你问的是 C#,但希望这能给你更多关于需要什么的背景知识。我会为 C# 搜索两条腿的 OAuth 解决方案 - 这个问题看起来有一些可行的答案:有人使用 DNOA 实现了 2 条腿 OAuth 吗?.
这是另一种可能的解决方案,一个为您执行双腿 OAuth 签名的 Web 服务:OAuth-ify this: 2-legged OAuth service for YQL。