微信公众平台开发:高级篇(微信公众平台接口开发:(4)天气预报(1))

一、请求数据

首先需要能有取得天气数据的接口,这样的接口网上有很多。比如google, yahoo,天气网都提供天气接口

方倍工作室的API已经能提供全国各地的天气预报,使用方倍的API无需再建立城市对应关系表

使用方式为直接在URL中提交城市名称即可,如果找不到城市名称,请先做urlencode

调用url方法:

  
  
  
  
  1. http://api2.sinaapp.com/search/weather/?appkey=0020130430&appsecert=fa6095e113cd28fd&reqtype=text&keyword=上海 
  2. //或者做一次urlencode后再提交 
  3. http://api2.sinaapp.com/search/weather/?appkey=0020130430&appsecert=fa6095e113cd28fd&reqtype=text&keyword=%E6%B7%B1%E5%9C%B3 

返回格式如下:(返回中自带换行\n操作,不用自己再添加)

  
  
  
  
  1.     "errcode""0"
  2.     "msgtype""text"
  3.     "text": { 
  4.         "content""【湘潭】天气实况 温度:12℃ 湿度:59% 风速:西北风3级\n03月10日 周日 10℃~21℃ 阴转多云 北风转南风小于3级\n03月11日 周一 13℃~28℃ 多云 南风小于3级\n03月12日 周二 10℃~22℃ 小雨转阴 北风小于3级\n技术支持 方倍工作室" 
  5.     } 

一个完整的请求类似如下:

  
  
  
  
  1. $url = "http://api2.sinaapp.com/search/weather/?appkey=0020130430&appsecert=fa6095e113cd28fd&reqtype=text&keyword=%E6%B7%B1%E5%9C%B3"
  2. $weatherJson = file_get_contents($url); 
  3. $weather = json_decode($weatherJson, true); 
  4. $contentStr = $weather['text']['content']; 

如果使用城市名+天气方式查询,则先进行城市名提取:

  
  
  
  
  1. else if (substr($keyword, -6, strlen($keyword)) == "天气"){ 
  2.     $cityname = trim(substr($keyword, 0, strlen($keyword) - 6)); 

二,效果演示

使用城市名称查询天气预报:

微信公众平台开发:高级篇(微信公众平台接口开发:(4)天气预报(1))_第1张图片

你可能感兴趣的:(微信平台开发指南)