【微信公众号开发】自我学习第六章:微信回复天气问题

【微信公众号开发】自我学习第六章:微信回复天气问题_第1张图片

border="0" width="330" height="86" src="//music.163.com/outchain/player?type=2&id=261193&auto=1&height=66">

        之前我们都处理了翻译的问题,机器翻译必然会有许多逗逼的翻译,今天我们来说说微信回复天气问题,我们自己肯定不回去开发这些天气接口啦,^_^,去百度APIstore 里面找找,有些是免费的,有些是收费的,然后我用的是心知天气的API,注册之后就可以有一些免费的接口,接口文档,我们调用两个接口好啦!

  • 接口1:【获取地区的温度/天气】
https://api.seniverse.com/v3/weather/now.json?key=你的key&location=beijing&language=zh-Hans&unit=c
  • 接口2:【获取地区的生活指数】
https://api.seniverse.com/v3/life/suggestion.json?key=你的Key&location=要搜索的地址&language=zh-Hans

因为我们是初级账号,只能获取部分城市的,6项生活指数等等,如果有需要的可以去升级账号就可以调用更高级详细的接口了。方法实现如下:

  /*
    * 心知天气API
    * */
   private function xinzhiWeather($area) {
        $key ='你的key';
        $temperatureUrl = 'https://api.seniverse.com/v3/weather/now.json?key='.$key.'&location='.$area.'&language=zh-Hans&unit=c';
        $lifeUrl = 'https://api.seniverse.com/v3/life/suggestion.json?key='.$key.'&location='.$area.'&language=zh-Hans';

        $data = file_get_contents($temperatureUrl);
        $lifeData = file_get_contents($lifeUrl);

        $data = json_decode($data, true);
        $lifeData = json_decode($lifeData, true);

        $str = '【天气情况以及6项生活指数报告】'."\n";
        $str .= '【地址】:%s'."\n";
        $str .= '【详细地址】:%s'."\n";
        $str .= '【时间】:%s'."\n";
        $str .= '【天气】:%s'."\n";
        $str .= '【温度】:%s度'."\n";
        $str .= '【洗车】:%s'."\n";
        $str .= '【穿衣】:%s'."\n";
        $str .= '【感冒】:%s'."\n";
        $str .= '【运动】:%s'."\n";
        $str .= '【旅游】:%s'."\n";
        $str .= '【紫外线】:%s'."\n";
        $str .= '谢谢支持!么么哒';

        if($data['results'][0]['now'] && $lifeData['results'][0]['suggestion']){
            $lifeDataParam = $lifeData['results'][0]['suggestion'];
            $info = sprintf(
                $str,
                $data['results'][0]['location']['name'],
                $data['results'][0]['location']['path'],
                date_format(new \DateTime(),'Y-m-d h:m:s'),
                $data['results'][0]['now']['text'],
                $data['results'][0]['now']['temperature'],
                $lifeDataParam['car_washing']['brief'],
                $lifeDataParam['dressing']['brief'],
                $lifeDataParam['flu']['brief'],
                $lifeDataParam['sport']['brief'],
                $lifeDataParam['travel']['brief'],
                $lifeDataParam['uv']['brief']
            );
        }else{
            $info = '该城市不适合我们试用的用户!╮(╯▽╰)╭';
        }

       return $info;
}

然后我们就可以看到效果~(≧▽≦)/~啦啦啦:

【微信公众号开发】自我学习第六章:微信回复天气问题_第2张图片

你可能感兴趣的:(初级微信公众号开发)