通过wechat类教你实现大部分常见功能,包括查天气,公交路线,机器人的自动回复等。。。记得点个赞哦!
没有公众号可以用的可以用自己的微信号申请一个测试号,功能还是挺全的<?php <br />
<br>
namespace Home\Controller;<br>
<br>
use Think\Controller;<br>
<br>
<br>
class IndexController extends Controller {<br>
<br>
public function index() {<br>
$options = array(<br>
'token' => 'ruanqin', // 填写你设定的token<br>
'appid' => '1111111', // 填写高级调用功能的appid<br>
'appsecret' => '11111111' // 填写高级调用功能的密钥<br>
);<br>
//这两个类我已放到附件,有需要可以下载<br>
Vendor('weixin.Wechat');<br>
Vendor('weixin.Snoopy');<br>
$weObj = new \Wechat($options);<br>
<br>
$weObj->valid(); // 验证key<br>
//获取菜单操作:<br>
$menu = $weObj->getMenu();<br>
//设置菜单<br>
$newmenu = array(<br>
<br>
'button' => array (<br>
0 => array (<br>
'name' => '扫码',<br>
'sub_button' => array (<br>
0 => array (<br>
'type' => 'scancode_waitmsg',<br>
'name' => '扫码带提示',<br>
'key' => 'rselfmenu_0_0',<br>
),<br>
1 => array (<br>
'type' => 'scancode_push',<br>
'name' => '扫码推事件',<br>
'key' => 'rselfmenu_0_1',<br>
),<br>
),<br>
),<br>
1 => array (<br>
'name' => '发图',<br>
'sub_button' => array (<br>
0 => array (<br>
'type' => 'pic_sysphoto',<br>
'name' => '系统拍照发图',<br>
'key' => 'rselfmenu_1_0',<br>
),<br>
1 => array (<br>
'type' => 'pic_photo_or_album',<br>
'name' => '拍照或者相册发图',<br>
'key' => 'rselfmenu_1_1',<br>
),<br>
2 => array (<br>
'type' => 'view',<br>
'name' => 'baidu',<br>
'url' => 'http://www.baidu.com',<br>
'key' => 'rselfmenu_1_2',<br>
),<br>
),<br>
),<br>
2 => array (<br>
'type' => 'location_select',<br>
'name' => '发送位置',<br>
'key' => 'rselfmenu_2_0'<br>
),<br>
<br>
),<br>
<br>
);<br>
$result = $weObj->createMenu($newmenu);<br>
<br>
//获得用户发送过来的消息的类型,有"text","music","image"等<br>
$type = $weObj->getRev()->getRevType();<br>
switch($type) {<br>
case \Wechat::MSGTYPE_TEXT:<br>
//获得用户发送过来的文字消息内容<br>
$content=$weObj->getRev()->getRevContent();<br>
//从消息的结尾数第二个字开始截取,截取两个字<br>
$str = mb_substr($content,-2,2,"UTF-8");<br>
//从消息的开头开始,截掉末尾的两个字,便得关键字。<br>
$str_key = mb_substr($content,0,-2,"UTF-8");<br>
//然后加以判断是否为关键字,是否为空,符合要求则调用函数查询翻译数据<br>
if($str == '翻译' && !empty($str_key)) {<br>
$url1="http://openapi.baidu.com/public/2.0/bmt/translate?client_id=9peNkh97N6B9GGj9zBke9tGQ&q={$str_key}&from=auto&to=auto";//百度翻译地址<br>
//实例化采集类<br>
$spy=new \Snoopy;<br>
//获取采集来的数据<br>
$spy->fetch($url1);<br>
//将结果赋给$con_json<br>
$con_json=$spy->results;<br>
//json解析,转换为object对象类型<br>
$transon=json_decode($con_json);<br>
//读取翻译内容<br>
$con_str = $transon->trans_result[0]->dst;<br>
//以文字的形式输出结果<br>
$weObj->text("{$con_str}")->reply();<br>
}<br>
//判断是否为关键字,是否为空,符合要求则调用函数查询书本数据<br>
if($str=='书本' && !empty($str_key)) { <br>
$url="http://222.206.65.12/opac/search_rss.php?dept=ALL&title={$str_key}&doctype=ALL&lang_code=ALL&match_flag=forward&displaypg=20&showmode=list&orderby=DESC&sort=CATA_DATE&onlylendable=no";<br>
$spp=new \Snoopy;<br>
$spp->fetch($url);<br>
$fa=$spp->results;<br>
//将采集获取的XML数据转换成object对象类型<br>
$f=simplexml_load_string($fa);<br>
$da1=$f->channel->item[0]->title;<br>
$da2=$f->channel->item[1]->title;<br>
$da3=$f->channel->item[2]->title; <br>
$weObj->text("{$da1}\n{$da2}\n{$da3}")->reply();<br>
}<br>
//判断公交路线<br>
if($str=='公交' && !empty($str_key)){<br>
<br>
$strbus=explode(',',$str_key);<br>
$ch = curl_init();<br>
$url = "http://apis.baidu.com/apistore/bustransport/buslines?city={$strbus[0]}&busNo={$strbus[1]}";<br>
$header = array(<br>
'apikey: 这里的apikey自己去百度APIstore去注册,免费的!' <br>
);<br>
// 添加apikey到header<br>
curl_setopt($ch, CURLOPT_HTTPHEADER , $header);<br>
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);<br>
// 执行HTTP请求<br>
curl_setopt($ch , CURLOPT_URL , $url);<br>
$res = curl_exec($ch);<br>
<br>
$b=json_decode($res);<br>
$a=$b->retData->result;<br>
$c=simplexml_load_string($a);<br>
$d=$c->lines->line[1]->stats;<br>
$rq=explode(';',$d);<br>
$ww=implode('->',$rq);<br>
$weObj->text("{$ww}")->reply();<br>
<br>
}<br>
//景点查询<br>
<br>
if($str=='景点' && !empty($str_key)){<br>
<br>
<br>
$ch = curl_init();<br>
$url = "http://apis.baidu.com/apistore/attractions/spot?id={$str_key}&output=json";<br>
$header = array(<br>
'apikey: <b>同上</b>',<br>
);<br>
// 添加apikey到header<br>
curl_setopt($ch, CURLOPT_HTTPHEADER , $header);<br>
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);<br>
// 执行HTTP请求<br>
curl_setopt($ch , CURLOPT_URL , $url);<br>
$res = curl_exec($ch);<br>
<br>
$a=json_decode($res);<br>
$name=$a->result->name;<br>
$phone=$a->result->telephone; <br>
$abstract=$a->result->abstract; <br>
$description=$a->result->description; <br>
$price=$a->result->ticket_info->price;<br>
$open_time=$a->result->ticket_info->open_time; <br>
$b="景点名:{$name}\n景点联系电话:{$phone}\n价格:{$price}\n开放时间:{$open_time}\n景点详情:{$abstract}{$description}";<br>
$weObj->text("{$b}")->reply(); <br>
<br>
}<br>
//这里做了一个健康的资讯信息查询,程序员嘛健康还是挺重要的<br>
if($str=='健康' && !empty($str_key)){<br>
$url = 'http://apis.baidu.com/yi18/lore/loreclass?id=1';<br>
$header = array(<br>
'apikey: 。。。自己申请。。。。。',<br>
); <br>
$thisres=$this->curl($url,$header);<br>
$a=$this->curl($url,$header);<br>
$thisres=$a->yi18; <br>
for ($i=0; $i
$q=$thisres[$i]->id;<br>
$w=$thisres[$i]->name;<br>
$qq.='';<br>
$qq.="序号:{$q}--标题:{$w}\n";<br>
}<br>
$weObj->text("{$qq}\n请选择您想了解的信息的序号,如:1标题")->reply();<br>
<br>
<br>
}<br>
if($str=='标题' && !empty($str_key)){<br>
$ch = curl_init();<br>
$url = "http://apis.baidu.com/yi18/lore/list?page=1&limit=10&type=id&id={$str_key}";<br>
$header = array(<br>
'apikey: 同上',<br>
); <br>
curl_setopt($ch, CURLOPT_HTTPHEADER , $header);<br>
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);<br>
// 执行HTTP请求<br>
curl_setopt($ch , CURLOPT_URL , $url);<br>
$res = curl_exec($ch);<br>
$b=json_decode($res);<br>
<br>
$thisres2=$b->yi18; <br>
foreach ($thisres2 as $key => $value) {<br>
$q=$thisres2[$key]->id;<br>
$w=$thisres2[$key]->title;<br>
$qq.='';<br>
$qq.="id:{$q}--信息:{$w}\n";<br>
} <br>
<br>
$weObj->text("{$qq}\n请选择您想了解的信息的id,如:18069信息")->reply();<br>
<br>
}<br>
if($str=='信息' && !empty($str_key)){<br>
<br>
$url = "http://apis.baidu.com/yi18/lore/detail?id={$str_key}";<br>
$header = array(<br>
'apikey: ',<br>
); <br>
$a=$this->curl($url,$header);<br>
$thisres=$a->yi18; <br>
<br>
$q=$thisres->message;<br>
$w=$thisres->title;<br>
//$qq='标题.$w.正文.$q';<br>
<br>
<br>
$qq="标题:{$w}\n正文:{$q}";<br>
$str=str_replace("<strong>","",$qq);<br>
$ww=strip_tags($str);<br>
$weObj->text("{$ww}")->reply();<br>
<br>
<br>
}<br>
<br>
<br>
<br>
//天气查询<br>
if($str == '天气' && !empty($str_key)) {<br>
$url="http://api.map.baidu.com/telematics/v2/weather?location={$str_key}&ak=同上";<br>
$sp=new \Snoopy;<br>
$sp->fetch($url);<br>
$l_xml=$sp->results;<br>
$f=simplexml_load_string($l_xml);<br>
$city=$f->currentCity;<br>
$da1=$f->results->result[0]->date;<br>
$da2=$f->results->result[1]->date;<br>
$da3=$f->results->result[2]->date; <br>
$w1=$f->results->result[0]->weather;<br>
$w2=$f->results->result[1]->weather;<br>
$w3=$f->results->result[2]->weather; <br>
$p1=$f->results->result[0]->wind;<br>
$p2=$f->results->result[1]->wind;<br>
$p3=$f->results->result[2]->wind;<br>
$q1=$f->results->result[0]->temperature;<br>
$q2=$f->results->result[1]->temperature;<br>
$q3=$f->results->result[2]->temperature;<br>
$k1=$f->results->result[0]->dayPictureUrl; <br>
$k2=$f->results->result[1]->dayPictureUrl;<br>
$k3=$f->results->result[2]->dayPictureUrl; <br>
$d1=$city.$da1.$w1.$p1.$q1;<br>
$d2=$city.$da2.$w2.$p2.$q2;<br>
$d3=$city.$da3.$w3.$p3.$q3;<br>
$weObj->text("{$d1}\n{$d2}\n{$d3}")->reply();<br>
}<br>
<br>
//剩下的任务就交给机器人自己去完成吧!;<br>
//这里我使用的是图灵机器人,通过我女朋友和机器人聊天实验表明还是付费的机器人比较聪明,免费的有点傻傻的,所以土豪们可以选择付费的,按条数付费的<br>
<br>
else {<br>
<br>
$strurl="http://www.tuling123.com/openapi/api?key=自己申请个key吧&info={$content}";<br>
$xhy=new \Snoopy;<br>
$xhy->fetch($strurl);<br>
$x_json=$xhy->results;<br>
$strjson=json_decode($x_json);<br>
//$a=var_dump($strjson);<br>
$contentStr = $strjson->text;<br>
//$weObj->text("{$contentStr}")->reply();<br>
$weObj->text("{$contentStr}")->reply();<br>
}<br>
break;<br>
<br>
case \Wechat::MSGTYPE_LOCATION:<br>
//接收消息的地理位置<br>
$arr1=$weObj->getRev()->getRevGeo();<br>
$snoopy=new \Snoopy;<br>
$url="http://api.map.baidu.com/telematics/v2/distance?waypoints=填你的位置的经纬度;{$arr1['x']},{$arr1['y']}&ak=同上";<br>
$snoopy->fetch($url);<br>
$lines_string=$snoopy->results; <br>
$fk=simplexml_load_string($lines_string);<br>
$juli=$fk->results->distance;<br>
$contentstring="你和我的距离有{$juli}米远";<br>
$weObj->text("{$contentstring}")->reply();<br>
break;<br>
//接受图片回复文字,也可以回复图片,你们自由发挥吧<br>
case \Wechat::MSGTYPE_IMAGE:<br>
$b=" ";<br>
$a=rand(1,3);<br>
switch ($a)<br>
{case 1;<br>
$b="你傻逼啊,发这么二的图片";<br>
break;<br>
case 2;<br>
$b="跟你一样丑";<br>
break;<br>
default;<br>
$b="啊,我的天哪"; <br>
} <br>
$weObj->text("哈哈我知道这是图片\n:{$b}")->reply();<br>
//exit; <br>
break;<br>
//实现首次关注回复功能<br>
case \Wechat::MSGTYPE_EVENT:<br>
$msgEvent=$weObj->getRev()->getRevEvent();<br>
<br>
$weObj->text("感谢您关注阮琴专用测试版公众号\n查天气:城市+天气,如广州天气\n翻译:字词+翻译,如好翻译\n测距:发送位置\n查书:书名+书本,如php书本\n听歌:回复音乐\n查公交路线,如杭州,151公交\n健康知识:任意字+健康,如,查健康\n景点查询:景点名(请使用拼音)+景点如xihu景点\n还可选择发送图片,搞笑也会来和大家聊天哦!\n更多内容,敬请期待...")<br>
->reply();<br>
break;<br>
<br>
default:<br>
$weObj->text("查天气:城市+天气,如广州天气\n翻译:字词+翻译,如好翻译\n测距:发送位置\n查书:书名+书本,如php书本\n听歌:回复音乐\n还可选择发送图片,谢谢你的关注,更多内容,敬请期待...")->reply();<br>
<br>
}<br>
}<br>
<br>
} </strong>
weixin.zip
( 20.27 KB 下载:203 次 )
AD:真正免费,域名+虚机+企业邮箱=0元

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

WebStorm Mac版
好用的JavaScript開發工具

禪工作室 13.0.1
強大的PHP整合開發環境

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中