2012-04-02 29 views
7

我正在使用此YQL命令以XML格式訪問股票報價信息。問題在於它會在一連串命中後超時並拒絕。我想我需要插入我的API密鑰,所以它不認爲它是機器人。如何在雅虎的YQL中使用API​​密鑰?

我正在使用SharePoint來處理XML。

http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quotes%20where%20symbol%20in%20(%22AAPL%22)&env=store://datatables.org/alltableswithkeys 

這就是它的限制。

Per application limit (identified by your Access Key): 100,000 calls per day. 
Per IP limits: /v1/public/: 1,000 calls per hour; /v1/yql/: 10,000 calls per hour. 

我試圖讓每個應用程序的限制爲每天100,000個電話。或者我想每小時有10000個電話也很好。有什麼建議麼?謝謝你的幫助。

+0

YQL使用OAuth,你需要創建一個快捷鍵(HTTP:// developer.yahoo.com/dashboard/createKey.html)。 – salathe 2012-04-10 10:44:29

+2

我有訪問鍵只是不知道該怎麼做或放在哪裏。謝謝。 – zen 2012-04-11 17:21:30

+0

嗨 - 我知道這是一箇舊帖子,但想知道是否使用javascript/jquery找到解決方案?我也打了雅虎的數據限制,但無法找到如何使用用戶密鑰。 – 2016-02-29 09:29:22

回答

2

您需要使用OAuth並執行交換令牌的複雜過程。一旦你有一個access_token和一個token_secret,你可以使用它們進行認證的請求,直到它們到期。

整個工作流程總結爲here

你需要通過上面的鏈接描述的一步一步的過程,但基本上是什麼,你會做的是:

  1. here得到一個request_token。
  2. 將用戶重定向到Yahoo授權頁面。
  3. 檢索用戶重定向回頁面時查詢字符串中的oauth_verifier
  4. 交換request_tokenoauth_verifieraccess_tokentoken_secret
  5. 然後,您可以使用access_tokentoken_secret進行已認證的請求。

由於您使用.Net,您可以使用此示例代碼發佈here使您的生活更輕鬆。

0

希望你已經使用Yahoo.inc,讓您的訪問令牌 因此就使用

$session = YahooSession::requireSession(CONSUMER_KEY,CONSUMER_SECRET, APP_ID); 
    $mails=$session->query('your query limit 10'); 

feting訪問