微信公众号中个性化菜单的开发实例
微信公众号中个性化菜单的开发实例个性化菜单让公众号的不同用户群体看到不一样的自定义菜单。该接口开放给已认证订阅号和已认证服务号,个性化菜单要求用户的微信客户端版本在iPhone6.2.2,Android 6.2.4以上,暂时不支持其他版本微信,另外定义个性化菜单之前必须先定义默认菜单。 开发者可以通过以下条件来设置用户看到的菜单:
个性化菜单匹配规则说明: 个性化菜单的更新是会被覆盖的。 本例的项目结构如下,除了上一章的文件之外,还增加了三个处理个性化菜单的文件。 addconditional_menu.php:创建个性化菜单 trymatch.php: 测试匹配个性化菜单 delconditional_menu.php:删除个性化菜单 1、创建个性化菜单创建个性化菜单的接口是https://api.weixin.qq.com/cgi-bin/menu/addconditional?access_token=ACCESS_TOKEN,以post方式发送菜单字符串。 addconditional_menu.php <?phprequire_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和上面的不一样是因为我删除了之前的个性化菜单,然后重新初始化了一次。
|