@DependsOn(value="weChatTokenManager") @Component public class PersonalizedMenuManager extends Object
个性化菜单接口 为了帮助公众号实现灵活的业务运营,微信公众平台新增了个性化菜单接口,开发者可以通过该接口,让公众号的不同用户群体看到不一样的自定义菜单。该接口开放给已认证订阅号和已认证服务号。 开发者可以通过以下条件来设置用户看到的菜单: 用户标签(开发者的业务需求可以借助用户标签来完成) 已废弃性别 手机操作系统 已废弃地区(用户在微信客户端设置的地区) 已废弃语言(用户在微信客户端设置的语言) 注意:为保护个人隐私,公众号个性化菜单将不再支持对性别、地区、语言这类涉及个人隐私数据的信息进行筛选的功能,具体调整如下: 创建时,只要匹配条件中包含隐私信息的,将被拒绝,并返回错误码 65320; 已经创建的,如包含隐私信息的则自动失效,不包含的则正常匹配; 开发者仍然可以正常通过测试接口,获取到粉丝看到的菜单; 查询个性化菜单时,所有规则正常显示。 个性化菜单接口说明: 个性化菜单要求用户的微信客户端版本在iPhone6.2.2,Android 6.2.4以上,暂时不支持其他版本微信 菜单的刷新策略是,在用户进入公众号会话页或公众号profile页时, 如果发现上一次拉取菜单的请求在5分钟以前,就会拉取一下菜单,如果菜单有更新,就会刷新客户端的菜单。 测试时可以尝试取消关注公众账号后再次关注,则可以看到创建后的效果 普通公众号的个性化菜单的新增接口每日限制次数为2000次,删除接口也是2000次,测试个性化菜单匹配结果接口为20000次 出于安全考虑,一个公众号的所有个性化菜单,最多只能设置为跳转到3个域名下的链接 创建个性化菜单之前必须先创建默认菜单(默认菜单是指使用普通自定义菜单创建接口创建的菜单)。如果删除默认菜单,个性化菜单也会全部删除 个性化菜单接口支持用户标签,请开发者注意,当用户身上的标签超过1个时,以最后打上的标签为匹配 个性化菜单匹配规则说明: 个性化菜单的更新是会被覆盖的。 例如公众号先后发布了默认菜单,个性化菜单1,个性化菜单2,个性化菜单3。那么当用户进入公众号页面时,将从个性化菜单3开始匹配, 如果个性化菜单3匹配成功,则直接返回个性化菜单3,否则继续尝试匹配个性化菜单2,直到成功匹配到一个菜单。 根据上述匹配规则,为了避免菜单生效时间的混淆,决定不予提供个性化菜单编辑API,开发者需要更新菜单时,需将完整配置重新发布一轮。
| 构造器和说明 |
|---|
PersonalizedMenuManager() |
| 限定符和类型 | 方法和说明 |
|---|---|
PersonalizedMenuResponse |
createMenu(PersonalizedMenuDTO personalizedMenuDTO)
创建个性化菜单
|
WeChatResponse |
deleteMenu(@NotBlank(message="\u83dc\u5355id\u4e0d\u80fd\u4e3a\u7a7a") String menuId)
删除菜单数据
|
MatchPersonalizedMenuResponse |
tryMatch(@NotBlank(message="uid\u4e0d\u80fd\u4e3a\u7a7a") String uid)
尝试匹配用户信息
|
public PersonalizedMenuResponse createMenu(@Validated(value=Insert.class) PersonalizedMenuDTO personalizedMenuDTO) throws WeChatException, ParamCheckException
personalizedMenuDTO - 个性化菜单数据ParamCheckException - 参数检查不通过WeChatException - 微信服务端验证失败public WeChatResponse deleteMenu(@NotBlank(message="\u83dc\u5355id\u4e0d\u80fd\u4e3a\u7a7a") @NotBlank(message="\u83dc\u5355id\u4e0d\u80fd\u4e3a\u7a7a") String menuId) throws WeChatException, ParamCheckException
menuId - 要删除的个性化菜单条件idParamCheckException - 参数检查不通过WeChatException - 微信服务端验证失败public MatchPersonalizedMenuResponse tryMatch(@NotBlank(message="uid\u4e0d\u80fd\u4e3a\u7a7a") @NotBlank(message="uid\u4e0d\u80fd\u4e3a\u7a7a") String uid) throws WeChatException, ParamCheckException
uid - 可以是粉丝的OpenID,也可以是粉丝的微信号。ParamCheckException - 参数检查不通过WeChatException - 微信服务端验证失败Copyright © 2023. All rights reserved.