Foxtable(狐表)用户栏目专家坐堂 → 微信公众平台接口测试帐号是不是不能用菜单接口


  共有2068人关注过本帖树形打印复制链接

主题:微信公众平台接口测试帐号是不是不能用菜单接口

帅哥哟,离线,有人找我吗?
erdbeer
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:445 积分:4777 威望:0 精华:0 注册:2010/4/11 14:09:00
微信公众平台接口测试帐号是不是不能用菜单接口  发帖心情 Post By:2019/11/26 15:09:00 [只看该作者]

微信公众平台接口测试帐号是不是不能用菜单接口?按照帮助文件做的菜单接口,总是提示40017错误

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107727 积分:547968 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/26 15:26:00 [只看该作者]

40017是添加了太多的菜单。只添加一个菜单有没有问题?

 回到顶部
帅哥哟,离线,有人找我吗?
erdbeer
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:445 积分:4777 威望:0 精华:0 注册:2010/4/11 14:09:00
  发帖心情 Post By:2019/11/26 22:32:00 [只看该作者]

这个是我的Menu表



图片点击可在新窗口打开查看此主题相关图片如下:截图_15747782028763.png
图片点击可在新窗口打开查看



按帮助复制的默认菜单代码,   出现 40017错误码图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看

在此段代码执行前,执行过删除菜单的代码,显示删除成功

Dim mrs As List(of DataRow)  = DataTables("Menu").Select("[parent] is null","_SortKey") '删选出一级按钮对应的行
Dim mo As New JObject  '一级菜单对象
Dim ma As New Jarray '一级菜单按钮数组
mo("button") = ma '一级菜单属性就一个button属性,这是一个数组属性
For Each mr As DataRow In mrs
    Dim so As New JObject
    so("name") = mr("name").Tostring
    Dim srs As List(of DataRow)  = DataTables("Menu").Select("[parent] = '" & mr("name") & "'", "_SortKey") '筛选出二级按钮
    Dim nms As String() = {"type","name","url","key","media_id"} '注意列名和菜单属性名一直,方便编码,注意大是区分大小写的
    If srs.Count = 0 Then '如果此一级菜单按钮对应的二级按钮数为0,那么次一级菜单按钮就是一个普通的命令按钮
        For Each nm As String In nms '设置一级菜单按钮的户型
            If mr.IsNull(nm) = False Then
                so(nm) = mr(nm).ToString()
            End If 
        Next
    Else '如果此一级菜单按钮有对应的二级菜单按钮,那么此一级菜单按钮是一个菜单按钮
        Dim sa As New JArray '定义一个数组,包括此一级按钮下的所有二级按钮
        For Each sr As DataRow In srs '逐个生成二级按钮
            Dim jo As New JObject '定义二级按钮对象
            For Each nm As String In nms '设置二级按钮属性
                If sr.IsNull(nm) = False Then
                    jo(nm) = sr(nm).ToString()
                End If
            Next
            sa.Add(jo)
        Next
        so("sub_button") = sa '一级菜单按钮的sub_button属性是一个数组,包括所有二菜单按钮 
    End If
    ma.Add(so)
Next
Dim URL As String = " https://api.weixin.qq.com/cgi-bin/menu/create?access_token={0}"
Dim AccessToken As String = Functions.Execute("GetAccessToken")
Dim hc As New HttpClient(CExp(URL,AccessToken))
hc.Content = mo.Tostring()
Dim ro As JObject = JObject.Parse(hc.GetData)
If ro("errcode") = "0" Then
    MessageBox.Show("菜单设置成功!")
Else
    MessageBox.Show(ro("errcode"))
End If
[此贴子已经被作者于2019/11/26 22:33:14编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107727 积分:547968 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/27 9:26:00 [只看该作者]

先仔细看看官方的说明:https://developers.weixin.qq.com/doc/offiaccount/Custom_Menus/Creating_Custom-Defined_Menu.html

缺少必填的内容。Menu表的数据不符合规范



 回到顶部