微信-公众号-创建菜单列表 错误40016

运行程序,返回errcode40016:invalid button size hint: [afL4na0498vr21]

1. 到公众号调试页面,输入token和传过去的菜单json串 https://mp.weixin.qq.com/debug/ 

    如果创建成功,说明菜单json串 格式没有错,按钮个数也符合要求。否则请修改你的 json串。

    首先保证json串的格式没有问题,看第2步:

2. 程序的问题: 应该使用 没有参数名的http的post请求。这里我使用的是httpclient工具包:

   /**
     * @Title: sendPostWithoutParamName   
     * @Description: 无参数名,直接传数据 
     * @param: url
     * @param: headers
     * @param: paramValue  参数值
     */
    public static JSONObject sendPostWithoutParamName(String url,String paramValue) throws Exception
    {
        CloseableHttpClient httpClient = HttpClients.createDefault();
        HttpPost httpPost = new HttpPost(url);
        StringEntity paramEntity = new StringEntity(paramValue,"utf-8"); //防止中文乱码
        
        httpPost.setEntity(paramEntity); //直接放到entity中
        HttpResponse response = httpClient.execute(httpPost);
        return JSONObject.parseObject(EntityUtils.toString(response.getEntity()));
    }

<dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <version>4.5.3</version>
        </dependency>

测试程序:

@Test
    public void testPost() throws Exception
    {
        String createViewUrl = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token={红色替换成你的token}";
 
        JSONObject tokenObj = HttpClientUtils.sendPostWithoutParamName(createViewUrl, "{\"button\":[{\"type\":\"click\",\"name\":\"今日歌曲\",\"key\":\"V1001_TODAY_MUSIC\"}]}");
        Map javaObject = tokenObj.toJavaObject(Map.class);
        System.out.println(javaObject.get("errcode"));
        System.out.println(javaObject.get("errmsg"));
    }

即可解决。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
您的问题是关于在PHP开发的微信公众号中,如何添加小程序菜单以及如何实现跳转小程序的问题,对吧? 首先,要在微信公众号中添加小程序菜单,您需要在微信公众平台的开发者中心中,通过自定义菜单功能添加一个小程序菜单。具体步骤如下: 1. 登录微信公众平台开发者中心,进入“公众号设置”页面; 2. 在左侧菜单栏中选择“菜单设置”,然后点击“自定义菜单”; 3. 在自定义菜单页面中,点击“添加菜单”按钮; 4. 在添加菜单页面中,选择“小程序”类型; 5. 在小程序菜单设置页面中,填写小程序的AppID、小程序页面路径和小程序的名称; 6. 点击“保存”按钮,即可完成小程序菜单的添加。 接下来,要实现在微信公众号中跳转小程序,您需要在PHP代码中调用微信公众号的JS-SDK,通过JS-SDK提供的API实现跳转小程序的功能。具体步骤如下: 1. 在PHP代码中引入微信公众号的JS-SDK文件; 2. 在PHP代码中调用微信公众号的JS-SDK初始化函数,传入微信公众号的AppID和当前页面的URL; 3. 在需要跳转小程序的地方,调用微信公众号的JS-SDK提供的API,传入小程序的AppID、小程序页面路径和其他参数(如是否要打开小程序的debug模式等); 4. 用户点击跳转小程序的按钮时,JS-SDK会自动调起微信客户端,并跳转到指定的小程序页面。 希望这个回答能够解决您的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值