微信公众号中个性化菜单的开发实例

互联网 17-9-7

微信公众号中个性化菜单的开发实例

个性化菜单的更新是会被覆盖的。例如公众号先后发布了默认菜单,个性化菜单1,个性化菜单2,个性化菜单3。那么当用户进入公众号页面时,将从个性化菜单3开始匹配,如果个性化菜单3匹配成功,则直接返回个性化菜单3,否则继续尝试匹配个性化菜单2,直到成功匹配到一个菜单。根据上述匹配规则,为了避免菜单生效时间的混淆,决定不予提供个性化菜单编辑API,开发者需要更新菜单时,需将完整配置重新发布一轮。

本例的项目结构如下,除了上一章的文件之外,还增加了三个处理个性化菜单的文件。

1、创建个性化菜单

创建个性化菜单的接口是https://api.weixin.qq.com/cgi-bin/menu/addconditional?access_token=ACCESS_TOKEN,以post方式发送菜单字符串。

<?php  require_once('./Utils.php');  //个性化菜单字符串  $menujson = '{  	"button":[   	{      	"type":"click",      	"name":"单击",       	"key":"V1001_TODAY_MUSIC"  	},  	{  		"name":"搜素",  		"sub_button":[              {                  "type":"view",                  "name":"百度",                  "url":"http://www.baidu.com/"              }          ]   }],   "matchrule":{    "sex":"1"    }  }';  $url = "https://api.weixin.qq.com/cgi-bin/menu/addconditional?access_token=".Utils::get_access_token();  //创建个性化菜单  $result = Utils::https_request($url, $menujson);  //返回返回menuid表示成功  echo $result;

返回结果如下:

查看菜单发现从默认菜单变成了个性化菜单,如下所示

这里只设置了性别过滤,1表示男性,有关其他的条件设置请参看个性化菜单接口。

2、测试个性化菜单匹配结果

测试接口是https://api.weixin.qq.com/cgi-bin/menu/trymatch?access_token=ACCESS_TOKEN,需要post "user_id"过去。

trymatch.php

<?php      @header('Content-type: text/plain;charset=UTF-8');      require_once('./Utils.php');      $url = "https://api.weixin.qq.com/cgi-bin/menu/trymatch?access_token=".Utils::get_access_token();      //user_id可以是粉丝的OpenID,也可以是粉丝的微信号      $userID = '{"user_id":"o4WmZ0h-4huBUVQUczx2ezaxIL9c"}';      $result = Utils::https_request($url, $userID);      echo $result;  ?>

返回结果如下:

3、删除个性化菜单

删除个性化菜单接口是https://api.weixin.qq.com/cgi-bin/menu/delconditional?access_token=ACCESS_TOKEN,需要post“menuid”过去。

delconditional_menu.php

<?php      @header('Content-type: text/plain;charset=UTF-8');      require_once('./Utils.php');      $url = "https://api.weixin.qq.com/cgi-bin/menu/delconditional?access_token=".Utils::get_access_token();      //menuid,个性化菜单的menuid      $menuID = '{"menuid":414784577}';      $result = Utils::https_request($url, $menuID);      echo $result;  ?>

返回结果如下表示成功:

4、查询个性化菜单

这里的menuid和上面的不一样是因为我删除了之前的个性化菜单,然后重新初始化了一次。

使用普通自定义菜单删除接口可以删除所有自定义菜单(包括默认菜单和全部个性化菜单)

以上就是微信公众号中个性化菜单的开发实例的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: 公众
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:0基础微信开发入门视频教程的资料分享

相关资讯