怎么創(chuàng)建微信公眾號(hào)自定義菜單欄?這里給出了權(quán)威解答

閱讀 34605  ·  發(fā)布日期 2020-08-24 17:26  ·  溫州優(yōu)光網(wǎng)絡(luò)科技有限公司|建站|APP小程序制作|做網(wǎng)站SEO推廣優(yōu)化
【摘要】 剛開(kāi)始開(kāi)通微信公眾號(hào)的時(shí)候是抱著好奇的心態(tài),其實(shí)我那時(shí)也不是很了解,經(jīng)過(guò)查閱分析,前端是通過(guò)自定義菜單手動(dòng)配置的,菜單不是通過(guò)后臺(tái)生成的,后面想要獲取事件信息的時(shí)候出現(xiàn)了點(diǎn)問(wèn)題,所以我重新研究了下相關(guān)的文檔,分享給大家其實(shí)生成菜單非常簡(jiǎn)單,直接上代碼:官方文檔地址:https://mp.weixin.qq.com/wi... 【溫州小程序開(kāi)發(fā),溫州微信公眾號(hào),平陽(yáng)做網(wǎng)站,平陽(yáng)網(wǎng)站建設(shè)公司,平陽(yáng)小程序商城制作,昆陽(yáng)萬(wàn)全做網(wǎng)站,鰲江水頭小程序,蕭江騰蛟微信公眾號(hào),山門(mén)順溪南雁海西南麂鳳臥麻步懷溪網(wǎng)絡(luò)網(wǎng)店服務(wù),政采云網(wǎng)店管理服務(wù)】...

怎么創(chuàng)建微信公眾號(hào)自定義菜單欄?這里給出了權(quán)威解答

剛開(kāi)始開(kāi)通微信公眾號(hào)的時(shí)候是抱著好奇的心態(tài),其實(shí)我那時(shí)也不是很了解,經(jīng)過(guò)查閱分析,前端是通過(guò)自定義菜單手動(dòng)配置的,菜單不是通過(guò)后臺(tái)生成的,后面想要獲取事件信息的時(shí)候出現(xiàn)了點(diǎn)問(wèn)題,所以我重新研究了下相關(guān)的文檔,分享給大家其實(shí)生成菜單非常簡(jiǎn)單,直接上代碼:
官方文檔地址:
https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141013創(chuàng)建幾個(gè)實(shí)體類(lèi),用來(lái)生成創(chuàng)建菜單必須的json:/** * 微信公眾號(hào)菜單 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;
}
}
/** * 微信公眾號(hào)多級(jí)菜單按鈕實(shí)體類(lèi) * * @author cdj * @date 2018年7月26日 下午2:08:40 */ public class MenuEntity {
public String name;
/**下級(jí)菜單按鈕 集合 */ public List sub_button;
public MenuEntity() {
super();
// TODO Auto-generated constructor stub }
public MenuEntity(String name, List 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 getSub_button() {
return sub_button;
}
public void setSub_button(List sub_button) {
this.sub_button = sub_button;
}
}
寫(xiě)一個(gè)工具類(lèi)直接獲json,zlimport 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;
/** * 微信公眾號(hào)獲取button創(chuàng)建 * @author cdj * @date 2018年7月26日 下午2:22:02 */ public class WxCreateButtonUtils {
/** * 獲得微信公眾號(hào)菜單 * @return */ public static String getWxCreateButtonJson() {
JSONObject jsonObject = new JSONObject();
List lobjs = new ArrayList();
List firstvl = new ArrayList();
ViewEntity infoEntity = new ViewEntity("view", "個(gè)人信息", "http://www.xxx.com/xxxxxxxxx.html");
//寫(xiě)自己的要跳轉(zhuǎn)的url firstvl.add(infoEntity);
MenuEntity thirdEntity = new MenuEntity("我的",firstvl);
lobjs.add(thirdEntity);
jsonObject.put("button", lobjs);
System.out.println(jsonObject);
return JSON.toJSONString(jsonObject);
}
}
Controller: @ApiOperation("微信公眾號(hào)創(chuàng)建菜單") @ApiImplicitParams({
}
) @PostMapping("/WxCreateButton") public JsonResult wxCreateButton() {
try {
wxInfoService.createButton();
return JsonResult.success("創(chuàng)建成功");
}
catch (Exception e) {
// TODO: handle exception LOG.error(e.getMessage());
return JsonResult.failMsg(e.getMessage());
}
}
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);
}
成功反饋:
{
"errcode":0,"errmsg":"ok"}
apache php mysqljson 里面的type 有多種情況, 例如 click 點(diǎn)擊(可以與click事件綁定),miniprogram (小程序:
需要參數(shù)appid ,pagepath, url 等) 不同的內(nèi)容參數(shù)不同,效果也不同,可以看相應(yīng)的文檔了解一下。
測(cè)試時(shí)會(huì)出現(xiàn)很多的小bug , 可以通過(guò)百度錯(cuò)誤碼,網(wǎng)上有很多的回復(fù) ;
總結(jié):
新建菜單不難,但一定要細(xì)心,內(nèi)容的格式一定要正確,json的key一定不能錯(cuò),不能有的參數(shù)一定不要有,別問(wèn)我怎么知道的。
相關(guān)文章:
微信公眾平臺(tái)開(kāi)發(fā)二維碼、創(chuàng)建菜單php實(shí)現(xiàn)微信公眾平臺(tái)賬號(hào)自定義菜單類(lèi),公眾賬號(hào)相關(guān)視頻:
自定義菜單(1)-PHP微信公眾平臺(tái)開(kāi)發(fā)視頻教程以上就是怎么創(chuàng)建微信公眾號(hào)自定義菜單欄?這里給出了權(quán)威解答的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!
微信
分享相關(guān)標(biāo)簽:
微信公眾號(hào)本文原創(chuàng)發(fā)布php中文網(wǎng),轉(zhuǎn)載請(qǐng)注明出處,感謝您的尊重!
上一篇:
微信公眾號(hào)開(kāi)發(fā),實(shí)現(xiàn)倒計(jì)時(shí)的一個(gè)功能(純代碼)
下一篇:
長(zhǎng)見(jiàn)識(shí)了,原來(lái)微信瀏覽器內(nèi)可以直接啟動(dòng)外部瀏覽器相關(guān)文章相關(guān)視頻修改微信號(hào)有什么影響嗎?微信中共享實(shí)時(shí)位置什么意思數(shù)據(jù)庫(kù)設(shè)計(jì)的基本原則是什么?微信小程序調(diào)用圖片安全API怎么創(chuàng)建微信公眾號(hào)自定義菜單欄?這里給出了權(quán)威解答微信公眾號(hào)接口調(diào)用頻次限制說(shuō)明微信公眾號(hào)以及curl微信公眾號(hào)前段微信公眾號(hào)開(kāi)發(fā)-微信公眾號(hào)中url的配置
[溫州做微信公眾號(hào)]