Home WeChat Applet WeChat Development How to create a custom menu bar for WeChat official account? Here is the authoritative answer

How to create a custom menu bar for WeChat official account? Here is the authoritative answer

Jul 27, 2018 pm 05:18 PM
WeChat public account

When I first opened the WeChat public account, I was curious. In fact, I didn’t know much about it at the time. After consulting and analyzing, I found that the front end was manually configured through a custom menu, and the menu was not generated through the backend. I will think about it later. There was a problem when getting event information, so I re-study the relevant documents and share them with you

In fact, generating the menu is very simple, just enter the code:

Official Document address: https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141013

Create several entity classes to generate the json necessary to create the menu:

/**
 * 微信公众号菜单 view 模式
 * 
 * @author cdj
 * @date 2018年7月26日 下午2:02:57
 */
public class ViewEntity {
	public String type;
	public String name;
	public String url;

	public ViewEntity() {
		super();
		// TODO Auto-generated constructor stub
	}

	public ViewEntity(String type, String name, String url) {
		super();
		this.type = type;
		this.name = name;
		this.url = url;
	}

	public String getType() {
		return type;
	}

	public void setType(String type) {
		this.type = type;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getUrl() {
		return url;
	}

	public void setUrl(String url) {
		this.url = url;
	}
}
Copy after login
/**
 * 微信公众号多级菜单按钮实体类
 * 
 * @author cdj
 * @date 2018年7月26日 下午2:08:40
 */
public class MenuEntity {
	public String name;
	/**下级菜单按钮 集合 */
	public List<Object> sub_button;

	public MenuEntity() {
		super();
		// TODO Auto-generated constructor stub
	}

	public MenuEntity(String name, List<Object> sub_button) {
		super();
		this.name = name;
		this.sub_button = sub_button;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public List<Object> getSub_button() {
		return sub_button;
	}

	public void setSub_button(List<Object> sub_button) {
		this.sub_button = sub_button;
	}

}
Copy after login

Write a tool class to directly obtain json,zl

import java.util.ArrayList;
import java.util.List;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.modou.park.entity.wechat.MenuEntity;
import com.modou.park.entity.wechat.ViewEntity;

/**
 * 微信公众号获取button创建
 * @author cdj
 * @date 2018年7月26日 下午2:22:02
 */
public class WxCreateButtonUtils {

	/**
	 * 获得微信公众号菜单
	 * @return
	 */
	public static String getWxCreateButtonJson() {
		JSONObject jsonObject = new JSONObject();
		List<Object> lobjs = new ArrayList<>();
		List<Object> firstvl = new ArrayList<>();
		ViewEntity infoEntity = new ViewEntity("view", "个人信息", "http://www.xxx.com/xxxxxxxxx.html");//写自己的要跳转的url
		firstvl.add(infoEntity);
		MenuEntity thirdEntity = new MenuEntity("我的",firstvl);
		lobjs.add(thirdEntity);
		jsonObject.put("button", lobjs);
		System.out.println(jsonObject);
		return JSON.toJSONString(jsonObject);
	}
}
Copy after login

Controller:

	@ApiOperation("微信公众号创建菜单")
	@ApiImplicitParams({
	})
	@PostMapping("/WxCreateButton")
	public JsonResult wxCreateButton() {
		try {
			wxInfoService.createButton();
			return JsonResult.success("创建成功");
		} catch (Exception e) {
			// TODO: handle exception
			LOG.error(e.getMessage());
			return JsonResult.failMsg(e.getMessage());
		}
	}
Copy after login

service:

	@Override
	public void createButton() {
	    //String accessToken = wxPublicAccessTokenUtils.getAccessToken();
		//String createButton_Url = UserInfoUtil.getCreateButton_Url(accessToken);
		String weixin_jssdk_acceToken_url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=%s&secret=%s";
		String jssdkAcceTokenUrl = String.format(weixin_jssdk_acceToken_url, WxPublicProperties.APPID, WxPublicProperties.APPSCREAT);
		String accesstoken = HttpsUtil.httpsRequestToString(jssdkAcceTokenUrl, "GET", null);
		WxToken accToken = JSONObject.parseObject(accesstoken, WxToken.class);
		String accessToken = accToken.getAccessToken();
		String createurl = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=%s";
		String createButton_Url = String.format(createurl, accessToken);
		String buttonJson = WxCreateButtonUtils.getWxCreateButtonJson();
		String httpsRequestToString = HttpsUtil.httpsRequestToString(createButton_Url, "POST", buttonJson);
		System.out.println(httpsRequestToString);
	}
Copy after login

Successful feedback: {"errcode":0,"errmsg": "ok"}apache php mysql

#json There are many types of types, such as click (can be bound to the click event), miniprogram (mini program: requires parameters appid, pagepath, url, etc.) different Different content parameters have different effects. You can check the corresponding documents to learn more.

There will be many small bugs during testing. You can use Baidu error codes. There are many replies on the Internet;

Summary: It is not difficult to create a new menu, but you must be careful and the format of the content must be Correct, the key of json must not be wrong, and there must be no parameters that cannot be included. Don't ask me how I know.

Related articles:

WeChat public platform develops QR codes and creates menus

php implements WeChat public platform account custom menu classes , Public account

Related videos:

Custom menu (1)-PHP WeChat public platform development video tutorial

The above is the detailed content of How to create a custom menu bar for WeChat official account? Here is the authoritative answer. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Scrapy implements crawling and analysis of WeChat public account articles Scrapy implements crawling and analysis of WeChat public account articles Jun 22, 2023 am 09:41 AM

Scrapy implements article crawling and analysis of WeChat public accounts. WeChat is a popular social media application in recent years, and the public accounts operated in it also play a very important role. As we all know, WeChat public accounts are an ocean of information and knowledge, because each public account can publish articles, graphic messages and other information. This information can be widely used in many fields, such as media reports, academic research, etc. So, this article will introduce how to use the Scrapy framework to crawl and analyze WeChat public account articles. Scr

What are the differences between WeChat official account certification and non-certification? What are the differences between WeChat official account certification and non-certification? Sep 19, 2023 pm 02:15 PM

The difference between WeChat public account authentication and non-authentication lies in the authentication logo, function permissions, push frequency, interface permissions and user trust. Detailed introduction: 1. Certification logo. Certified public accounts will obtain the official certification logo, which is the blue V logo. This logo can increase the credibility and authority of the public account and make it easier for users to identify the real official public account; 2. Function permissions. Certified public accounts have more functions and permissions than uncertified public accounts. For example, certified public accounts can apply to activate the WeChat payment function to achieve online payment and commercial operations, etc.

Practical crawler combat in Python: WeChat public account crawler Practical crawler combat in Python: WeChat public account crawler Jun 10, 2023 am 09:01 AM

Python is an elegant programming language with powerful data processing and web crawling capabilities. In this digital era, the Internet is filled with a large amount of data, and crawlers have become an important means of obtaining data. Therefore, Python crawlers are widely used in data analysis and mining. In this article, we will introduce how to use Python crawler to obtain WeChat public account article information. WeChat official account is a popular social media platform for publishing articles online and is an important tool for promotion and marketing of many companies and self-media.

Use PHP to build a WeChat public account API interface Use PHP to build a WeChat public account API interface May 13, 2023 pm 12:01 PM

In today's Internet era, WeChat official accounts have become an important marketing channel for more and more companies. If you want your WeChat official account to implement more functions, you often need to write corresponding interfaces. This article will use PHP language as an example to introduce how to build a WeChat public account API interface. 1. Preparation Before writing the WeChat public account API interface, the developer needs to have a WeChat public account and apply for developer interface permissions in the WeChat public platform. After the application is successful, you can obtain the relevant developer AppID and AppSe

How to use Laravel to develop an online ordering system based on WeChat public account How to use Laravel to develop an online ordering system based on WeChat public account Nov 02, 2023 am 09:42 AM

How to use Laravel to develop an online ordering system based on WeChat official accounts. With the widespread use of WeChat official accounts, more and more companies are beginning to use them as an important channel for online marketing. In the catering industry, developing an online ordering system based on WeChat public accounts can improve the efficiency and sales of enterprises. This article will introduce how to use the Laravel framework to develop such a system and provide specific code examples. Project preparation First, you need to ensure that the Laravel framework has been installed in the local environment. OK

Can the official account only post one article per day? Can the official account only post one article per day? Jun 16, 2023 pm 02:04 PM

The public account can not only post one article per day, but can publish up to eight articles at a time. How to publish multiple articles: 1. Click "Material Management" on the left, and then click "New Graphic and Text Material" to start editing. First article; 2. After editing the first article, click the + sign under the first article on the left and click "Graphic Message" to edit the second article; 3. After finishing multiple images and text, click " Save and send in bulk" to complete the publishing of multiple articles.

Build WeChat public account application using Go language framework Build WeChat public account application using Go language framework Jun 04, 2023 am 10:40 AM

With the popularity of the Internet and the widespread use of mobile devices, WeChat official accounts have become an indispensable part of corporate marketing. Through WeChat public accounts, companies can easily interact with users, promote products and services, and increase brand awareness. In order to better develop WeChat public account applications, more and more developers and companies choose to use Go language to build WeChat public account applications. Go language is a programming language developed by Google. Its syntax is concise and suitable for building high-performance, high-concurrency real-time applications. In terms of ease of use and

PHP and WeChat public account development guide PHP and WeChat public account development guide Jun 11, 2023 pm 03:31 PM

With the gradual popularity of WeChat public accounts in social networks, more and more developers have begun to get involved in the field of WeChat public account development. Among them, PHP, as a common back-end programming language, has also begun to be widely used in the development of WeChat public accounts. This article will introduce the basic knowledge and common techniques of PHP in WeChat public account development. 1. Basics of PHP and WeChat public account development WeChat public account development WeChat public account refers to an Internet application based on the WeChat platform, which can provide users with different types of services and content, such as information push

See all articles