Я разрабатываю веб-портал, использующий веб-службу Yahoo для измерения температуры в реальном времени. Я использовал комбинированный запрос YQL для получения данных о погоде по широте и долготе, что было неплохо:
https://query.yahooapis.com/v1/public/yql?q=select * from weather.forecast where woeid in (select woeid from geo.placefinder where text='lat,lon')&format=json
С января этого года комбинированный запрос больше не работал. Поэтому мне пришлось сделать два отдельных http-запроса последовательно, чтобы получить данные.
- Получить горе от лан, лон и appid
- Получить данные от woeid
Получение данных из Yahoo каждый раз занимает довольно много времени и менее эффективно. Я некоторое время гуглил решение, чтобы улучшить это, но большинство из них предназначены для старых версий API погоды Yahoo. Я ищу способ сократить время или некоторые другие основные поставщики бесплатных погодных услуг, предлагающие погоду в мире.
Обновление (2016.03.24)
Я нашел способ заставить комбинированный YQL работать из этого thread< /а>.
Измените YQL на:
https://query.yahooapis.com/v1/public/yql?q=select * from weather.forecast where woeid in (select woeid from geo.placefinder where text='(lat,lon)')&format=json
Просто нужно добавить скобки вокруг геолокации. Предыдущий работал недавно.
Обновление (2016.03.25)
Служба погоды Yahoo вчера не работала, и YQL долгое время был недействителен. В этом официальном документе говорится, что Oauth 1 применялся с 15 марта через URL-адрес https://query.yahooapis.com/v1/yql?q=...
Несмотря на то, что общедоступная ссылка вернулась сегодня, я обнаружил, что не могу переключить единицу измерения погоды, добавив u='c' или u='f'.
Я не знаю, будет ли API погоды Yahoo поддерживать старый URL или нет. Пока что он еще жив. Я с нетерпением жду решения для запроса погоды Yahoo с помощью Oauth 1.0 в Javascript.