从头学习微信生态开发(六)-创建自定义菜单及事件推送

 0 0条评论

公众号自定义菜单还是很有必要的,普通人员可以直接在公众号后台设置,但是这是无法跟用户互动的,只能简单的设置链接或者图片等,如下:


如果自己通过代码推送的话,那就功能多了。相对来说还是比较简单的。

只需要POST请求到 

https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN

这个地址即可,其中access_token之前说,通过appid和secret即可获得。

关于传递的参数,不要加任何前缀,切记,这里我就绕了一个全,还加了body,data等,什么都不用加。

node代码如下:

const access_token = await (getAccessToken())
const json = {
    "button": [
        {
        "name": "菜单一",
        "sub_button": [
        {
            "type": "view",
            "name": "子菜单一",
            "url": "https://www.shuanghei.com"
        },
    
            "type": "view",
            "name": "子菜单二",
            "url": "https://www.shuanghei.com"
        }
        ]
        },
        {
        "name": "菜单二",
        "sub_button": [
            {
            "type": "view",
            "name": "子菜单三",
            "url": "https://www.shuanghei.com"
            },
            {
            "type": "view",
            "name": "子菜单四",
            "url": "https://www.shuanghei.com"
            }]
        }

        ]
    }
const result = await axios.post(`https://api.weixin.qq.com/cgi-bin/menu/create?access_token=${access_token}`, json)
console.log(result.data)

至此你就可以看到公众底部有了自定义菜单了,菜单有多种类型,这里就不阐述了,可以看一下官网文档,本人项目需求只需要连接,所以类型都是view类型了。

之后每一次用户点击菜单,微信服务器都会推送事件到我们,最初创造的服务器配置的URL。


由于发送的都是xml数据格式,而express框架是不支持xml的,这里就要再安装一个模块了。

npm i express-xml-bodyparser

即可,使用方法很简单了,只需要use一下即可。

app.use(xmlparse())

这样就可以在req.rawBody获得xml数据啦,如下


本文作者:双黑

版权声明:本站文章欢迎链接分享,禁止全文转载!

游客