加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

PHP开拓之用微信长途遥控处事器

发布时间:2021-04-01 04:18:11 所属栏目:编程 来源:网络整理
导读:择要 微信公家好的开拓很火,小措施更火。于是也凑个热闹,实行了一把。 大抵的成果照旧有的,不外是不全,许多处所我没有举办处理赏罚。不外对付纯文本方法的交换,已经没有题目啦。 p style="text-align: center" 情形搭建 下面大抵的讲讲微信公家号的道理吧。

手机相对付电脑一个很大的利益就是便携,我们固然不能随时随地携带电脑,可是却能行使手机来取代。许多时辰对处事器的打点必要的呼吁很简朴,可是长途登录的时辰也不利便。这个时辰就用微信来资助传话也是不错的啦。

我平常喜好行使Python写一些剧本,什么获取当地IP,谈天,查察内存,网速啥的,可谓是一应俱全。这下也终于能有效武之地了。操作微信的要害字匹配,就可以简朴的让微信公家号当一个小小传话员啦。

这里给个思绪,详细实现起来也较量简朴,当做是文原来处理赏罚即可。

完备代码

下面贴出我处事器上的完备代码,有些私密的处所我做了些变动,届时凭证本身的环境举办修改即可。

valid(); // 挪用回回音息要领 $wechatObj->responseMsg (); // 微信动静处理赏罚焦点类 class wechatCallbackapiTest { public function valid() { $echoStr = $_GET ["echostr"]; // valid signature,option if ($this->checkSignature ()) { echo $echoStr; exit (); } else { echo "验证失败!"; } } public function responseMsg() { // get post data,May be due to the different environments // 相同$_POST可是可以接管XML数据,属于加强型 $postStr = $GLOBALS ["HTTP_RAW_POST_DATA"]; // extract post data if (! empty ( $postStr )) { /* * libxml_disable_entity_loader is to prevent XML eXternal Entity Injection,* the best way is to check the validity of xml by yourself */ // 不理会外部数据,防备xxml裂痕 libxml_disable_entity_loader ( true ); $postObj = simplexml_load_string ( $postStr,LIBXML_NOCDATA ); $fromUsername = $postObj->FromUserName; $toUsername = $postObj->ToUserName; $keyword = trim ( $postObj->Content ); $time = time (); /* * 微信客户端发送信息的时辰会附带一些参数,详见官方文档。以是要按照差异的范例,来别离做相干的处理赏罚。 * 于是MsgType 就充当这样的一个区分的标志 */ $msgType = $postObj->MsgType; /* * 当有效户存眷后者退订的时辰,会触发响应的变乱。以是再来个event变乱的监听更为友爱。 * $event = $postObj->Event. * 详细的参数信息,官网上很具体。 */ $event = $postObj->Event; switch ($msgType) { // 文本动静 处理赏罚部门 case "text" : if (! empty ( $keyword )) { // 在此处举办对要害字的匹配就可以实现:针对差异要害字组装的响应数据 if($keyword=='音乐' || $keyword == "music") { $msgType = 'music'; $musictitle = "The Mountain"; $musicdescription = "夏季舒心清冷歌曲"; $musicurl = "http://101.200.58.242/wx/themaintain.mp3"; $hqmusicurl = "http://101.200.58.242/wx/themaintain.mp3"; musicMessageHandle($fromUsername,$musictitle,$musicdescription,$musicurl,$hqmusicurl); }elseif($keyword == '1'){ $msgType = 'text'; $contentStr = "人生自得须尽欢,莫使金樽空对月!"; textMessageHandle($fromUsername,$contentStr); }elseif($keyword == '呼吁模式'){ $msgType = 'text'; $contentStr = "进入呼吁模式,开始对处事器举办打点!n接下来将依据您输入的呼吁对处事器举办打点!"; textMessageHandle($fromUsername,$contentStr); }else { // 直接挪用 呆板人接口,与用户举办交换 $msgType = "text"; $contentStr = turing($keyword)!=""?turing($keyword):"这里是微信 纯文本测试数据!"; textMessageHandle ( $fromUsername,$contentStr ); } } else { echo "您得输入点数据,我才气回覆不是!"; } break; // 吸取图片信息 case "image" : if (! empty ( $keyword )) { // $msgType = "image"; $contentStr = "您发送的图片看起来还真不错!"; textMessageHandle ( $fromUsername,$contentStr ); } else { echo "处事器没能收到您发送的图片!"; } break; // 吸取语音信息 case "voice" : if (! empty ( $keyword )) { // $msgType = "voice"; $contentStr = "您发送的语音听起来还真不错!"; textMessageHandle ( $fromUsername,$contentStr ); } else { echo "处事器没能收到您发送的语音!"; } break; // 吸取视频信息 case "video" : if (! empty ( $keyword )) { // $msgType = "video"; $contentStr = "您发送的视频看起来还真不错!"; textMessageHandle ( $fromUsername,$contentStr ); } else { echo "处事器没能收到您发送的视频!"; } break; // 吸取视频信息 case "shortvideo" : if (! empty ( $keyword )) { // $msgType = "shortvideo"; $contentStr = "您发送的小视频看起来还真不错!"; textMessageHandle ( $fromUsername,$contentStr ); } else { echo "处事器没能收到您发送的小视频!"; } break; // 吸取位置信息 case "location" : if (! empty ( $keyword )) { // $msgType = "location"; $contentStr = "您发送的位置已被吸取!"; textMessageHandle ( $fromUsername,$contentStr ); } else { echo "处事器没能收到您发送的位置!"; } break; // 吸取视频信息 case "link" : if (! empty ( $keyword )) { // $msgType = "link"; $contentStr = "您发送的链接看起来还真不错!"; textMessageHandle ( $fromUsername,$contentStr ); } else { echo "处事器没能收到您发送的链接!"; } break; // 对变乱举办侦听 case "event": switch ($event) { case "subscribe": // 发送一些动静! $msgType = 'text'; $contentStr = "终于比及你!"; textMessageHandle($fromUsername,$contentStr); break; } break; default : break; } } else { echo ""; exit (); } } private function checkSignature() { // you must define TOKEN by yourself if (! defined ( "TOKEN" )) { throw new Exception ( 'TOKEN is not defined!' ); } $signature = $_GET ["signature"]; $timestamp = $_GET ["timestamp"]; $nonce = $_GET ["nonce"]; $token = TOKEN; $tmpArr = array ( $token,SORT_STRING ); $tmpStr = implode ( $tmpArr ); $tmpStr = sha1 ( $tmpStr ); if ($tmpStr == $signature) { return true; } else { return false; } } } /** * 界说为心中想难关的六个接口的数据发送名目模板 */ function textMessageHandle($fromUsername,$contentStr) { $textTpl = " %s 0 "; $resultStr = sprintf ( $textTpl,$contentStr ); echo $resultStr; } function imageMessageHandle($fromUsername,$contentStr) { $imageTpl = " %s 1234567890123456 "; $resultStr = sprintf ( $textTpl,$contentStr ); echo $resultStr; } function musicMessageHandle($fromUsername,$musicDescription,$hqmusicurl) { $musicTpl = " %s <![CDATA[%s]]> "; $resultStr = sprintf($musicTpl,$hqmusicurl); echo $resultStr; } /** * 图灵 呆板人接口 * * 行使curl来举办赏识器模仿并抓取数据 */ function turing($requestStr) { /* // 图灵呆板人接口 $url = "http://www.tuling123.com/openapi/api"; // 用于POST哀求的数据 $data = array( "key"=>"您在图灵呆板人官网上申请的key","info"=>$requestStr ); // 结构curl下载器 $ch = curl_init(); curl_setopt($ch,$data); $requestStr = curl_exec($ch); curl_close($ch); return responseStr; */ $url = "http://api.qingyunke.com/api.php?key=free&appid=0&msg=".$requestStr; $result = file_get_contents($url); $result = json_decode($result,true); return $result['content']; } ?>

总结

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读