php版微信实现公众号菜单添加删除操作

为了以最快方式调试新菜单功能,就用Debug方式去生成新菜单。请参数微信教程2的 wechat-json类。导入该文件后,我们用Debug方式生成一个新菜单:
if (isset($argc)  && $argc >= 1 && $argv[0] == __FILE__) {
    $client = new WechatJSON(array(
        WechatJSON::APP_ID => 'wx78acfe8023sfsd4d51',
        WechatJSON::APP_SECRET => '9ba3476db1ffsfsf512e0b22f630fa',
    ));
 
    $res = $client->call('/menu/create',array (
            'button' => array(
                array (
                    'name' => '扫码',
                    'sub_button' => array(
                        array(
                            'name' => '扫码不提示',
                            'type' => 'scancode_push',
                            'key' => 'rselfmenu_0_0',
                            'sub_button' =>array ()
                        ),
                        array(
                            'name' => '扫码带提示',
                            'type' => 'scancode_waitmsg',
                            'key' => 'rselfmenu_0_1',
                            'sub_button' =>array ()
                        ),
                    ),
                ),
                array(
                    'name' => '发图',
                    'sub_button' => array(
                        array(
                            'name' => '系统拍照发图',
                            'type' => 'pic_sysphoto',
                            'key' => 'rselfmenu_1_0',
                            'sub_button' => array()
                        ),
                        array(
                            'name' => '拍照或者相册发图',
                            'type' => 'pic_photo_or_album',
                            'key' => 'rselfmenu_1_1',
                            'sub_button' => array()
                        ),
                        array(
                            'name' => '微信相册发图',
                            'type' => 'pic_weixin',
                            'key' => 'rselfmenu_1_2',
                            'sub_button' => array()
                        ),
                    )
                ),
                array(
                    'name' => '发送位置',
                    'type' => 'location_select',
                    'key' => 'rselfmenu_2_0'
                )
            )
        )
        , WechatJSON::JSON);
    if (!$res) {
        var_dump($client->_error);
    }
    var_export($res);
}

执行后,取消关注再关注,让新菜单生效!
效果图:

测试结果如下:
scancode_push事件:
array (
  'tousername' => 'gh_e2a2b3bd35ff',
  'fromusername' => 'on0eVjnYStxkCSaaCamYCpMZDmwA',
  'createtime' => '1411629272',
  'msgtype' => 'event',
  'event' => 'scancode_push',
  'eventkey' => '6',
  'scancodeinfo' =>
  SimpleXMLElement::__set_state(array(
     'ScanType' => 'qrcode',
     'ScanResult' => 'http://www.baidu.com/',
  )),
array (
  'tousername' => 'gh_e2a2b3bd35ff',
  'fromusername' => 'on0eVjnYStxkCSaaCamYCpMZDmwA',
  'createtime' => '1411629475',
  'msgtype' => 'event',
  'event' => 'scancode_push',
  'eventkey' => '6',
  'scancodeinfo' =>
  SimpleXMLElement::__set_state(array(
     'ScanType' => 'qrcode/EAN_13',
     'ScanResult' => '6925082946487',
     'EventKey' =>
    SimpleXMLElement::__set_state(array(
    )),
  )),
)

 

 

上面是在菜单上点击《扫码不提示》后的log,有两种情况出现,第一种是如果你扫的是二维码是URL,它就会跳转到网页(注包括服务号生成的二维码),第二种是如果你扫的是条形码,就会跳转到搜索到该商品的详细信息,也就是大家常用的查价格。

scancode_waitmsg事件:
array (
  'tousername' => 'gh_e2a2b3bd35ff',
  'fromusername' => 'on0eVjnYStxkCSaaCamYCpMZDmwA',
  'createtime' => '1411629302',
  'msgtype' => 'event',
  'event' => 'scancode_waitmsg',
  'eventkey' => '6',
  'scancodeinfo' =>
  SimpleXMLElement::__set_state(array(
     'ScanType' => 'qrcode',
     'ScanResult' => 'http://www.111cn.net/',
  )),

 

上面是点击菜单《扫码提示》后的log,推送XML跟scancode_push时差不多,但它不会跳转到网址或者商品信息。博主认为,这有利于后台取得scancodeinfo的信息来进一步处理!打个比方,自己自定义二维码信息,然后截取处理。类似于原服务号的参数二维码。
注意,以上两个菜单扫描事件和微信APP的扫一扫,是有区别的。具体你看事件就能看出来,scan事件!
pic_sysphoto事件、pic_photo_or_album事件和pic_weixin事件
array (
  'tousername' => 'gh_e2a2b3bd35ff',
  'fromusername' => 'on0eVjnYStxkCSaaCamYCpMZDmwA',
  'createtime' => '1411627313',
  'msgtype' => 'image',
  'picurl' => 'http://mmbiz.qpic.cn/mmbiz/L8zbjcLqNFvEZ4dne4MGQQGR8xuHk4KhEk3icghU6a4bFTXnP2oeicr5VaBVJa10w4MYOOEia4udqicT5fdtAADHYg/0',
  'msgid' => '6062893143676022221',
  'mediaid' => 'i7hYOlSXbUCaC7Z9Elx4WpBqQq37-hR0El5w-frPfD5WCdBC7x46DPO6HL7zMfgd',
)

 

 

上面是点《发图》后,三个子菜单选择或者拍好,发图后的log信息,从图中我们看到事件是推过来了image,其他信息,相信大家都知道是什么,不解释。
location_select事件:
array (
  'tousername' => 'gh_e2a2b3bd35ff',
  'fromusername' => 'on0eVjnYStxkCSaaCamYCpMZDmwA',
  'createtime' => '1411627424',
  'msgtype' => 'event',
  'event' => 'location_select',
  'eventkey' => '6',
  'sendlocationinfo' =>
  SimpleXMLElement::__set_state(array(
     'Location_X' => '23',
     'Location_Y' => '113',
     'Scale' => '15',
     'Label' =>
    SimpleXMLElement::__set_state(array(
    )),
     'Poiname' =>
    SimpleXMLElement::__set_state(array(
    )),
  )),
)

上面是点击菜单《发送位置》后的log,我们可以看出事件是location_select,不像发图那样变成image,最有价值的信息是我们要取的sendlocationinfo里的

时间: 2024-09-14 10:45:53

php版微信实现公众号菜单添加删除操作的相关文章

微信公众号 文本 菜单-微信普通公众号如何实现多重文本菜单?

问题描述 微信普通公众号如何实现多重文本菜单? 微信普通公众号如何实现多重文本菜单? 微信普通公众号如何实现多重文本菜单?比如: 首先显示文本菜单: 1. a 2. b 3. c 在输入2之后,后台列出2下的新菜单列表: 1. ba 2. bb 3. bc 再输入3之后,后台列出3下的新菜单列表,以此类推 这个功能该如何实现呢? 解决方案 下一级你可以指定为2.1 再一级 2.1.1 解决方案二: 很简单,微信公众号提供了对特定关键字进行特定回复的接口 你只要自定义这些特定关键字和需要回复的内容

微信公众号怎么添加背景音乐?

  微信公众号怎么添加背景音乐?微信公众号新增可以在文章里面添加背景音乐,这样有利于用户在观看文章的同时,还能够赏析音乐,简直是明智之选呀!赶紧来看看微信公众号添加背景音乐教程吧! 微信公众号添加背景音乐教程 具体操作非常简单,在编辑框最右侧点击音乐的图标就可以选择搜索(支持多个关键词搜)自己喜欢的音乐了,经过测试,未经认证的公众号也可以使用这一功能. 是因为刚上线的缘故,目前的乐曲库还不是很全,相信有QQ音乐做后盾这个肯定不是问题. 至于展现效果,如下图,由用户自控制播放,不会出现一打开就出声

微信支付 微信用户从当前公众号菜单页面里支付给另一个公众号?

问题描述 微信支付 微信用户从当前公众号菜单页面里支付给另一个公众号? 请教下大家,微信支付 微信用户从当前公众号菜单页面里支付给另一个公众号?可行吗?

微信公众号文章添加音乐的教程

1.我们进入到微信公公众账号之后我们再点击如图所示[新建图文消息]效果如下所示 文章添加音乐的教程-公众号文章添加音乐"> 2.然后进入到文章编辑界面我们点击编辑器中的插入音乐图标,如图所示[音乐图标] 3.此时再从新页面中的[ 搜索框输入想要的歌曲名 ]进行查找 4.找到之后我们可以点击[试听按钮],试听OK之后,即可点击[ 确定 ]了 5.接下来返回正文页面之后,我们就可以看到音乐插件已经添加成功了 好了这样音乐就插入到文章了,我们现在只要发布了,发布成功之后我们打开音乐文章就可以看到

微信在公众号增开了新广告位 这次是在图文消息头部

自上次微信推广功能在图文消息底部投放图片和文字链两种广告后,近日微信在公众号增开了新广告位,这次是在图文消息的头部,支持APP下载类营销推广. 微信广告平台发布了三大产品功能,全面支持APP下载类营销推广.主要方式有: 1. 图文消息顶部增加App下载卡片,流量场景更丰富 图文消息顶部广告位正在灰度测试中,现已支持投放App下载卡片与图片类广告,能够直接触达用户,达成效果转化,可促进品牌形象渗透. 2. 投放后台增加定向条件"用户兴趣"标签,定向工具更精准 微信广告根据用户基础属性.短

微信禁止公众号互推后再出新规:多个条件限制分享至朋友圈

中介交易 SEO诊断 淘宝客 云主机 技术大厅 延伸阅读:微信公众号出严规,圈内现"八项规定谣言"微信公共平台被指靠微博而生 公众号退订比新关注多疑现负增长微信危局:微信公众号疑似出现负增长 微信禁止公众号限制诱导用户分享至朋友圈 微信营销还有戏? 南都讯 记者张东锋 微信团队悄然推出的"微信公众平台运营规范"(下称"规范"),这两天经由部分业内人士的解读后引起关注. "规范"对利用其他账号和第三方运营平台对公众账号推广.强制

微信平台公众号测试-关于微信平台公众号的测试点

问题描述 关于微信平台公众号的测试点 本人希望懂这方面的大神,可以指导一下,我一直接触的都是WEB系统测试,接触这个有点惶恐,系统有经验的大神,可以给我一些建议 解决方案 可以自己搭建个web服务器 或者申请个免费空间部署 解决方案二: 该怎么测试还是怎么测试,公众账号的开发类似一个web service+网站.

用微信的公众号查询个人信用评分是怎样一种场景?

阿里系的芝麻分来了,腾讯系的信用产品也不远了.用微信的公众号查询个人信用评分是怎样一种场景?也许再过两个月,秘密就能揭晓. 2月11日,经济观察报从腾讯公司人士处获悉,不久腾讯征信将借道微信公众号和手机QQ服务号,推出个人征信查询服务以及针对性的金融产品推荐. 不过,腾讯征信的产品到底啥模样?有别于芝麻信用,腾讯征信前期更看重金融场景. 此前,在财付通内部的一次分享会上,经济观察报记者获悉,腾讯征信将数据分为腾讯信息和非腾讯信息两部分.腾讯信息包括社交.支付.通讯和娱乐.这背后涉及到腾讯QQ.Q

微信开放公众号搜索 移动互联网是否会重回搜索时代?

微信的一个小动作或许会让搜索引擎在移动时代重回舞台中心. 6月9日,搜狗搜索放出大招,宣布正式接入微信公众号数据.这是微信开放平台以后首次可以实现全面权威展示.根据介绍,用户在搜索结果页可以浏览到与查询词相关的微信公众号及全部文章. 这次改变绝不仅仅针对公众号,未来微信的一切功能都可能会受到影响,移动互联网甚至会重回搜索时代,不过这次的主角将不再是百度. 颤抖的公众号 微信公众平台2012年推出后即成为封闭空间,订阅者和订阅号形成闭环,非订阅关系的用户很难知道订阅号里的内容,而当微信开始对微信好