Java根据标签设置用户个性化菜单

个性化菜单具体使用场景

         为了实现对用户的精准推送,我们决定将通过代码设置用户显示个性化的菜单,用户一关注我们的公总号,我们就会给用户打一个新用户的标签,然后我们可以设置相应的筛选条件来筛选出相应的用户群体,然后我们可以将这批用户显示个性化的菜单栏,我们可以设置其相应的菜单。

 

给用户设置个性化的标签

我们将调用下面的方法对用户打一个标签,该方法关键的几个参数一个是AccessToken,还

有标签的tagId,还有一个就是执行对象(也就是用户)的openId;

public static boolean grantTagsToUsers(String accessToken,String tagId,List<String>openIds) {

        

         StringrequestUrl = GRANT_TAG_TO_USER_URL.replace("ACCESS_TOKEN", accessToken);

 

         Tag4UsersVotag4UsersVo = newTag4UsersVo(openIds, Integer.parseInt(tagId));

         StringuserTagJsonStr = JsonUtils.objectToJson(tag4UsersVo);

        

         //根据用户openid查询该用户所在的分组信息

JSONObjectjsonObject = HttpsUtil.sendHttpsRequest(requestUrl, "POST", userTagJsonStr);

        

         if(null != jsonObject)

         {

              Stringerrcode = jsonObject.getString("errcode");

              Stringerrmsg = jsonObject.getString("errmsg");

             

              if ("0".equals(errcode)&& "ok".equals(errmsg)){

                   returntrue;

              }

         }

         returnfalse;


设置用户显示个性化的菜单栏

登录微信公众平台:链接:

https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1455782296

 

 

点击个性化菜单栏,查看个性化菜单栏的HTTPS请求链接,以及需要传入的json的参数类型


用Java对象生成与之相应的对象,赋值,然后转成json字符串格式,然后再调用自己的方法

参数需要微信的accessToken和自定义Java封装的对象gxhMenuVo

public static String createGxhMenu(String accessToken,GxhMenuVo gxhMenuVo ){

        

         //1.拼接真实访问地址

         StringrequestUrl = CREATE_GXH_MENU_URL.replace("ACCESS_TOKEN", accessToken);

 

         //2.封装访问的参数

         StringopenIdJsonStr = JsonUtils.objectToJson(gxhMenuVo);

        

         System.out.println(openIdJsonStr);

        

         //3.发起HTTPS请求获取结果

         JSONObjectjsonObject = HttpsUtil.sendHttpsRequest(requestUrl,"POST", openIdJsonStr);

        

         //4.验证结果的准确性

         if(null != jsonObject)

         {

              System.out.println(jsonObject);

         }

        

         return null;


到这里我们的方法是已经写好了,我们现在要做的需求就是将新关注的用户的同一打上标签然后将这些用户显示统一的个性化菜单栏。因此我们需要在总的代码微信入口中的用户关注的事件中调用这个方法就可以了。

附上我自己写的用户关注执行个性化菜单调用代码


     public boolean setUserMeun(String openId){

         AccessToken accessToken =WeixinUtil.getAccessToken(CommonConstant.APPID, CommonConstant.APP_SECRET);

        

         WxTagUtil.grantTagsToUsers(accessToken.getAccess_token(),"103", Arrays.asList(openId));

        

         MatchruleVo matchrule = new MatchruleVo();

         matchrule.setTag_id("103");

         List<Object> button = newArrayList<Object>();

         button.add(new OneLevelButtonVo("click","今日歌曲","V1001_TODAY_MUSIC"));

         GxhMenuVo gxhMenuVo = new GxhMenuVo(button,matchrule);

         String createGxhMenu =WxMenuUtil.createGxhMenu(accessToken.getAccess_token(), gxhMenuVo );

         

         return true;

     }

}    


 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值