微信公众号开发生成自定义菜单

来源:互联网 发布:mac图片处理 编辑:程序博客网 时间:2024/06/06 02:49

<?php

 $jsonmenu='{
     "button":[
       {
           
               "type":"view",
               "name":"点",
               "url":"http://url.cn/420hqFb"
       },
      {
           "name":"扫",
           "sub_button":[
           {
               "type":"click",
               "name":"解码手册",
               "key":"V201"
            },
            {
               "type":"view",
               "name":"扫一扫",
               "url":"http://g-cat.me/platform/weixin/scanCode.do?code=dksj&share_voucher=voucher"
            }]
       },
       {
           "name":"挖",
           "sub_button":[
           
            {
               "type":"view",
               "name":"品牌故事",
               "url":"http://mp.weixin.qq.com/s?__biz=MzA3OTQ3Mzc2Mw==&mid=210864245&idx=1&sn=243961660f7eb8ad7f4e2410b4a354af&scene=18#wechat_redirect"
            },
            {
               "type":"view",
               "name":"门店信息",
               "url":"http://mp.weixin.qq.com/s?__biz=MzA3OTQ3Mzc2Mw==&mid=442478945&idx=1&sn=49722ea5e9b293fcff6ca819c4b0b26d&scene=0#rd"
            },
            {
               "type":"view",
               "name":"往期文章",
               "url":"http://mp.weixin.qq.com/s?__biz=MzA3OTQ3Mzc2Mw==&mid=206509356&idx=1&sn=9daa46ba7a65e6b7daca01f43503a763&scene=0#rd"
            }]
       }]

 }';

//包含Accesstoken.php主要是获得access_token的功能,具体可以查看我的另一篇博客,微信公众号开发获取accesstoken的文章,很简单的。

require('Accesstoken.php');
$access_token=get_token();
$url = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=".$access_token;
$result = https_request($url, $jsonmenu);

var_dump($result);//查看返回数据

//https_requet()这个函数主要是封装curl发送post和get请求的,curl函数经常用,功能强大,具体功能可以再去细致研究。

function https_request($url,$data = null){
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
    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;

}

?>



//菜单有10种不同的类型,这个最常用的是url和点击事件click触发,可以设置key值,在根据具体业务实现不同的需求。

1、click:点击推事件用户点击click类型按钮后,微信服务器会通过消息接口推送消息类型为event的结构给开发者(参考消息接口指南),并且带上按钮中开发者填写的key值,开发者可以通过自定义的key值与用户进行交互;2、view:跳转URL用户点击view类型按钮后,微信客户端将会打开开发者在按钮中填写的网页URL,可与网页授权获取用户基本信息接口结合,获得用户基本信息。3、scancode_push:扫码推事件用户点击按钮后,微信客户端将调起扫一扫工具,完成扫码操作后显示扫描结果(如果是URL,将进入URL),且会将扫码的结果传给开发者,开发者可以下发消息。4、scancode_waitmsg:扫码推事件且弹出“消息接收中”提示框用户点击按钮后,微信客户端将调起扫一扫工具,完成扫码操作后,将扫码的结果传给开发者,同时收起扫一扫工具,然后弹出“消息接收中”提示框,随后可能会收到开发者下发的消息。5、pic_sysphoto:弹出系统拍照发图用户点击按钮后,微信客户端将调起系统相机,完成拍照操作后,会将拍摄的相片发送给开发者,并推送事件给开发者,同时收起系统相机,随后可能会收到开发者下发的消息。6、pic_photo_or_album:弹出拍照或者相册发图用户点击按钮后,微信客户端将弹出选择器供用户选择“拍照”或者“从手机相册选择”。用户选择后即走其他两种流程。7、pic_weixin:弹出微信相册发图器用户点击按钮后,微信客户端将调起微信相册,完成选择操作后,将选择的相片发送给开发者的服务器,并推送事件给开发者,同时收起相册,随后可能会收到开发者下发的消息。8、location_select:弹出地理位置选择器用户点击按钮后,微信客户端将调起地理位置选择工具,完成选择操作后,将选择的地理位置发送给开发者的服务器,同时收起位置选择工具,随后可能会收到开发者下发的消息。9、media_id:下发消息(除文本消息)用户点击media_id类型按钮后,微信服务器会将开发者填写的永久素材id对应的素材下发给用户,永久素材类型可以是图片、音频、视频、图文消息。请注意:永久素材id必须是在“素材管理/新增永久素材”接口上传后获得的合法id。10、view_limited:跳转图文消息URL用户点击view_limited类型按钮后,微信客户端将打开开发者在按钮中填写的永久素材id对应的图文消息URL,永久素材类型只支持图文消息。请注意:永久素材id必须是在“素材管理/新增永久素材”接口上传后获得的合法id。


0 0
原创粉丝点击