微信公众号开发教程[011]-自定义菜单以及个性化菜单

xiaoxiao2021-02-28  45

我承接 app和 微信公众号开发,如果有谁需要的话,可以惠顾我,谢谢.

QQ: 40678884

微信: szuzsq

主页: http://www.wxshaker.com

博客: http://blog.csdn.net/szuzsq

-------------------------------------------------------------------------------------------------------------------------------------

        自定义菜单最多包括3个一级菜单,每个一级菜单最多包含5个二级菜单.类型分别有click,view,scancode_push,scancode_waitmsg,pic_sysphoto,pic_photo_or_album,pic_weixin,location_select,media_id,view_limited.详见官方文档.

一.通用的自定义菜单

1).创建通用菜单.代码如下:

[php] view plain copy function create() {      $ACCESS_TOKEN = "uZNdRwxNN3V7RwT5x_K8K21wNWfO1kX4dMH3JS0usWmXXMIB03-WWoTfMg8as1NyuznLfZK_GqYgJgqiYwIRO4dCK0ZbYNQd-5cxYSX5awA3TkEE-5Qn4QTneX8YIpnTJWJfABAZMZ";      $url = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=$ACCESS_TOKEN";      $data = '  {      "button": [      {          "type""click",          "name""今日歌曲",          "key""V1001_TODAY_MUSIC"      },      {          "name""菜单",          "sub_button": [          {              "type""click",              "name""1.click.赞一下我们",              "key""V1001_GOOD"          },          {              "type""view",              "name""2.view.视频",              "url""http://v.qq.com/"          },          {              "type""scancode_push",              "name""3.scancode_push.扫码推事件",              "key""rselfmenu_0_1",              "sub_button": []          },          {              "type""scancode_waitmsg",              "name""4.scancode_waitmsg.扫码带提示",              "key""rselfmenu_0_0",              "sub_button": []          },          {              "type""pic_sysphoto",              "name""5.pic_sysphoto.系统拍照发图",              "key""rselfmenu_1_0",              "sub_button": []          }]      },      {          "name""菜单",          "sub_button": [          {              "type""pic_photo_or_album",              "name""6.pic_photo_or_album.拍照/相册发图",              "key""rselfmenu_1_1",              "sub_button": []          },          {              "type""pic_weixin",              "name""7.pic_weixin.微信相册发图",              "key""rselfmenu_1_2",              "sub_button": []          },          {              "type""location_select",              "name""8.location_select.发送位置",              "key""rselfmenu_2_0"          }]      }]  }  ';      $result = curl_http_post($url$data);      echo $result;  }  

返回结果如下:

[javascript] view plain copy {"errcode":0,"errmsg":"ok"}  

2).查询通用菜单.代码如下:

[php] view plain copy function query() {      $ACCESS_TOKEN = "uZNdRwxNN3V7RwT5x_K8K21wNWfO1kX4dMH3JS0usWmXXMIB03-WWoTfMg8as1NyuznLfZK_GqYgJgqiYwIRO4dCK0ZbYNQd-5cxYSX5awA3TkEE-5Qn4QTneX8YIpnTJWJfABAZMZ";      $url = "https://api.weixin.qq.com/cgi-bin/menu/get?access_token=$ACCESS_TOKEN";      $result = curl_http_get($url);      echo $result;  }  

返回结果如下:

[javascript] view plain copy {      "button": [      {          "type""click",          "name""今日歌曲",          "key""V1001_TODAY_MUSIC"      },      {          "name""菜单",          "sub_button": [          {              "type""click",              "name""1.click.赞一下我们",              "key""V1001_GOOD"          },          {              "type""view",              "name""2.view.视频",              "url""http://v.qq.com/"          },          {              "type""scancode_push",              "name""3.scancode_push.扫码推事件",              "key""rselfmenu_0_1",              "sub_button": []          },          {              "type""scancode_waitmsg",              "name""4.scancode_waitmsg.扫码带提示",              "key""rselfmenu_0_0",              "sub_button": []          },          {              "type""pic_sysphoto",              "name""5.pic_sysphoto.系统拍照发图",              "key""rselfmenu_1_0",              "sub_button": []          }]      },      {          "name""菜单",          "sub_button": [          {              "type""pic_photo_or_album",              "name""6.pic_photo_or_album.拍照/相册发图",              "key""rselfmenu_1_1",              "sub_button": []          },          {              "type""pic_weixin",              "name""7.pic_weixin.微信相册发图",              "key""rselfmenu_1_2",              "sub_button": []          },          {              "type""location_select",              "name""8.location_select.发送位置",              "key""rselfmenu_2_0"          }]      }]  }  

3).获取自定义菜单配置接口.代码如下:

[php] view plain copy function info() {      $ACCESS_TOKEN = "uZNdRwxNN3V7RwT5x_K8K21wNWfO1kX4dMH3JS0usWmXXMIB03-WWoTfMg8as1NyuznLfZK_GqYgJgqiYwIRO4dCK0ZbYNQd-5cxYSX5awA3TkEE-5Qn4QTneX8YIpnTJWJfABAZMZ";      $url = "https://api.weixin.qq.com/cgi-bin/get_current_selfmenu_info?access_token=$ACCESS_TOKEN";      $result = curl_http_get($url);      echo $result;  }  

我这里和"2).查询通用菜单"结果一样.返回结果如下:

[javascript] view plain copy {      "button": [      {          "type""click",          "name""今日歌曲",          "key""V1001_TODAY_MUSIC"      },      {          "name""菜单",          "sub_button": [          {              "type""click",              "name""1.click.赞一下我们",              "key""V1001_GOOD"          },          {              "type""view",              "name""2.view.视频",              "url""http://v.qq.com/"          },          {              "type""scancode_push",              "name""3.scancode_push.扫码推事件",              "key""rselfmenu_0_1",              "sub_button": []          },          {              "type""scancode_waitmsg",              "name""4.scancode_waitmsg.扫码带提示",              "key""rselfmenu_0_0",              "sub_button": []          },          {              "type""pic_sysphoto",              "name""5.pic_sysphoto.系统拍照发图",              "key""rselfmenu_1_0",              "sub_button": []          }]      },      {          "name""菜单",          "sub_button": [          {              "type""pic_photo_or_album",              "name""6.pic_photo_or_album.拍照/相册发图",              "key""rselfmenu_1_1",              "sub_button": []          },          {              "type""pic_weixin",              "name""7.pic_weixin.微信相册发图",              "key""rselfmenu_1_2",              "sub_button": []          },          {              "type""location_select",              "name""8.location_select.发送位置",              "key""rselfmenu_2_0"          }]      }]  }  

3).删除通用菜单.代码如下:

[php] view plain copy function delete() {      $ACCESS_TOKEN = "uZNdRwxNN3V7RwT5x_K8K21wNWfO1kX4dMH3JS0usWmXXMIB03-WWoTfMg8as1NyuznLfZK_GqYgJgqiYwIRO4dCK0ZbYNQd-5cxYSX5awA3TkEE-5Qn4QTneX8YIpnTJWJfABAZMZ";      $url = "https://api.weixin.qq.com/cgi-bin/menu/delete?access_token=$ACCESS_TOKEN";      $result = curl_http_get($url);      echo $result;  }  

返回结果如下:

[javascript] view plain copy {"errcode":0,"errmsg":"ok"}  

4).自定义菜单事件推送.

        用户点击自定义菜单后,微信会把点击事件推送给开发者.我的结果如下:

[html] view plain copy <xml>      <ToUserName><![CDATA[gh_056dd68c0c2a]]></ToUserName>      <FromUserName><![CDATA[oe5SXv71irmrQ0TH-JxA-z_hmYLE]]></FromUserName>      <CreateTime>1468506310</CreateTime>      <MsgType><![CDATA[event]]></MsgType>      <Event><![CDATA[CLICK]]></Event>      <EventKey><![CDATA[V1001_GOOD]]></EventKey>  </xml>  <xml>      <ToUserName><![CDATA[gh_056dd68c0c2a]]></ToUserName>      <FromUserName><![CDATA[oe5SXv71irmrQ0TH-JxA-z_hmYLE]]></FromUserName>      <CreateTime>1468506313</CreateTime>      <MsgType><![CDATA[event]]></MsgType>      <Event><![CDATA[VIEW]]></Event>      <EventKey><![CDATA[http://v.qq.com/]]></EventKey>      <MenuId>413699252</MenuId>  </xml>  <xml>      <ToUserName><![CDATA[gh_056dd68c0c2a]]></ToUserName>      <FromUserName><![CDATA[oe5SXv71irmrQ0TH-JxA-z_hmYLE]]></FromUserName>      <CreateTime>1468506514</CreateTime>      <MsgType><![CDATA[event]]></MsgType>      <Event><![CDATA[scancode_push]]></Event>      <EventKey><![CDATA[rselfmenu_0_1]]></EventKey>      <ScanCodeInfo>          <ScanType><![CDATA[qrcode]]></ScanType>          <ScanResult><![CDATA[http://www.163.com]]></ScanResult>      </ScanCodeInfo>  </xml>  <xml>      <ToUserName><![CDATA[gh_056dd68c0c2a]]></ToUserName>      <FromUserName><![CDATA[oe5SXv71irmrQ0TH-JxA-z_hmYLE]]></FromUserName>      <CreateTime>1468506624</CreateTime>      <MsgType><![CDATA[event]]></MsgType>      <Event><![CDATA[scancode_waitmsg]]></Event>      <EventKey><![CDATA[rselfmenu_0_0]]></EventKey>      <ScanCodeInfo>          <ScanType><![CDATA[qrcode]]></ScanType>          <ScanResult><![CDATA[陈孟江,你这么吊,你妈妈知道么?]]></ScanResult>      </ScanCodeInfo>  </xml>  <xml>      <ToUserName><![CDATA[gh_056dd68c0c2a]]></ToUserName>      <FromUserName><![CDATA[oe5SXv71irmrQ0TH-JxA-z_hmYLE]]></FromUserName>      <CreateTime>1468506760</CreateTime>      <MsgType><![CDATA[event]]></MsgType>      <Event><![CDATA[pic_sysphoto]]></Event>      <EventKey><![CDATA[rselfmenu_1_0]]></EventKey>      <SendPicsInfo>          <Count>1</Count>          <PicList>              <item>                  <PicMd5Sum><![CDATA[de785d149820eaae34d0f2d0298aa607]]></PicMd5Sum>              </item>          </PicList>      </SendPicsInfo>  </xml>  <xml>      <ToUserName><![CDATA[gh_056dd68c0c2a]]></ToUserName>      <FromUserName><![CDATA[oe5SXv71irmrQ0TH-JxA-z_hmYLE]]></FromUserName>      <CreateTime>1468506942</CreateTime>      <MsgType><![CDATA[event]]></MsgType>      <Event><![CDATA[pic_photo_or_album]]></Event>      <EventKey><![CDATA[rselfmenu_1_1]]></EventKey>      <SendPicsInfo>          <Count>1</Count>          <PicList>              <item>                  <PicMd5Sum><![CDATA[5f8bba221fa5c0de7835776a59c1c677]]></PicMd5Sum>              </item>          </PicList>      </SendPicsInfo>  </xml>  <xml>      <ToUserName><![CDATA[gh_056dd68c0c2a]]></ToUserName>      <FromUserName><![CDATA[oe5SXv71irmrQ0TH-JxA-z_hmYLE]]></FromUserName>      <CreateTime>1468507103</CreateTime>      <MsgType><![CDATA[event]]></MsgType>      <Event><![CDATA[pic_weixin]]></Event>      <EventKey><![CDATA[rselfmenu_1_2]]></EventKey>      <SendPicsInfo>          <Count>0</Count>          <PicList></PicList>      </SendPicsInfo>  </xml>  <xml>      <ToUserName><![CDATA[gh_056dd68c0c2a]]></ToUserName>      <FromUserName><![CDATA[oe5SXv71irmrQ0TH-JxA-z_hmYLE]]></FromUserName>      <CreateTime>1468507124</CreateTime>      <MsgType><![CDATA[event]]></MsgType>      <Event><![CDATA[location_select]]></Event>      <EventKey><![CDATA[rselfmenu_2_0]]></EventKey>      <SendLocationInfo>          <Location_X><![CDATA[23]]></Location_X>          <Location_Y><![CDATA[114]]></Location_Y>          <Scale><![CDATA[15]]></Scale>          <Label><![CDATA[深圳市南山区西丽新围村小区内(西丽366大街东)]]></Label>          <Poiname><![CDATA[]]>          </Poiname>      </SendLocationInfo>  </xml>  

二.个性化菜单

1 创建个性化菜单.代码如下:

[php] view plain copy function add() { //创建个性化菜单      $ACCESS_TOKEN = "uZNdRwxNN3V7RwT5x_K8K21wNWfO1kX4dMH3JS0usWmXXMIB03-WWoTfMg8as1NyuznLfZK_GqYgJgqiYwIRO4dCK0ZbYNQd-5cxYSX5awA3TkEE-5Qn4QTneX8YIpnTJWJfABAZMZ";      $url = "https://api.weixin.qq.com/cgi-bin/menu/addconditional?access_token=$ACCESS_TOKEN";      $data = '  {      "button": [      {          "type""click",          "name""今日歌曲",          "key""V1001_TODAY_MUSIC"      },      {          "name""菜单",          "sub_button": [{              "type""view",              "name""搜索",              "url""http://www.soso.com/"          },          {              "type""view",              "name""视频",              "url""http://v.qq.com/"          },          {              "type""click",              "name""赞一下我们",              "key""V1001_GOOD"          }]      }],      "matchrule":      {          "sex""1",          "country""中国",          "province""广东",          "city""深圳",          "client_platform_type""1",          "language""zh_CN"      }  }  ';      $result = curl_http_post($url$data);      echo $result;  }  

返回结果如下:

[javascript] view plain copy {"errcode":0,"errmsg":"ok"}  

3).测试个性化菜单匹配结果.代码如下:

[php] view plain copy function match() { //测试个性化菜单匹配结果      $ACCESS_TOKEN = "uZNdRwxNN3V7RwT5x_K8K21wNWfO1kX4dMH3JS0usWmXXMIB03-WWoTfMg8as1NyuznLfZK_GqYgJgqiYwIRO4dCK0ZbYNQd-5cxYSX5awA3TkEE-5Qn4QTneX8YIpnTJWJfABAZMZ";      $url = "https://api.weixin.qq.com/cgi-bin/menu/trymatch?access_token=$ACCESS_TOKEN";      $data = '{"user_id":"szuzsq"}';      $result = curl_http_post($url$data);      echo $result;  }  

返回结果如下:

[javascript] view plain copy {      "button": [      {          "type""click",          "name""今日歌曲",          "key""V1001_TODAY_MUSIC"      },      {          "name""菜单",          "sub_button": [{              "type""view",              "name""搜索",              "url""http://www.soso.com/"          },          {              "type""view",              "name""视频",              "url""http://v.qq.com/"          },          {              "type""click",              "name""赞一下我们",              "key""V1001_GOOD"          }]      }]  }  

4). 删除个性化菜单.代码如下:

[php] view plain copy function del() { //删除个性化菜单      $ACCESS_TOKEN = "uZNdRwxNN3V7RwT5x_K8K21wNWfO1kX4dMH3JS0usWmXXMIB03-WWoTfMg8as1NyuznLfZK_GqYgJgqiYwIRO4dCK0ZbYNQd-5cxYSX5awA3TkEE-5Qn4QTneX8YIpnTJWJfABAZMZ";      $url = "https://api.weixin.qq.com/cgi-bin/menu/delconditional?access_token=$ACCESS_TOKEN";      $data = '{"menuid":"413705287"}';      $result = curl_http_post($url$data);      echo $result;  }  

返回结果如下:

[javascript] view plain copy {"errcode":0,"errmsg":"ok"}  

5).查询个性化菜单.

使用普通自定义菜单查询接口可以获取默认菜单和全部个性化菜单信息.

6).删除个性化菜单

使用普通自定义菜单删除接口可以删除所有自定义菜单(包括默认菜单和全部个性化菜单).

三.效果图

        我只看到了通用的自定义菜单,个性化菜单没看到.官方档上说:"个性化菜单要求用户的微信客户端版本在iPhone6.2.2,Android6.2.4以上".4s的吊丝表示伤不起.如下图:

版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/szuzsq/article/details/51916214
转载请注明原文地址: https://www.6miu.com/read-2630104.html

最新回复(0)