返回

创造无穷,公众号开发之旅(三):菜单处理

闲谈

前言

在之前的文章中,我们介绍了如何接入微信公众号并处理消息。在本文中,我们将介绍如何使用微信公众号开发工具包来管理公众号菜单。我们将介绍如何创建菜单、查询菜单和删除菜单。我们将使用Node.js作为编程语言,但您也可以使用其他语言。

微信公众号菜单管理

微信公众号菜单是公众号中的一项重要功能,它可以帮助用户快速找到他们想要的内容。公众号菜单可以分为两级,一级菜单最多可以有3个,二级菜单最多可以有5个。

创建公众号菜单

要创建公众号菜单,我们需要先获取access_token。access_token是微信公众号开发的凭证,它需要定期刷新。我们可以使用以下代码获取access_token:

const request = require('request');
const fs = require('fs');

const appid = 'YOUR_APPID';
const appsecret = 'YOUR_APPSECRET';

const url = `https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=${appid}&secret=${appsecret}`;

request.get(url, (err, res, body) => {
  if (err) {
    return console.log(err);
  }

  const result = JSON.parse(body);
  const access_token = result.access_token;

  // 将access_token保存到文件中
  fs.writeFile('access_token.txt', access_token, (err) => {
    if (err) {
      return console.log(err);
    }

    console.log('access_token保存成功');
  });
});

获取到access_token后,我们就可以创建公众号菜单了。我们可以使用以下代码创建公众号菜单:

const request = require('request');
const fs = require('fs');

const appid = 'YOUR_APPID';
const appsecret = 'YOUR_APPSECRET';

const url = `https://api.weixin.qq.com/cgi-bin/menu/create?access_token=${access_token}`;

const menu = {
  "button": [
    {
      "type": "click",
      "name": "今日歌曲",
      "key": "V1001_TODAY_MUSIC"
    },
    {
      "type": "view",
      "name": "歌手简介",
      "url": "https://y.qq.com/n/yqq/singer/0025NhlN2yWrP4.html"
    },
    {
      "name": "菜单",
      "sub_button": [
        {
          "type": "scancode_waitmsg",
          "name": "扫码带提示",
          "key": "rselfmenu_0_0",
          "sub_button": []
        },
        {
          "type": "scancode_push",
          "name": "扫码推事件",
          "key": "rselfmenu_0_1",
          "sub_button": []
        },
        {
          "type": "pic_sysphoto",
          "name": "系统拍照发图",
          "key": "rselfmenu_1_0",
          "sub_button": []
        },
        {
          "type": "pic_photo_or_album",
          "name": "拍照或者相册发图",
          "key": "rselfmenu_1_1",
          "sub_button": []
        },
        {
          "type": "pic_weixin",
          "name": "微信相册发图",
          "key": "rselfmenu_1_2",
          "sub_button": []
        }
      ]
    }
  ]
};

request.post({
  url: url,
  body: menu,
  json: true
}, (err, res, body) => {
  if (err) {
    return console.log(err);
  }

  console.log(body);
});

创建公众号菜单后,我们可以使用以下代码查询公众号菜单:

const request = require('request');
const fs = require('fs');

const appid = 'YOUR_APPID';
const appsecret = 'YOUR_APPSECRET';

const url = `https://api.weixin.qq.com/cgi-bin/menu/get?access_token=${access_token}`;

request.get(url, (err, res, body) => {
  if (err) {
    return console.log(err);
  }

  console.log(body);
});

删除公众号菜单后,我们可以使用以下代码删除公众号菜单:

const request = require('request');
const fs = require('fs');

const appid = 'YOUR_APPID';
const appsecret = 'YOUR_APPSECRET';

const url = `https://api.weixin.qq.com/cgi-bin/menu/delete?access_token=${access_token}`;

request.get(url, (err, res, body) => {
  if (err) {
    return console.log(err);
  }

  console.log(body);
});

结语

在本文中,我们介绍了如何使用微信公众号开发工具包来管理公众号菜单。我们介绍了如何创建菜单、查询菜单和删除菜单。我们使用了Node.js作为编程语言,但您也可以使用其他语言。