【问题标题】:How do I get started with oauth for YQL for historical stock data?如何开始使用 oauth for YQL 获取历史股票数据?
【发布时间】:2012-01-20 12:35:16
【问题描述】:

在搜索市场数据馈送时,我被引导到 YQL 以获取 yahoo Finance。它看起来很棒,而且对于公共使用/查询非常简单,但是公共版本的每日限制对我的需求来说太小了。我得到了我的雅虎 ID 来开始使用 oauth,但我找不到任何好的例子关于我正在尝试做的事情......

我想在 C# 中使用我的桌面应用程序“登录”,然后继续下载感兴趣的数据。如何使用誓言维度?作为参考,我的背景是使用 html 敏捷包进行简单的屏幕抓取,我从未有任何 Web 服务经验。任何人都可以让我开始。我现在被困住了(并且整个星期都在这上面)。提前谢谢...

【问题讨论】:

    标签: web-services oauth yql yahoo-api yahoo-finance


    【解决方案1】:

    在这种情况下,您访问的是公共数据(而不是用户私有数据),因此您将使用 OAuth 两方授权。 YDN 网站上的这个页面是不同数据类型的一个很好的起点:Private Data v Public Data

    双腿意味着您需要以某种方式签署您的请求(使用您的应用程序密钥和秘密),但没有用户授权步骤。 OAuth 签名通常很棘手,因此大多数人会使用 OAuth 库。

    YQL Code Examples 页面上有一个很好的演练说明了这一点。向下滚动到“查询公共数据”部分,查看使用签名的两条腿请求调用 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 解决方案 - 这个问题看起来有一些可行的答案:Has anybody implemented 2 Legged OAuth using DNOA?

    这是另一种可能的解决方案,一个为您执行双向 OAuth 签名的 Web 服务:OAuth-ify this: 2-legged OAuth service for YQL

    【讨论】:

    • 这是一个巨大的帮助,不管 C# 与否...不太清楚我的下一步是 Web 服务的全新内容,非常感谢..
    • 不幸的是,yahoo.finance.historicaldata 在几次之后阻止请求,如另一个 stackoverflow 答案中所述。有谁知道如何避免这种情况?
    猜你喜欢
    • 2014-09-25
    • 2016-08-13
    • 2011-03-23
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 2022-01-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多