如果没有API,怎么写你想做的微信公共账号(下)
来源:互联网 发布:网络ping值测试 编辑:程序博客网 时间:2024/04/27 15:52
接着上次的写,PHP解析html文档,有很多方法,我用的是simp_html_dom,
<?php/** * wechat php test *///define your tokenheader("Content-Type: text/html; charset=utf-8");require_once "simple_html_dom.php";//导入simple_html_dom文件define("TOKEN", "joke");$wechatObj = new wechatCallbackapiTest();//$wechatObj->valid();$wechatObj->responseMsg();class wechatCallbackapiTest{public function valid() { $echoStr = $_GET["echostr"]; //valid signature , option if($this->checkSignature()){ echo $echoStr; exit; } } public function responseMsg() {//get post data, May be due to the different environments$postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; //extract post dataif (!empty($postStr)){ $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA); $fromUsername = $postObj->FromUserName; $toUsername = $postObj->ToUserName; $keyword = trim($postObj->Content); $time = time(); $textTpl = "<xml><ToUserName><![CDATA[%s]]></ToUserName><FromUserName><![CDATA[%s]]></FromUserName><CreateTime>%s</CreateTime><MsgType><![CDATA[%s]]></MsgType><Content><![CDATA[%s]]></Content><FuncFlag>0</FuncFlag></xml>"; if(!empty( $keyword )) { $msgType = "text"; //$contentStr = "Welcome to wechat world!"; $test=new Test(); $contentStr=$test->Get_Joke($keyword);//调用自己写的函数,把用户的关键字传进去 $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr); echo $resultStr; }else{ echo "Input something..."; } }else { echo ""; exit; } }private function checkSignature(){ $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 ){return true;}else{return false;}}}/////////////////////自己写的函数class Test{ public function Get_Joke($value) { $qurl="http://lengxiaohua.com/search?query_word=".$value;// $html=file_get_html($qurl);//这是simple_dom_html.php,中提供的方法,返回的是html文件 $pre=$html->find("pre",rand(1,50));//解析html文件,rand(1,50)是生成1-50的随机数,$pre是获得的第rand(1,50)个标签,即时用户的关键字一样,保证每次获得笑话不一样 //$pre=$html->find("pre",51); $pre_text=$pre->plaintext;//获得pre标签里的文字,就是我们要找的笑话 $html->clear();//解析html文件占内存,所以必须及时清理 if(empty($pre_text)) $pre_text="再试一次或者换个关键词,热门关键词有:喵星人 汪星人 老师 考试 微博 妹子 学校 照片 同学 大学 男友 世界 尼玛 女友 高中"; return $pre_text; }}
?>
附上我的二维码:
- 如果没有API,怎么写你想做的微信公共账号(下)
- 如果没有API,怎么写你想做的微信公共账号(上)
- 微信公众账号能做什么怎么用,有哪些API供开发总结
- 可以点歌的微信公共账号
- 查询快递的微信公共账号
- 利用simsimi小黄鸡接口,做一个微信公共账号上的机器人
- 没有缓冲,如果你想做什么,就要去最/尽量专业的地方.
- 微信公共账号开发
- 如果你想写自己的编译器...
- 获取PM2.5的微信公共账号
- 微信公共账号开发(未认证服务号)
- 微信公共账号开发(未认证服务号)
- 微信公众账号你注册了吗?做营销怎么能错过微信营销。
- 微信公共账号推广方法
- 微信公共账号后台服务开发
- 2 注册微信公共账号
- 企业微信的公众账号要怎么推广呢?
- 如果你想做个程序员相关的论坛,请三思
- sensor的fsi和bsi结构
- 设计模式——工厂方法模式
- java反射
- Java字符串驻留池
- SWT布局(Layouts)
- 如果没有API,怎么写你想做的微信公共账号(下)
- 产品重构
- 大型web网站前端css\js\图片版本管理解决方案
- jsp中script标签中的alert在IE下不能弹框,在其他浏览器下可以弹框
- Linux 上的音频格式转换工具
- 导致代码重复的原因
- USACO:Controlling Companies
- 如何重写hashCode?
- JOS学习笔记(五)