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。
     
    问:这些代码参数在哪里看来的?
    答:我也不记得了,估计是百度的吧,不过我现在已经学会了,在哪里看到其实已经不重要,重要的是你学习的方法。
  • 相关阅读:
    JeePlus:代码生成器
    JeePlus:API工具
    Java实现 洛谷 P1023 税收与补贴问题
    Java实现 洛谷 P1023 税收与补贴问题
    Java实现 洛谷 P1023 税收与补贴问题
    Java实现 洛谷 P1328 生活大爆炸版石头剪刀布
    Java实现 洛谷 P1328 生活大爆炸版石头剪刀布
    Java实现 洛谷 P1328 生活大爆炸版石头剪刀布
    Java实现 洛谷 P1328 生活大爆炸版石头剪刀布
    Java实现 洛谷 P1328 生活大爆炸版石头剪刀布
  • 原文地址:https://www.cnblogs.com/hgj123/p/3921684.html
Copyright © 2011-2022 走看看