Использование Yahoo Weather API и ссылка на полный прогноз больше не работают

Я использую плагин jQuery jquery.simpleweather для запроса погоды Yahoo для определенного почтового индекса и получаю ответ в формате JSON. Один из возвращаемых ключей называется «ссылка», которая предоставляет ссылку на «Полный прогноз». Раньше это работало нормально, но теперь (примерно в начале этого месяца) ссылки, которые он предоставляет, просто перенаправляют пользователя на домашнюю страницу погоды Yahoo. Я предполагаю, что они, должно быть, внесли какие-то изменения в то, как все работает. В любом случае, пример этого: если я скажу указать почтовый индекс 93065, который является «Сими-Вэлли, Калифорния», ссылка будет возвращена в ответе JSON следующим образом:

http://us.rd.yahoo.com/dailynews/rss/weather/Simi_Valley__CA/*http://weather.yahoo.com/forecast/USCA1060_f.html

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

Есть ли способ создать свою собственную ссылку? Я пытаюсь понять, как просто сделать ссылку на страницу погоды Yahoo для 93065. Я могу создать ссылку в своем коде. Проблема в том, что он не смотрит вперед. Если я выполню поиск в Google по запросу «yahoo weather 93065» и нажму на первый результат поиска, ссылка будет такой

https://weather.yahoo.com/united-states/california/simi-valley-2493889/

Проблема в том, что я не знаю, что это за "2493889" и как зафиксировать это значение. Я надеялся, что смогу просто создать ссылку, подобную этой

https://weather.yahoo.com/united-states/california/93065/

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

БЛАГОДАРНОСТЬ


person Erich H.    schedule 27.01.2015    source источник
comment
так и не нашел ответа на это?   -  person killerbarney    schedule 06.02.2015
comment
Та же проблема здесь. Все URL-адреса в ответе YQL неверны.   -  person jrble819    schedule 17.03.2015


Ответы (2)


Похоже, API погоды Yahoo не был обновлен, чтобы соответствовать их новой посадке погоды.

Работа ОЧЕНЬ может заключаться в том, чтобы просто игнорировать числа.

https://weather.yahoo.com/united-states/california/simi-valley/

Я бы делал это достаточно долго, чтобы реализовать с помощью другого API, такого как Open Weather Map или Weather Underground ( Я бы дал ссылку, но недостаточно репутации, чтобы опубликовать более 2 ссылок).

Дополнительное примечание: я провел быстрый поиск по форумам API Yahoo и не нашел обсуждения этой темы, хотя может быть какой-то контакт или адрес электронной почты, который можно использовать, чтобы сообщить им об ошибке в их API.

person cjdierkens    schedule 12.02.2015

У меня есть обходной путь, который является хакерским, поскольку кажется, что API погоды Yahoo возвращает значения, отличные от их документации.

В любом случае, если вы знаете woeid, вы можете (по состоянию на май 2015 года) создать ссылку на прогноз как таковой:

// San Francisco WOEID
var woe = '2487956';
// call simpleweather
$.simpleWeather({
  woeid: woe,
  unit : 'f',
  success : function( weather ) {
    // 'parts'      array of values needed from 'weather'
    // 'link'       object to hold modified 'weather' values
    // 'forecast'   forecast link 
    var parts = ['country','region','city'],
      link = {}, 
      forecast = 'https://weather.yahoo.com/';
    // lowercase the returned values and replace spaces with dashes
    $.each( parts, function(i,v) {
      link[v] = weather[v].replace(/\s+/g,'-').toLowerCase();
    });
    // build forecast link
    forecast += link.country + '/' + link.region + '/' + link.city + '-' + woe + '/';
  },
});

Я уверен, что есть более эффективные способы сделать вышеперечисленное...

person greenbank    schedule 30.04.2015