微信公众号java开发沉淀(二)菜单设置


菜单相关的介绍都在 https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141013

package com.tsing.wechat.service;

import com.tsing.wechat.utils.HttpUtils;
import com.tsing.wechat.utils.ResourceUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.io.IOException;

@Slf4j
@Service
public class MenuService {

    private static final String MENU_CREATE_URL = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=%s";
    private static final String MENU_GET_URL = "https://api.weixin.qq.com/cgi-bin/menu/get?access_token=%s";
    private static final String MENU_DELETE_URL = "https://api.weixin.qq.com/cgi-bin/menu/delete?access_token=%s";

    @Resource
    private WxUserInfoService wxUserInfoService;

    public void getMenu() {
        String access_token = wxUserInfoService.getToken();
        String url = String.format(MENU_GET_URL, access_token);
        String res = HttpUtils.doGet(url);
        log.info("获取菜单返回:{}", res);
    }

    public void createMenu() throws IOException {
        String access_token = wxUserInfoService.getToken();
        String url = String.format(MENU_CREATE_URL, access_token);
        String json = ResourceUtils.getResourceString("/menu.txt");
        log.info("创建菜单的参数:{}", json);
        String res = HttpUtils.doPost(url, json);
        log.info("创建菜单返回:{}", res);
    }

    public void delMenu() {
        String access_token = wxUserInfoService.getToken();
        String url = String.format(MENU_DELETE_URL, access_token);
        String res = HttpUtils.doGet(url);
        log.info("删除菜单返回:{}", res);
    }

}

wxUserInfoService 是为了获取到access_token,这里我就不赘述了。 菜单创建删除获取的三个url列在了上面。

这次我创建菜单的样式menu.txt是:

{
     "button":[
     {
          "type":"click",
          "name":"用户信息",
          "key":"USER_INFO_CLICK"
      },
      {
           "name":"菜单",
           "sub_button":[
           {
               "type":"view",
               "name":"搜索",
               "url":"http://www.baidu.com"
            },
            {
               "type":"click",
               "name":"赞一下我们",
               "key":"V1001_GOOD"
            }]
       },
       {
           "name": "扫码",
           "sub_button": [
               {
                   "type": "scancode_waitmsg",
                   "name": "扫码带提示",
                   "key": "rselfmenu_0_0",
                   "sub_button": [ ]
               },
               {
                   "type": "scancode_push",
                   "name": "扫码推事件",
                   "key": "rselfmenu_0_1",
                   "sub_button": [ ]
               }
           ]
       }]
 }

创建出来以后的样子是

在这里插入图片描述

点用户信息,发送一个 click 事件消息到我们配置的接口。时间的event_key 是 USER_INFO_CLICK。 可以自行更具需要返回消息。 第二个菜单的**“搜索”**, 我们设置的是view , 点击不会向服务器发消息,直接打开配置的url, 这里点了以后是通过微信自带的浏览器打开了百度。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值