博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
超简单微信公众帐号自动回复和天气播报功能应用
阅读量:5938 次
发布时间:2019-06-19

本文共 2273 字,大约阅读时间需要 7 分钟。

      最近一直在网上捣鼓东西,之前看到有篇文章介绍微信开发,感觉很有意思,然后在官方网站找到API文档就开始开发了,花了一晚上时间,基本实现一般关键字的处理回复,以及城市天气的预报。因为文档是PHP示例,我也边学习边用PHP开发起来。

  可以先微信扫一扫,体验一下."看完代码就不神奇了" .—_—.

     

  注:代码GitHub地址在文章后面列出.

一.功能介绍:

  可以识别多种关键字,可以查询城市天气,许多功能用户可以自己探索.

  输入 help 的提示信息如下:
  发送 城市名天气 获取城市天气,
  如:发送 北京天气 获取城市北京的天气.
  发送 help 可以获得帮助.
  发送 img 可看到网站预览图.
  发送 news 可看图片新闻.
  发送 music 可听音乐.
  当然也可以发送其他关键字来查看是否能获得您想要的信息.
  您还可以给我发语音,位置,图片等.

二.使用方法:

    1.直接使用.

   直接使用已经搭建好的新浪云应用程序,那"URL"填写http://vxinxi.sinaapp.com/index.php 和"Token"填写superman这两个就不能更改了。

   

   2.自己部署程序.

   如果自己部署,如果你没有服务器,对PHP程序部署不熟悉的。

      你可以参考我的另一篇文章:

  部署好以后,“URL”改为你的新浪应用程序地址,"Token"改为你代码中的token配置。如果你不修改代码,那token就不用改,还是之前的superman。

三.代码解释.

     1.定义自己的token.

define("TOKEN", "superman");

  2.验证签名.

//验证签名public function valid(){$echoStr = $_GET["echostr"];$signature = $_GET["signature"];$timestamp = $_GET["timestamp"];$nonce = $_GET["nonce"];$token = TOKEN;$tmpArr = array($token, $timestamp, $nonce);sort($tmpArr);$tmpStr = implode($tmpArr);$tmpStr = sha1($tmpStr);if($tmpStr == $signature){echo $echoStr;exit;}}

   3.消息类型分类处理

//消息类型处理switch ($RX_TYPE){case "event"://微信事件消息$result = $this->receiveEvent($postObj);break;case "text"://文本消息,微信自带表情也是文本符号,(着重处理这种类型消息)$result = $this->receiveText($postObj);break;case "image"://图片消息$result = $this->receiveImage($postObj);break;case "location"://位置信息$result = $this->receiveLocation($postObj);break;case "voice"://语言信息$result = $this->receiveVoice($postObj);break;case "video"://视频信息$result = $this->receiveVideo($postObj);break;case "link"://链接消息$result = $this->receiveLink($postObj);break;default:$result = "unknown msg type: ".$RX_TYPE;break;}

 4.天气播报功能.

else if(strstr($keyword, "天气") )//包含天气关键字{$code=$this->check(mb_substr($keyword , 0 , 2 , 'utf-8'));//获取中文字符“南京天气”前两个中文,"南京",通过check(str)找到城市对应的天气编码.$getcontent = file_get_contents("http://www.weather.com.cn/data/cityinfo/{$code}.html");//通过url获取json数据.if(!$getcontent){return '暂时没有取到天气数据,请稍后再试';}else{$getresult=json_decode($getcontent,true);$info=$getresult['weatherinfo'];$content="{$info['city']}的天气情况:\n";//解析获取json数据,展示天气情况.$content .= "今天天气:{$info['weather']}\n";$content .= "最低温度:{$info['temp1']}\n";$content .= "最高温度:{$info['temp2']}\n";}

 四.效果预览:

 1.关注后提示信息.

 

2.天气播报功能.

 

五.其它

 代码GitHub地址:

 微信公众帐号开发帮助文档:

转载于:https://www.cnblogs.com/bugzone/p/weixin.html

你可能感兴趣的文章
UVa 10902
查看>>
Mathf.Sin正弦
查看>>
图片文字滚动插件jQuery Scrollbox
查看>>
POJ-3041 行列匹配构图+最小顶点覆盖
查看>>
〖Android〗CyanogenMod同步错误的解决
查看>>
禁止浏览器缓存js
查看>>
python编程基础之二十四
查看>>
python学习笔记二
查看>>
Centos6.5下安装protobuf及简单使用
查看>>
oracle从新建到导入导出重建
查看>>
最大权闭合子图题目泛做
查看>>
js中计算两个日期之差
查看>>
ktv项目测试总结
查看>>
内核如何签名
查看>>
彻底弄懂小程序e.target与e.currentTarget
查看>>
岭回归名字由来
查看>>
Nodejs mongodb 管理组件adminmongodb
查看>>
Vue.js 数据绑定语法详解
查看>>
PhpStorm常用快捷键(不多够用)
查看>>
html5--5-8 绘制圆/弧
查看>>