zoukankan      html  css  js  c++  java
  • 手把手教会你微信公众平台自定义菜单开发——创建菜单

    一如既往的,关于微信公众平台的开发,不算出自大牛的代码,但是简单易懂适合刚入门的朋友。

    首先先介绍一下逻辑,因为发现很多朋友都不能看懂微信官方的文档,当然啦,这跟你是否认真看有关的,认真看总能看懂的,废话不说了。此时,我当你已经有一个已经申请到自定义菜单开发权限的微信服务号。首先,你要在后台开发模式下面找到你的AppId 还有 AppSecret并且记下来,然后通过这两个官方发放给你的ID去获取一个ACCESS_TOKEN【官方解释是:第三方访问api资源的票据】,稍后会通过这个ACCESS_TOKEN,提交你的菜单。
    下面教你怎么获取这个ACCESS_TOKEN:
    访问这个链接 https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET   但是访问之前,把刚才让你记下来的AppId 还有 AppSecret 替换到链接里面,然后复制到浏览器地址栏,一访问,就返回几个数据,里面最长的那段就是我们要的ACCESS_TOKEN了。【当然,如果你还是不明白这个链接怎么替换,那我只能再写明白点了就是下面https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=你的APPID&secret=你的APPSECRET 】
    要注意的是,这个ACCESS_TOKEN 是有时间限制的,超过了一定时间就会失效。就要重新获取;另外,如果你刚获取之后,又不小心获取了一次,那么前一次获取到的值会失效,第二次的值生效。
    接下来教大家怎么创建菜单,代码如下:

    <?php
    header("Content-type: text/html; charset=utf-8");

    define("ACCESS_TOKEN", 'NYD-0s6f4yBJecqJ6QAiH7Nivh_gnWhbjs5vY1BZ9zViZAkYfw0QL5cO5ILK7lS3BkUCUrwqlDqzU9OVMaDO44Vuju7ZhXjdpJk8PxHgNf7cTs7rp6dvm-KJSkdiufqbL5niZwHM0uWJVi0mnSLGZg');

    //创建菜单
    function createMenu($data){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=".ACCESS_TOKEN);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)');
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $tmpInfo = curl_exec($ch);
    if (curl_errno($ch)) {
    return curl_error($ch);
    }
    curl_close($ch);
    return $tmpInfo;
    }


    $data = ' {
    "button":[

    {
    "name":"时讯",
    "sub_button":[
    {
    "type":"click",
    "name":"即时新闻",
    "key":"jsxw"
    },
    {
    "type":"click",
    "name":"财经早餐",
    "key":"cjzc"
    },
    {
    "type":"click",
    "name":"焦点话题",
    "key":"jdht"
    },
    {
    "type":"view",
    "name":"财经日历",
    "url":"http://stock1.sina.cn/dpool/stockv2/universal_calendar.php?vt=4"
    }]
    },
    {
    "name":"说市",
    "sub_button":[
    {
    "type":"click",
    "name":"今日看盘",
    "key":"jrkp"
    },
    {
    "type":"view",
    "name":"行情刷新",
    "url":"http://XX/index.php/market/index"
    },
    {
    "type":"click",
    "name":"交易策略",
    "key":"jycl"
    },
    {
    "type":"click",
    "name":"投资天地",
    "key":"tztd"
    },
    {
    "type":"click",
    "name":"投资文库",
    "key":"tzwk"
    }]
    },
    {
    "name":"北鼎在线",
    "sub_button":[
    {
    "type":"view",
    "name":"关于我们",
    "url":"http://www.index.php/article/index/id/114"
    },
    {
    "type":"view",
    "name":"最新活动",
    "url":"http://www.index.php/article/index/id/115"
    },
    {
    "type":"view",
    "name":"参与爆料",
    "url":"http://www.index.php/message"
    }
    ]
    }




    ]
    }';

    echo createMenu($data);//创建菜单

    ?>

    如代码所示,菜单有两种,一种是直接跳转到URL页面,即view;另一种,是发送指令,即click,说白了就是在客户端辅助用户的,可以看成一键发关键词。第一种很好做,填写好URL就完事了,用户点击菜单按钮,然后跳转到你填写的URL地址,缺点是URL地址不变,不够灵活。另一种就是发送指令,可以在公众账号接口开发(注意跟自定义菜单区别开)的时候,判断指令的内容,灵活处理并且动态输出不同的数据。
    通过POST方式把菜单的数据发送到微信服务器,在浏览器中看到的返回提示中,你看到OK的字眼,那么就证明已经成功了。创建完菜单之后,由于微信客户端的缓存要24小时才清理一次,所以你要马上看到效果就需要重新关注你的公众账号。此时,你已经尝试到胜利的果实了。
     
    下一次,我将告诉大家怎么利用自定义菜单动态获取图文。内容:1、一个THINKPHP搭建的微网站 2、自定义接口开发技术  3、自定义菜单   关键词:THINKPHP、 微网站、XML 微信自定义接口  微信自定义菜单    描述:用户在微信端选择指定栏目,自动获取微网站相关的若干条图文内容,每次更新都可以获取到不同的内容
     
     
     
     
    2014-7-27更新
    太久没来看博客了,所以不知道那么多朋友关注,实在让我小有感动。有朋友提了问题,估计那么久已经解决了,抱歉不能及时回复。不过也不碍我在这里做一个统一回复。
    问:key要怎么设?
    答:这个问题我不明白具体是什么意思。我估计是搞不懂key实际上就是关键词的意思,key的值其实是随便设的,这个值相当于微信里面的关键词,类似于你手动输入关键词发送到公众平台获取内容,自定义菜单的key作用就是类似于给你一键输入关键词并发送。你要做的就是设置一个跟已存在的关键词不重复key的值,然后在处理关键词的代码里面给出相应的反馈。
     
    问:appid appsecret怎么来的?
    答:这个在当时是服务号才有的,后来认证的订阅号也有。
     
    问:用了你的代码,为什么服务器返回错误
    答:你用的是我的appid跟appsecret获取到的access token执行的,而不是你自己的,这些参数是我的,给你用了会弄坏我的自定义菜单,所以参数我修改了部分,你要正常使用,必须用自己的参数,并且根据我说的步骤去进行。
     
    问:这段代码怎么使用
    答:你可以手动访问这段代码的页面的url就行了,比如代码页面的url是http://www.xingfenxiaozhu.com/index.php,你复制url到浏览器,然后访问,如果没有错误,自定义菜单就出来了。当然你也可以通过curl代码模拟请求这段代码页面的url。
     
    问:这些代码参数在哪里看来的?
    答:我也不记得了,估计是百度的吧,不过我现在已经学会了,在哪里看到其实已经不重要,重要的是你学习的方法。
  • 相关阅读:
    mac快捷键,pycharm快捷键
    Django进阶之session
    Python:如何将字符串作为变量名
    Ubuntu中创建用户
    redis在centos上的安装
    centos--网络配置问题,提示connect: Network is unreachable
    Python 3.x--paramiko模块详解
    Python 3.x--paramiko模块安装过程中的错误
    Python 3.x--Socket实现简单的ssh和文件下载功能
    Python 3.x--面向对象编程(二)静态方法、类方法、属性方法
  • 原文地址:https://www.cnblogs.com/hgj123/p/3921684.html
Copyright © 2011-2022 走看看