不更新问题:
度娘说的到的没有什么用。
所以我们自己在调用一次生成函数就可以了。
微信菜单不是渲染一个页面重新加载一下,这个菜单式只提交一次的,然后就由微信存储,所以会有项目更新实际公众号没更新的问题,
以下文件你新建一个或者放在别的php里面,在引入的时候调用一次就可以了
function getMenu(){
$cfg= wechatconfig();
$rs = getAccessToken($cfg['wx_appid'],$cfg['wx_appsecret']);
$access_token = $rs['access_token'];
$jsonmenu = '{
"button":[
{
"name":"关于太易",
"sub_button":[
{
"type":"click",
"name":"消息1号",
"key":"消息1号"
},
{
"type":"click",
"name":"消息2号",
"key":"消息2号"
},
{
"type":"view",
"name":"官网",
"url":"http://www.baidu.cn/"
}]
},
{
"name":"产品中心",
"sub_button":[
{
"type":"view",
"name":"安全",
"url":"http://www.baidu.cn/"
},
{
"type":"view",
"name":"公",
"url":"https://i.cnblogs.com/"
}, { "type":"click", "name":"消息", "key":"笑话" }] }] }';
$url = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=".$access_token; $result = https_request($url, $jsonmenu);
var_dump($result);
}
注意一下,这个的 access_token 和之前获取用户信息的 access_token 不是一个,是通过appid和appsecrect直接获取的。
代码如下:
function getAccessToken($appid, $appsecret)
{
$url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' . $appid . '&secret=' . $appsecret;
$result = myCurlGet($url);
$arr = json_decode($result, true);
return $arr;
}
这个函数里面涉及到的 myCurlGet 函数是 curl 方式读取接口数据
/*
* curl get方式读取接口数据,数据要求为标准json格式
* @param $source 外部数据url
* update 2015-02-04 08:48:31
*/
function myCurlGet($source)
{
$url = $source;
$ch = curl_init();
$timeout = 5;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);//强制协议为1.0
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Expect: ")); //头部要送出'Expect:
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 ); //强制使用IPV4协议解析域名
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //本地开发 不检查 ssl
$result = curl_exec($ch);
if (curl_errno($ch)) {
return curl_error($ch);
}
curl_close($ch);
return $result;
//$arr = json_decode($result,true);
}
原创文章,作者:1402239773,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/272667.html