黔优媒体网-软文媒体自助发稿平台!
  1. 行业资讯
  2. 正文

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

来源:黔优媒体网   时间:2024-09-19

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

个性化菜单让公众号的不同用户群体看到不一样的自定义菜单。该接口开放给已认证订阅号和已认证服务号,个性化菜单要求用户的微信客户端版本在iphone6.2.2,android 6.2.4以上,暂时不支持其他版本微信,另外定义个性化菜单之前必须先定义默认菜单。

开发者可以通过以下条件来设置用户看到的菜单:

用户标签(开发者的业务需求可以借助用户标签来完成)

性别

手机操作系统

地区(用户在微信客户端设置的地区)

语言(用户在微信客户端设置的语言)

个性化菜单匹配规则说明:

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

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


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

 ?php
require_once( #39;./Utils.php #39;);
//个性化菜单字符串
$menujson = #39;{
 button :[
 type : click ,
 name : 单击 ,
 key : V1001_TODAY_MUSIC 
 name : 搜素 ,
 sub_button :[
 type : view ,
 name : 百度 ,
 url : http://www.baidu.com/ 
 matchrule :{
 sex : 1 
} #39;;
$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( #39;Content-type: text/plain;charset=UTF-8 #39;);
 require_once( #39;./Utils.php #39;);
 $url = https://api.weixin.qq.com/cgi-bin/menu/trymatch?access_token= .Utils::get_access_token();
 //user_id可以是粉丝的OpenID,也可以是粉丝的微信号
 $userID = #39;{ user_id : o4WmZ0h-4huBUVQUczx2ezaxIL9c } #39;;
 $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( #39;Content-type: text/plain;charset=UTF-8 #39;);
 require_once( #39;./Utils.php #39;);
 $url = https://api.weixin.qq.com/cgi-bin/menu/delconditional?access_token= .Utils::get_access_token();
 //menuid,个性化菜单的menuid
 $menuID = #39;{ menuid :414784577} #39;;
 $result = Utils::https_request($url, $menuID);
 echo $result;
? 

返回结果如下表示成功:

4、查询个性化菜单

使用普通自定义菜单查询接口可以获取默认菜单和全部个性化菜单信息,请参看上一章。


查询之后结果如下:


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


5、删除所有菜单

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

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

微信app下载

微信是一款手机通信软件,支持通过手机网络发送语音短信、视频、图片和文字。微信可以单聊及群聊,还能根据地理位置找到附近的人,带给大家全新的移动沟通体验,有需要的小伙伴快来保存下载体验吧!


【免责申明】黔优媒体网以上展示内容来源于用户自主上传、合作媒体、企业机构或网络收集整理,版权争议与本站无关,文章涉及见解与观点不代表黔优媒体网官方立场,请读者仅做参考,本文标题:微信公众号中个性化菜单的开发实例;欢迎转载,转载时请说明出处。若您认为本文侵犯了您的版权信息,或您发现该内容有任何违法/违规的内容,请您立即联系我们及时修正或删除。(邮箱号: kefu@qianu.com)
此操作需要登录,请先登录~
免费注册会员,尽享国内领先平台!