今天继续为大家介绍微信公众号开发的那点事第五篇——自定义菜单的开发。
自定义菜单有两种方式,一种是直接在公众号后台编辑配置,另一种是用自定义菜单接口开发。需要注意的是只有服务号和认证的订阅号才具有自定义菜单接口权限,未认证的订阅号只能在后台配置自定义菜单。
开发自定义菜单主要分两个步骤:
通过AppID和AppSecret用相关接口获取接口调用凭据access_token
通过access_token和自定义菜单创建接口创建自定义菜单
首先我们来获取access_token,接口调用请求说明如下:
http请求方式: GET(请使用https协议)
接口地址:https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
获取access_token的代码如下:
通过调用上面的get_access_token方法就可以获取到access_token,其中参数$appid,$secret就是我们在基本配置中看到的APPID和APPSECRET。
当然我们也可以直接在浏览器地址栏中执行https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET来获取access_token。
拿到access_token之后我们就可以通过自定义菜单接口来创建自定义菜单了。
自定义菜单分一级菜单和二级菜单,具体结构如下:
其中button为一级菜单,sub_button为二级菜单,菜单的类型type可以设置为click或view。
当用户点击type类型为click的菜单的时候,微信服务器会给开发者服务器推送消息类型为event的XML数据包(详见四篇内容),并且带上key值,开发者可以通过自定义的key值与用户进行交互。
当用户点击type类型为view的菜单时,微信客户端会打开菜单里面填写的url地址的网页。
接口调用请求说明如下:
http请求方式:POST(请使用https协议)
其中的ACCESS_TOKEN就是我们上面获取到的access_token,具体创建菜单代码如下:
调用上面的create_menu方法就可以创建自定义菜单了,其中的参数$access_token是我们获取到的access_token,$menu_content
参数是菜单结构字符串(具体结构已在上面说明)。
创建成功时返回的JSON数据包如下:
{"errcode":0,"errmsg":"ok"}
微信公众平台:PHP技术宅
微信号:phpjsz