分類
程式技術

Yahoo天氣RSS API需要驗證

之前的一個使用天氣 API 的專案, 因為 Yahoo RSS API 需要驗證, 變成非公開性的 API, 例如:

http://weather.yahooapis.com/forecastrss?u=c&w=2306179

目前會回覆:
Please provide valid credentials. OAuth oauth_problem=”OST_OAUTH_PARAMETER_ABSENT_ERROR”, realm=”yahooapis.com”

而無法順利取得內容, 經查找相關資料, 應該是 3/15 起, yahoo 這組 API 需要做驗證才能使用, 於是找了資料, 可以改用 YQL 的方式來查詢, 相容的查詢指令如下:

http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20weather.forecast%20where%20%20u=%22c%22%20and%20woeid%20=2306179

其中的 YQL 為:

select * from weather.forecast where u=”c” and woeid=2306179

即可獲得相容的天氣 API 回傳結果.

參考之前文章:
https://diary.tw/archives/1215

分類
懶得分類

Google天氣API失效?!

之前一直用的好好的 Google 天氣 API, 今天同事回報異常, 經檢查後, 發現看起來是 Google 的問題, 不過回覆的訊息讓人摸不著頭緒, 如下:

(訪問 http://www.google.com/ig/api?hl=zh-tw&weather=taipei 的結果)

起先以為是用量過多爆了, 不過查了一下, 發現應該不是, 而且也找到相關的新聞訊息: http://thenextweb.com/google/2012/08/28/did-google-just-quietly-kill-private-weather-api/ 看起來應該是 Google 打算關掉的服務引起的, 而且上面的 copyright 還是 2009, 真是怪怪的.

接下來只好轉換用其他家的 weather api, 原本要用 http://www.wunderground.com/ 這家的, 但是是要收費的, 只好再找, 改用 yahoo 的, 參考 API 介紹: http://developer.yahoo.com/weather/ , 應用起來, 原本 Google Weather API 有的資訊他也都有, 只是都是英文的, 不過倒也不影響使用.

不過若是不知道地點的 w 代碼(WOEID), 可以先到 yahoo weather 上查: http://weather.yahoo.com/ 輸入 taipei, 將會重導到網址: http://weather.yahoo.com/taiwan/null/taipei-2306179/ 就知道 w 代碼是 2306179, 而 API URL 就會是: http://weather.yahooapis.com/forecastrss?w=2306179 預設氣溫單位是華氏, 若是要氣溫單位, 再多加參數 u=c 如: http://weather.yahooapis.com/forecastrss?w=2306179&u=c

回應的內容也都是 xml 格式, 可以容易利用程式實作取出, 花了幾十分鐘的時間, 把原來的 api 由 Google 改到 Yahoo 完成.

附上部分台灣的 WOEID:

2306155 Yungkang City, TW (永康市)
2306179 Taipei City, TW (台北市)
2306180 Kaohsiung City, TW (高雄市)
2306181 Taichung City, TW (台中市)