Как использовать ключ API с YQL Yahoo? - PullRequest
7 голосов
/ 03 апреля 2012

Я использую эту команду YQL для доступа к информации о котировках акций в формате XML.Проблема состоит в том, что он продолжает рассчитывать время и отклонять после нескольких попаданий.Я думаю, что мне нужно подключить мой ключ 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 звонков в час это тоже хорошо.Какие-либо предложения?Спасибо за любую помощь.

Ответы [ 2 ]

3 голосов
/ 15 ноября 2012

Вам необходимо использовать OAuth и пройти сложную процедуру обмена токенами. Если у вас есть access_token и token_secret, вы можете использовать их для выполнения аутентифицированных запросов до истечения срока их действия.

Полный рабочий процесс суммируется здесь .

Вам нужно будет пройти пошаговую процедуру, описанную в ссылке выше, но, по сути, вы будете делать следующее:

  1. Получите запрос-токен от здесь .
  2. Перенаправить пользователя на страницу авторизации Yahoo.
  3. Получите oauth_verifier, который появляется в строке запроса, когда пользователь перенаправляется обратно на вашу страницу.
  4. Обмен request_token и oauth_verifier на access_token и token_secret.
  5. Затем вы можете использовать access_token и token_secret для выполнения аутентифицированных запросов.

Поскольку вы используете .Net, вы можете упростить свою жизнь, используя приведенный ниже пример кода здесь .

0 голосов
/ 16 ноября 2014

надеюсь, что вы использовали Yahoo.inc для получения токена доступа, поэтому просто используйте

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

после получения доступа

...