微信开发模式之自己定义菜单实现

编辑模式和开发模式是有冲突的。所以我们启用微信公众号的开发模式之后。那些菜单是看不到的哦。

只是如今个人订阅号是不能够使用高级开发人员模式的。如自己定义菜单,只是我们还是能够通过測试号来測试一下。然后移代码到服务号。

自己定义类型包含例如以下:

1、click:点击推事件

? 用户点击click类型button后。微信server会通过消息接口推送消息类型为event

的结构给开发人员(參考消息接口指南)。而且带上button中开发人员填写的key值

,开发人员能够通过自己定义的key值与用户进行交互。

2、view:跳转URL

? 用户点击view类型button后,微信client将会打开开发人员在button中填写的网页

URL,可与网页授权获取用户基本信息接口结合,获得用户基本信息。

3、scancode_push:扫码推事件

? 用户点击button后,微信client将调起扫一扫工具,完毕扫码操作后显示扫描

结果(假设是URL,将进入URL),且会将扫码的结果传给开发人员,开发人员可

下面发消息。

4、scancode_waitmsg:扫码推事件且弹出“消息接收中”提示框

? 用户点击button后,微信client将调起扫一扫工具。完毕扫码操作后,将扫码

的结果传给开发人员,同一时候收起扫一扫工具,然后弹出“消息接收中”提示框

,随后可能会收到开发人员下发的消息。

自己定义类型包含例如以下:

5、pic_sysphoto:弹出系统拍照发图用户点击button后,微信

client将调起系统相机,完毕拍照操作后,会将拍摄的相片

发送给开发人员,并推送事件给开发人员,同一时候收起系统相机。

随后可能会收到开发人员下发的消息。

6、pic_photo_or_album:弹出拍照或者相冊发图用户点击按

钮后。微信client将弹出选择器供用户选择“拍照”或者“

从手机相冊选择”。用户选择后即走其它两种流程。

7、pic_weixin:弹出微信相冊发图器用户点击button后。微信

client将调起微信相冊,完毕选择操作后。将选择的相片发

送给开发人员的server。并推送事件给开发人员,同一时候收起相冊

,随后可能会收到开发人员下发的消息。

提供代码,仅仅要上传代码到server,又一次关注公众号就能够看到开发模式下的自己定义菜单

$appid = '微信公众号的appid';
$appsecret = '微信公众号的appsecret';
$url = "https://api.weixin.qq.com/cgi-bin/token?

grant_type=client_credential&appid={$appid}&secret=$appsecret";
$output = https_request($url);
$jsoninfo = json_decode($output,true);
$access_token = $jsoninfo["access_token"];
$jsonmenu = '{
     "button":[
        {
          "name":"学校系统",
          "sub_button":[
                {
                    "type":"click",
                    "name":"课程表",
                    "key":"课程表"
                },
                {
                    "type":"click",
                    "name":"个人信息",
                    "key":"个人信息"
                },
                {
                    "type":"click",
                    "name":"平时成绩",
                    "key":"平时成绩"
                },
                {
                    "type":"click",
                    "name":"奖惩记录",
                    "key":"奖惩记录"
                }
          ]
        },
        {
            "name":"技术分享",
          "sub_button":[
                {
                    "type":"click",
                    "name":"移动WEB开发",
                    "key":"移动WEB开发"
                },
                {
                    "type":"click",
                    "name":"J2EE框架",
                    "key":"J2EE框架"
                },
                {
                    "type":"click",
                    "name":"Android开发",
                    "key":"Android开发"
                },
                {
                    "type":"click",
                    "name":"PHP框架",
                    "key":"PHP框架"
                }
          ]
        },{
            "name":"技术支持",
          "sub_button":[
                {
                    "type":"click",
                    "name":"在线客服",
                    "key":"在线客服"
                },
                {
                    "type":"click",
                    "name":"技术分享",
                    "key":"技术分享"
                },
                {
                    "type":"view",
                    "name":"天气预报",
                    "url":"http://m.hao123.com/a/tianqi"
                }
          ]
        }

    ]
    }';

  //创建菜单实现
  $url = 'https://api.weixin.qq.com/cgi-bin/menu/create?access_token='.$access_token;
  $result = https_request($url,$jsonmenu);
  var_dump($result);
  function https_request($url,$data = null){
      $curl = curl_init();
      curl_setopt($curl,CURLOPT_URL,$url);
      curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,0);
      curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,0);
      if(!empty($data)){
          curl_setopt($curl,CURLOPT_POST,1);
          curl_setopt($curl,CURLOPT_POSTFIELDS,$data);
      }
      curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
      $output = curl_exec($curl);
      curl_close($curl);
      return $output;
  }



时间: 2024-08-10 16:56:14

微信开发模式之自己定义菜单实现的相关文章

微信公众号教程(8)用微信开发模式做欢迎词

第九章 用微信开发模式做欢迎词 今天的重点是如何将微信开发模式和SAE对接,希望朋友们已经完成了SAE注册,如果还没搞定的话请抓紧,有问题的话请及时提出,接下来的教程都在那上面进行. 在教程开始前建议朋友们可以先注册一个新的公众账号,或者用非主账号当做开发测试账号,因为开发调试过称中可能会经常出现账号无法正常回复用户的情况,影响正常使用,所以在学习期间以及后期开发过程中最好有一个测试公众账号,等开发完成了再切换到主账号上,也是非常方便的. 一.微信公众平台与SAE对接通讯   我们先回到微信公众

微信开发模式(php)

才开始学习微信开发模式和PHP,在此记录以供后阅. <?php /** * wechat php test */ //define your token define( "TOKEN", "weixin" ); $wechatObj = new wechatCallbackapiTest(); if ( !isset( $_GET['echostr'] ) ) { $wechatObj->responseMsg(); }else { $wechatObj

微信开发(三)创建菜单

div#cpmenu {height:200px;float:left;} div#cpcontent {height:200px;width:150px;float:left;} 文章作者:松阳 原文链接:http://blog.csdn.net/fansongy/article/details/43406073 Overview 如果选择了为微信制定开发版,就不能使用功能中的自定义菜单工具,需要使用代码手动添加 .这篇文章主要介绍如何通过http请求添加自定义菜单. 原理与工具 如果希望添加

微信开发模式,自定义菜单的创建

在微信服务器和公众平台都配置好以后,创建菜单(通过在线接口调试工具). 开发者工具->在线接口调试工具 首先获取access_token 图中黄字部分即为access_token 选择接口类型->自定义菜单,填入access_token和相应的post数据 点击检查问题,至此菜单创建成功. 微信开发者文档内容: 请注意: 1.自定义菜单最多包括3个一级菜单,每个一级菜单最多包含5个二级菜单. 2.一级菜单最多4个汉字,二级菜单最多7个汉字,多出来的部分将会以“...”代替. 3.创建自定义菜单

微信开发(二)自定义菜单

自定义菜单能够帮助公众号丰富界面,让用户更好更快地理解公众号的功能. 下面说一下在开发者模式下如何创建自定义菜单. 创建自定义菜单入口在 开发者模式下的  在线调试工具,创建自定义菜单需要使用JSON数据来生成,也可使用程序控制来生成. 首先需要获取access_token,通过appid和secret获取,如图所示: 再通过选择自定义菜单 - 创建自定义菜单: 这里的json格式模板为: { "button": [ { "name": "教学栏"

Senparc.Weixin微信开发(3) 自定义菜单与获取用户组

自定义菜单 代码参考:http://www.cnblogs.com/szw/p/3750517.html 还可以使用他们官网的自定义:https://neuchar.senparc.com/User/WeixinMenu 注册好,再先弄好配置.直接可以推送. 获取用户组 /// <summary> /// 取得用户组 /// </summary> /// <returns></returns> public JsonResult GetGroupList()

微信开发模式无法验证以及返回消息中文乱码的情况

一开始我也纠结了这个问题很久,从微信公众平台上下载下来的例子不是utf-8格式的,但是却可以验证通过. 此时修改加入中文,返回消息会乱码,改成utf-8编码就显示正常了. 再来验证会不通过. 我一直纠结这个问题,其实没必要,只要第一次验证通过即可,后面修改成utf-8编码也不影响公众平台与服务号交互.

java微信开发

所谓的微信开发就是在微信开发模式之下,对微信进行公众号和企业号的扩展开发. 如果要让你的微信公众号有更多的功能,比如菜单支持,自动的信息服务,查询,消息推送等,就必须开启微信的开发模式.进入微信公众平台的管理界面,打开开发模式,配置好你的服务器即可. 使用java微信开发,就是你配置的服务器中的应用程序是使用java开发. 使用java开发微信的步骤: 1.进入微信公众平台开启开发模式. 2.搭建你自己的服务器,必须是80端口,且必须有域名. 3.寻找一个快速开发的框架,强烈推荐开源的wecha

微信开发之关注自动回复

微信开发模式下关注自动回复官方给出的说明是: 推送XML数据包示例: <xml> <ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName><![CDATA[FromUser]]></FromUserName> <CreateTime>123456789</CreateTime> <MsgType><![CDATA[even