本來是想自己直接從中國天氣網獲取資訊並處理,後來發現處理起來太麻煩,而且要獲取所有城市的城市編碼,再有就是!不支援國外天氣!!(我們學校有很多畢業生在國外上學,所以我考慮還是做出支援國外天氣的版本)
因此考慮直接呼叫別人的api,一開始選用了方倍工作室已經做好的介面(無奈也沒有國外)。直到有一天返回北京天氣溫度是零下的時候(當時天熱到不敢出門)。。。換!換!換!
後來終於發現最靠譜的介面----百度的天氣api。
廢話少說,首先大家要上 百度地圖api申請乙個專用key(大概一分鐘就搞定了,很方便)
**如下:
//**資訊2 for 天氣【這是微信的**資訊模板】
$tqtpl = "%s5
程式設計客棧gt;
";//最後發現最多只能看到五個item= =無語。。。
php**
if(substr_count($keyword,'天氣')!=0 && $keyword!='天氣')
}$mykey = "【這裡換成你的api key】";
$url = "".$city."&output=json&ak=".$mykey;
$output = file_get_contents($url);
$contentstr = json_decode($output, true);
if($contentstr['status']=='success')
else
$guowai=1;
for($i=1,$aaa=0;$i<=5;$i++)
$tianqi = sprintf($tqtpl,$fromusername,$tousername,time(),"news",$t[0]['title'],$t[0]['description'],$t[0]['picurl'],$t[0]['url'], $t[1]['title'],$t[1][www.cppcns.com'description'],$t[1]['picurl'],$t[1]['url'], $t[2]['title'],$t[2]['description'],$t[2]['picurl'],$t[2]['url'], $t[3]['title'],$t[3]['description'],$t[3]['picurl'],$t[3]['url'], $t[4]['title'],$t[4]['description'],$t[4]['picurl'],$t[4]['url'],$t[5]['title'],$t[5]['description'],$t[5]['pi'],$t[5]['url']);
echo $tianqi;}}
效果圖如下:
將其中的$mykey變數改成自己的apikey就行了。另外有一點讓我不解的是,我微信用的**模板明明是6個item,為什麼回覆實際效果只有5個呢= = 求廣大網友幫忙解釋
最後附**說明。使用者傳送「北京天氣」和「天氣北京」都是可以的,所以首先做了字串處理,得到正確的城市名。利用百度地圖api給的**,發出get請求(其實就是直接訪問),獲取乙個json型別的資料報。將資料報資訊轉成陣列格式,對應的回覆微信使用者即可。國外的天氣沒有當天天氣的具體說明,所以最後做了一點小修改。
本文標題: 微信公眾平台天氣預報功能開發
本文位址:
微信公眾平台開發(21) 天氣預報功能開發
原文 一 簡介 二 思路分析 首先要對使用者傳送過來的訊息進行判斷,判斷訊息裡是否含有 天氣 關鍵字,如果含有,則需要繼續提取地區資訊,然後再通過中國天氣網 提供的開放api進行相關地區天氣查詢。三 關鍵字判斷與地區讀取 使用者傳送過來查詢天氣的訊息的格式是固定好的,即 地區 天氣 所以首先擷取後兩...
微信公眾平台開發(4)天氣預報
北京 output json ak yourak 引數型別 引數名稱 是否必須 具體描述 string location true 輸入城市名或經緯度,城市名稱如 北京或者131,經緯度格式為lng,lat座標如 location 116.305145,39.982368 全國值為all,返回省會城...
天氣預報文本版微信 微信公眾平台開發(4)天氣預報
一 資料介面 介面北京 output json ak yourak 介面引數說明 引數型別引數名稱是否必須具體描述 string location true 輸入城市名或經緯度,城市名稱如 北京或者131,經緯度格式為lng,lat座標如 location 116.305145,39.982368 ...