通讯工具已经成为我们生活中不可缺少的一部分,说到中国最火的通讯工具就是腾讯公司推出的QQ聊天工具,同样腾讯旗下的微信工具也引发了一场热潮;这篇博客我们就来讲一下微信公众号的开发;
首先我们需要准备的工具有:
①微信公众号
②微信测试号;
③微信开发平台;
首先,登录微信公众平台;我们可以看到页面左侧的菜单栏有:”功能”,”管理”,”推广”,”统计”,”设置”,”开发”等几个分类;”功能”分类都是微信官方做好的功能,适用于普通用户.我们需要的用到的是”开发”分类;”开发”分为:-基本配置 -开发者工具 -运维中心 -接口权限四个小分类;
第一步:点开基本配置:
可以看到开发者ID模块;下方有一个启用按钮,启用配置以后;左侧菜单栏的功能分类就无法使用了;
按钮下方展示的就是服务器的配置了;
Url(服务器地址):””;//配置所在地址,用于微信平台调用功能配置;
Token(令牌):””;//相当于钥匙,用于对接配置时验证请求;
EncodingAESKey(消息加密解密密钥):””;//加密解密信息,运用的是对称解密;
第二步:点开接口权限:
会出现很多的功能接口;大部分状态是未获取;所以无法使用,不过微信还给了我们另一个实现方式;
第三步:点击开发者工具
出现很多为开发者准备的功能;
①点击公众平台测试帐号;(这个平台和微信公众平台不是同一个);
②进入页面显示功能都可以使用;
正式开发
进入公众平台测试帐号的开发平台(图);
我们可以参考微信提供的:公众平台开发者文档;
第一步:填写服务器配置;
第二步:验证服务器地址有效性(图);
第三步:依据接口文档实现业务逻辑;
第四步:获取接口调用凭证;
①创建接口文件;-生成调用接口链接地址(因为调用token有次数限制和时效7200限制,可以生成一条时效性6000或7000缓存,);
完成自动回复
我们首先完成自动回复文本功能的实现;
①微信提供了一个用于对接的demo;点击下载;
②开发建议在线上开发,如果没有,可以下载’开发者工具’中的web开发者工具;
③进入下载的demo配置中(图);首先需要验证密码;
④完成对接;在公众测试平台接口配置出修改;url’把demo文件地址写入’;token’口令,需要和demo配置中定义的token值相同’;
⑤调用自动回复文本功能;$this->responseMsg()(图);
⑥实现功能;(回复内容可以更改$contentStr实现);
完成自定义菜单
实现自定义菜单步骤;
①获取token验证;
<span style="font-family:Calibri;">//我们可以根据请自己调取access_token</span>
<?php
define("APPID", "wxb4029a5fe21e76fc");
define("APPSECRET", "14943af63cafca6fcdba7733c0b35d98");
//<span style="font-family:Calibri;">此方法用于获取公众号token;</span>
function get_accesstoken()
{
//echo '131';die;
/*static $access_token;
if (!empty($access_token)) {
return self::$access_token;
} else {*/
$url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' . APPID . '&secret=' . APPSECRET;
$file = file_get_contents($url);
$arr = json_decode($file, true);
$access_token = $arr['access_token'];
return $access_token;
/* }*/
}
?>
②获取调用接口网址;
//<span style="font-family:Calibri;">通过引入页面调用获取token的方法获取token;</span>
include ("get_accesstoken.php");
$access_token=get_accesstoken();
//echo $access_token;
③通过post请求;
//<span style="font-family:Calibri;">首先我们要模拟post请求;</span>
function curlPost($url,$data,$method){
$ch = curl_init(); //1.初始化
curl_setopt($ch, CURLOPT_URL, $url); //2.请求地址
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);//3.请求方式
//4.参数如下
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);//https
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)');//模拟浏览器
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER,array('Accept-Encoding: gzip, deflate'));//gzip解压内容
curl_setopt($ch, CURLOPT_ENCODING, 'gzip,deflate');
if($method=="POST"){//5.post方式的时候添加数据
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
}
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$tmpInfo = curl_exec($ch);//6.执行
if (curl_errno($ch)) {//7.如果出错
return curl_error($ch);
}
curl_close($ch);//8.关闭
return $tmpInfo;
}
//<span style="font-family:Calibri;">通过</span>
<pre style="background-color:#ffffff;color:#000000;font-family:'宋体';font-size:12pt;"><span style="color:#660000;background-color:#ffe4ff;">$url</span><span style="background-color:#f7faff;">=</span><span style="color:#008000;background-color:#f7faff;font-weight:bold;">'https://api.weixin.qq.com/shakearound/account/register?access_token='</span><span style="background-color:#f7faff;">.</span><span style="color:#660000;background-color:#f7faff;">$access_token</span><span style="background-color:#f7faff;">;
</span><span style="background-color:#f7faff;">
</span><span style="background-color:#f7faff;">
</span><span style="color:#660000;background-color:#f7faff;">$data</span><span style="background-color:#f7faff;">=</span><span style="color:#008000;background-color:#f7faff;font-weight:bold;">'"name": "zhang_san",
</span><span style="color:#008000;background-color:#f7faff;font-weight:bold;"> "phone_number": "手机号",
</span><span style="color:#008000;background-color:#f7faff;font-weight:bold;"> "email": "1<span style="font-family:Calibri;">112312</span>7@qq.com",
</span><span style="color:#008000;background-color:#f7faff;font-weight:bold;"> "industry_id": "1024",
</span><span style="color:#008000;background-color:#f7faff;font-weight:bold;"> "qualification_cert_urls": [
</span><span style="color:#008000;background-color:#f7faff;font-weight:bold;"> ],
</span><span style="color:#008000;background-color:#f7faff;font-weight:bold;"> "apply_reason": "test"'</span><span style="background-color:#f7faff;">;
</span><span style="color:#660000;background-color:#f7faff;">$method</span><span style="background-color:#f7faff;">=</span><span style="color:#008000;background-color:#f7faff;font-weight:bold;">"POST"</span><span style="background-color:#f7faff;">;
</span><span style="color:#660000;background-color:#f7faff;">$file</span><span style="background-color:#f7faff;">=curlPost(</span><span style="color:#660000;background-color:#e4e4ff;">$url</span><span style="background-color:#f7faff;">,</span><span style="color:#660000;background-color:#f7faff;">$data</span><span style="background-color:#f7faff;">,</span><span style="color:#660000;background-color:#f7faff;">$method</span><span style="background-color:#f7faff;">);
</span><span style="color:#660000;background-color:#f7faff;">$file</span><span style="background-color:#f7faff;">=</span><span style="background-color:#f7faff;font-style:italic;">mb_convert_encoding</span><span style="background-color:#f7faff;">(</span><span style="color:#660000;background-color:#f7faff;">$file</span><span style="background-color:#f7faff;">,</span><span style="color:#008000;background-color:#f7faff;font-weight:bold;">'UTF-8'</span><span style="background-color:#f7faff;">,</span><span style="color:#008000;background-color:#f7faff;font-weight:bold;">'GBK'</span><span style="background-color:#f7faff;">);</span>
进行请求
④完成:输出errmsg:OK;
失败:输出errmsg:invalid button name size;
⑤完成后展示需要重新关注;并重新请求;