微信公众平台开发(58)自定义菜单

微信公众平台开发(58)自定义菜单

微信公众平台开发 微信公众平台开发模式 企业微信公众平台 自定义菜单 开发教程 
作者:方倍工作室 
地址:http://www.cnblogs.com/txw1958/p/weixin-58-custom-menu.html

 

1. 申请成为服务号

2. 申请自定义菜单,得到appid和appsecert

3. 用appid和appsecert获得access token
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

{"access_token":"N2L7KXa084WvelONYjkJ_traBMCCvy_UKmpUUzlrQ0EA2yNp3Iz6eSUrRG0bhaR_viswd50vDuPkY5nG43d1gbm-olT2KRMxOsVE08RfeD9lvK9lMguNG9kpIkKGZEjIf8Jv2m9fFhf8bnNa-yQH3g","expires_in":7200}

 
4. 将菜单组织成结构,通过post提交给接口

 

$xjson = '{
      "button":[
      {
           "name":"天气预报",
           "sub_button":[
            {
               "type":"click",
               "name":"北京天气",
               "key":"天气北京"
            },
            {
               "type":"click",
               "name":"上海天气",
               "key":"天气上海"
            },
            {
               "type":"click",
               "name":"广州天气",
               "key":"天气广州"
            },
            {
               "type":"click",
               "name":"深圳天气",
               "key":"天气深圳"
            },
            {
               "type":"view",
               "name":"本地天气",
               "url":"http://m.hao123.com/a/tianqi"
            }]
       },
       {
           "name":"生活服务",
           "sub_button":[
            {
               "type":"click",
               "name":"话费充值",
               "key":"活动充值"
            },
            {
               "type":"click",
               "name":"彩票购买",
               "key":"活动彩票"
            },
            {
               "type":"click",
               "name":"充值中奖",
               "key":"活动中奖"
            }]
       },
       {
           "name":"关于方倍",
           "sub_button":[
            {
               "type":"click",
               "name":"公司简介",
               "key":"company"
            }]
       }]
 }';
 
$url = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=p0tEu5tgSgQmZP4UKa1Bvd2Y9BL-03Uz2FXj2j-LX9hFuHt49ExIOyvKtNi4DWycl73Vs2SIsl1I6QqEpzyQpBNK2vRFHZKk1fS6HsXMWn522cvoOAhGX13aSj4zmoU5sQnX-FEpD36XwQJqw8IXkQ";
$result = vpost($url,$xjson);
var_dump($result);
 
function vpost($url,$data){ // 模拟提交数据函数
    $curl = curl_init(); // 启动一个CURL会话
    curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); // 对认证证书来源的检查
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE); // 从证书中检查SSL加密算法是否存在
    curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)'); // 模拟用户使用的浏览器
    // curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转
    // curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer
    curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求
    curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的数据包x
    curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循环
    curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回
    $tmpInfo = curl_exec($curl); // 执行操作
    if (curl_errno($curl)) {
       echo 'Errno'.curl_error($curl);//捕抓异常
    }
    curl_close($curl); // 关闭CURL会话
    return $tmpInfo; // 返回数据
}

 

5. 在消息接口中处理event事件,其中的click代表菜单点击,通过响应菜单结构中的key值回应消息

private function receiveEvent($object)
    {
        $contentStr = "";
        switch ($object->Event)
        {
            case "subscribe":
                $contentStr[] = array("Title" =>"欢迎关注方倍工作室", "Description" =>"点击图片关注或者搜索号码beancube", "PicUrl" =>"http://discuz.comli.com/weixin/weather/icon/cartoon.jpg", "Url" =>"weixin://addfriend/beancube");
            case "unsubscribe":
                $contentStr = "";
                break;
            case "CLICK":
                switch ($object->EventKey)
                {
                    case "company":
                        $contentStr[] = array("Title" =>"公司简介", "Description" =>"方倍工作室提供移动互联网相关的产品及服务,包括新浪微博应用、微信公众平台接口、手机版网站等", "PicUrl" =>"http://discuz.comli.com/weixin/weather/icon/cartoon.jpg", "Url" =>"weixin://addfriend/beancube");
                        break;
                    default:
                        $contentStr[] = array("Title" =>"默认菜单回复", "Description" =>"您正在使用的是方倍工作室的自定义菜单测试接口", "PicUrl" =>"http://discuz.comli.com/weixin/weather/icon/cartoon.jpg", "Url" =>"weixin://addfriend/beancube");
                        break;
                }
                break;
            default:
                $contentStr = "receive a new event: ".$object->Event;
                break;      

       }
        return $contentStr;
    }

 

 

 

=============================================================

 

欢迎关注方倍工作室微信,了解我们及行业的最新动态

微信公众平台开发(58)自定义菜单

 

转载于:https://www.cnblogs.com/lanzhi/p/6467628.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/109950.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Oracle创建表空间、创建用户、授予权限、锁定、解锁以及删除用户等[通俗易懂]

    Oracle创建表空间、创建用户、授予权限、锁定、解锁以及删除用户等[通俗易懂]Oracle创建表空间、创建用户、授予权限以及删除用户等–创建表空间CREATETABLESPACEcaiylDATAFILE’D:\Oracle\app\caiyl\oradata\orcl\caiyl_space.dbf’size500mAUTOEXTENDONNEXT200MMAXSIZE20480MEXTENTMANAGEMENTLOCAL;

    2022年7月16日
    10
  • 亚马逊专用主机相关问题「建议收藏」

    亚马逊专用主机相关问题

    2022年2月18日
    41
  • flag activity new task_android startactivityforresult

    flag activity new task_android startactivityforresult刚刚在一个服务中监听广播,接收广播后希望startActivity,结果报错。错误如下,红色部分是主要内容,其中一个关键词是FLAG_ACTIVITY_NEW_TASK。 10-0117:08:02.412:E/AndroidRuntime(15737):FATALEXCEPTION:main10-0117:08:02.412:E/AndroidRuntime(15737):

    2022年10月5日
    0
  • 微信小程序–获取已发布微信小游戏和小程序源码「建议收藏」

    最近一直在做微信小游戏的开发,发现了一个好玩的事,在这里记录一下。这段时间一直在做一些小游戏,小程序的开发,但有的时候会发现性能上总是不那么的尽如人意(毕竟我这小菜鸟水平有限),于是就想到,想要看看别的大神们是怎么处理这些问题的(其实就是想看一下大神们的代码怎么写!)。但是,有一个问题就是小游戏或者小程序和H5、网页不一样,不能直接F12看代码,要怎么才能拿他们的代码呢?  …

    2022年4月14日
    130
  • 剑指offer:二进制中1的个数(Python)& 0xffffffff

    剑指offer:二进制中1的个数(Python)& 0xffffffff题目描述输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。解题思路思路1首先,这种基础的求二进制中1的个数的问题,对于强大的Python,一定存在一些好用的库函数。果不其然,代码如下:Python代码1defNumberOf1(self,n):ifn>=0:returnbin(n).count(‘1’)else…

    2022年5月17日
    28
  • MVC三层架构(详解)「建议收藏」

    MVC三层架构(详解)「建议收藏」1:初始MVC(1):三层架构三层架构是指:视图层View、服务层Service,与持久层Dao。它们分别完成不同的功能。View层:用于接收用户提交请求的代码在这里编写。Service层:系统的业务逻辑主要在这里完成。Dao层:直接操作数据库的代码在这里编写。为了更好的降低各层间的耦合度,在三层架构程序设计中,采用面向抽象编程。即上层对下层的调用,是通过接口实现的。而下层对上层的真正服务提供者,是下层接口的实现类。服务标准(接口)是相同的,服务提供者(实现类)可以更换。这就

    2022年6月25日
    23

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号