中国新媒体(http://www.zhgxmt.cn):微信自定义开发demo
由于最近工作很忙,没时间整理,据说很多人苦于微信SDK开发,特献上个人的开发成果(微信自定义开发demo),聊表寸心,望笑纳!
项目案例:微信搜索”启德国际教育“或扫描二维码
开发周期:2013-06~2013-08
参与人员:bqq,hongye
主要功能:
01)微信的自动回复(文本,图文,音频)
02)微信自定义菜单
03)微视频,疯狂猜单词,疯狂听单词,账号绑定CRM,启德名师,高分学员,院校库等模块上线
04)手机通过微信绑定后,将微信账号反推至CRM
05)教务系统调课,根据调课事件推送微信消息至相关人员
看到那些热心的朋友:给予帮助和支持,真的很感激,也希望各位早日脱离屌丝,走向小康,谢谢!
好了,废话少说,说说注意事项,解析代码吧(以我的案例):
注意事项:
一,如果你没有公众账号,且未经认证,建议别玩,因为你很难玩转,项目公众平台截图
二,必须开启开发模式,编辑模式有意思吗?那是小编干的活,
三,配置信息很重要,你会用到的,URL就是你部署的地址,我的马赛克打的何如?
四,好好看看接口文档吧,如果需要开启更多功能,请呼叫马化腾,
代码解析:include("weixin.php");
require_once 'hyphp/config.ini.php';//调用自定义配置文件
define("ACCOUNT", "");//微信公众平台的用户名
define("PASSWORD", "");//微信公众平台的密码
define("TOKEN", "");//开发模式的TOKEN码
define('DEBUG', true);//是否开启调试模式
$param = array('username'=>'微信公众平台的用户名', 'pwd'=>'微信公众平台的密码');
$weixin = new Weixin(TOKEN,DEBUG);
if($weixin->login($param)){
你可以猥琐欲为了,哈哈哈哈
}
else{
配置信息不对,别想模拟登录
}如果你需要自定义菜单,就生成吧,我写在这里做了注释,因为一般只需要生成一次即可,除非你老是修改菜单,生成后,不会立即显示,因为有24小时的缓存,除非你取消关注,然后重新关注即可!
/*生成自定义菜单开始*/
/*$xjson = '{
"button":[
{
"name":"篮球",
"sub_button":[
{
"type":"click",
"name":"nba",
"key":"V1001_NBA"
},
{
"type":"click",
"name":"cba",
"key":"V1001_CBA"
}
]
},
{
"name":"体育",
"sub_button":[
{
"type":"click",
"name":"足球",
"key":"V1001_ZUQIU"
},
{
"type":"click",
"name":"排球",
"key":"V1001_PAIQIU"
},
{
"type":"click",
"name":"网球",
"key":"V1001_WANGQIU"
},
{
"type":"click",
"name":"乒乓球",
"key":"V1001_PPQ"
},
{
"type":"click",
"name":"台球",
"key":"V1001_TAIQIU"
}
]
},
{
"name":"新闻",
"sub_button":[
{
"type":"click",
"name":"国内新闻",
"key":"V1001_GNNEWS"
},
{
"type":"click",
"name":"国际新闻",
"key":"V1001_GJNEWS"
},
{
"type":"click",
"name":"地方新闻",
"key":"V1001_AREANEWS"
},
{
"type":"click",
"name":"家庭新闻",
"key":"V1001_HOMENEWS"
}
]
}
]
}';
$jsonMenu = json_encode($xjson);
$get_url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=开发者模式中的AppId串&secret=开发者模式中的AppSecret串';
$get_return = file_get_contents($get_url);
$get_return = (array)json_decode($get_return);
if( !isset($get_return['access_token']) ){exit( '获取access_token失败!' );}
$post_url = 'https://api.weixin.qq.com/cgi-bin/menu/create?access_token='.$get_return['access_token'];
$ch = curl_init($post_url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS,$xjson);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($xjson))
);
$respose_data = curl_exec($ch);
echo $respose_data;exit;*/
/*生成自定义菜单结束*/你会看懂的,点击菜单事件回复,文本消息回复,智能语音识别
$weixin->getMsg();
$type = $weixin->msgtype; //消息类型
$username = $weixin->msg['FromUserName'];//哪个用户给你发的消息,这个$username是微信加密之后的,每个用户都是一一对应的
if ($type === 'event') {//点击菜单事件
$eventkey = $weixin->eventkey;//获取当前菜单key
if($eventkey=='V1001_NBA') {
$hongye_bqq = '您点击的NBA菜单,哈哈';
}
if($eventkey=='V1001_CBA') {
$hongye_bqq = '您点击的CBA菜单,哈哈';
}
else{
$hongye_bqq = '欢迎关注bqq!';
}
}
if ($type === 'text') {//文本输入
$kwds=$weixin->msg['Content'];
$sql="select * from `wx_text_msg` where `question` like '%$kwds%' ";
$res=getOne($sql);
if($res) {
$reply = $weixin->makeText($res['answer']);
}
else{
$reply = $weixin->makeText('抱歉,根据您输入的文本,暂时未找到相关匹配信息');
}
}
if ($type === 'voice') {//语音输入
$kwds = substr($weixin->msg['Recognition'],0,-3);
$sql="select * from `wx_voice_msg` where `question` like '%$kwds%' ";//根据语音输入关键词,查询数据表匹配答案
$res=getOne($sql);
if($res) {
$reply = $weixin->makeText($res['answer']);
}
else{
$reply = $weixin->makeText('抱歉,根据您输入的语音,暂时未找到相关匹配信息');
}
}
$weixin->reply($reply);
(此文不代表本网站观点,仅代表作者言论,由此文引发的各种争议,本网站声明免责,也不承担连带责任。)