2015-01-27 6 views
1

jQuery 플러그인 jquery.simpleweather를 사용하여 특정 우편 번호에 대한 Yahoo Weather를 쿼리하고 응답을 JSON 형식으로 되돌립니다. 반환 된 키 중 하나는 "전체 예측"에 대한 링크를 제공하는 "링크"라고합니다. 이것은 잘 작동했지만 이전에는 (이번 달 초 경에) 링크를 통해 야후 날씨 홈 페이지로 사용자를 이동시킬 수있었습니다. 나는 그들이 일하는 방식에 변화를 가져 왔음에 틀림 없다고 생각합니다.Yahoo Weather API와 "Full Forecast"에 대한 링크가 더 이상 작동하지 않습니다.

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

이 링크는 매우 터져 보이지만, 어쨌든이의 예 내가 링크가이 같은 JSON의 repsonse에 반환됩니다 "시미 밸리, CA"입니다 93,065의 우편 번호를 제공 말할 경우입니다 응답에서 반환되는 것이고 링크로 이동하려고하면 해당 도시에 대한 예측 대신 기본 야후 날씨 페이지로 연결됩니다.

내 자신의 링크를 만드는 방법이 있습니까? 나는 93065에 대한 야후 날씨 페이지로 바로 연결되는 방법을 알아 내려고 노력 중이다. 코드에서 링크를 만들 수있다. 문제는 그것이 곧장 보이지 않는다는 것입니다. 내가 "야후 날씨 93065"에 대한 구글 검색을 수행하고 링크를 결과 첫 번째 검색을 클릭하면 문제는 내가 "2493889"즉이나 방법을 모르는 것입니다이

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

입니다 그 값을 잡아라. 난 그냥이

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

같은 링크를 만들 수 있지만 작동하지 않는 기대했다. 내가 가지고있는 것 모두가 우편 번호와 도시 이름 일 때 나는 어떻게 야후 날씨 페이지에 바로 링크 할 수 있습니까? 야후의 날씨 API는 새로운 날씨 착륙 일치하도록 업데이트되지 않은 것처럼

감사

+0

답변을 찾지 못 하셨나요? – killerbarney

+0

아직 답변이 없습니다. –

+0

동일한 문제가 있습니다. YQL 응답의 모든 URL이 잘못되었습니다. – jrble819

답변

1

보인다.

숫자를 무시하는 것이 매우 쉽습니다.

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

난 단지 Open Weather Map 또는 날씨 지하와 같은 다른 API를 사용하여 구현하기 위해 오랫동안이 작업을 수행 할 것 (I은 2 개 이상의 링크를 게시 할 수있는 충분한 명성을 링크가 아닌 것).

야후의 API 포럼을 통해 빠른 검색을 수행했지만 API에 버그를 알리는 데 사용할 수있는 연락처 나 이메일 주소가 있지만이 주제에 대한 토론은 없었습니다. .

0

나는 Yahoo Weather API가 자신의 문서와 다른 값을 반환하고있는 것처럼 보이기 때문에 해결 방법이 있습니다. 당신이 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 + '/'; 
    }, 
}); 

을 내가 할 수있는보다 효율적인 방법이 확신 위 ...