jostudio.wechatmenu.php,微信/易信公共平台开发(2):自定义菜单的PHP实现(提供源码)...

本文介绍了如何使用PHP实现微信和易信公共平台的自定义菜单功能,包括获取AccessToken、创建和删除菜单的步骤。通过提供的类库文件,开发者可以简化编码工作,无需深入理解HTTP协议和JSON格式。文章附带了PHP源码下载链接,方便开发者直接使用。
摘要由CSDN通过智能技术生成

微信/易信公共平台开发(二):自定义菜单的PHP实现(提供源码)

微信把公众号分成订阅号和服务号两种,服务号可以自定义菜单, 菜单大大方便了用户操作。

比如:公众服务号 "中国南方航空" 的自定义菜单如下图:

fd285c01c191f206c508da2e525f48c1.png

点菜单就可以直接进入操作了,方便!

PS:微信服务号需要以单位身份注册(需上传单位证件等进行认证),个人身份只能注册订阅号(无自定义菜单)

PS:易信允许所有公众号均可自定义菜单(还是易信好!)

但是,对于公共平台开发者来说,定义、生成菜单还真有一点点麻烦。

我看了开发文档,测试了3个小时,才算搞明白了。在此,写点心得,并提供一个类,彻底简化开发者的编码工作。

先讲一下原理(详见公共平台开发文档):

1,注册公众号、开通开发者模式时,平台将提供两个参数 APPID,APPSECRET (对于微信的订阅号,平台不提供; 易信所有公众号均提供)

2,自定义菜单前,须向平台申请一个使用凭证(AccessToken), 方法如下:

用GET方式读取URL https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

其中:APPID,APPSECRET 用实际参数值代入

返回结果是一个JSON格式的文本,其中有AccessToken. (JSON是一种数据交换格式,不了解的同学要从头学一下才能明白)

AccessToken不是永久有效的,返回结果中有一个失效时间,即过了XX秒后(一般是一天左右), AccessToken就会失效。

对于易信平台,上述URL为

https://api.yixin.im/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

3,获得有效的AccessToken后,就可以进行自定义菜单创建、删除操作了。

3.1 创建菜单

用POST方式向这个URL提交菜单定义数据, URL:https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN

其中:ACCESS_TOKEN 用实际参数值代入

菜单定义数据是一个JSON格式的文本 (开发文档讲得不是那么清晰,让我理解了好一会),做为POST方式的提交数据

返回结果是一个JSON格式的文本,其中有操作成功码和出错信息

对于易信平台,创建菜单的URL为

https://api.yixin.im/cgi-bin/menu/create?access_token=ACCESS_TOKEN

3.2 删除菜单

用GET方式读取URL https://api.weixin.qq.com/cgi-bin/menu/delete?access_token=ACCESS_TOKEN

其中:ACCESS_TOKEN 用实际参数值代入

返回结果是一个JSON格式的文本,其中有AccessToken. (JSON是一种数据交换格式,不了解的同学要从头学一下才能明白)

AccessToken不是永久有效的,返回结果中还有一个失效时间,即过了XX秒后(一般是一天左右), AccessToken就会失效。

对于易信平台,上述URL为

https://api.yixin.im/cgi-bin/menu/delete?access_token=ACCESS_TOKEN

上述过程需要开发者非常了解 HTTP协议细节和JSON格式,对于一般开发者来说,可能是个噩梦。

经本人编码、测试,在此提供两个类,彻底简化开发者的自定义菜单的开发工作 (开发者无需再去理解HTTP协议、JSON和公共平台协议了)

结果如下:

开发语言: PHP 5.X

源码下载地址:

http://download.csdn.net/detail/c80486/6357873

文件名:jostudio.wechatmenu.php   此处只讲其使用。(感兴趣的同学,可以看源代码注释)

文件中定义了两个类:

第一个类:WeChatMenu  用于菜单操作

第二个类:MenuDefine 用于菜单数据定义

用这两个类实现的自定义菜单操作,例程文件 test_menu.php

include_once 'jostudio.wechatmenu.php'; //包含WeChatMenu类

$AppId="9cXXXXXXXXXXXXXXXXXX";     //公共平台提供的AppId参数

$AppSecret="61XXXXXXXXXXXXXX"; //公共平台提供的AppSecret参数

//创建一个WeChatMenu类的实例

$object = new WeChatMenu("weixin",$AppId, $AppSecret);   //第一个参数 "weixin", 表明是针对微信平台的

//$object = new WeChatMenu("yixin",$AppId, $AppSecret); //第一个参数 "yixin", 表明是针对易信平台的

//定义一个菜单数据

$menu = new MenuDefine();   //创建一个MenuDefine实例

$menu->menuStart();  //菜单开始

$menu->addMenu("娱乐天地");

$menu->addMenuItem("猜谜语", "riddle");

$menu->addMenuItem("讲笑话", "joke");

$menu->addMenuItem("听音乐", "music");

$menu->addMenuItem("看电影", "movie");

$menu->addMenuItem("看小说", "novel");

$menu->addMenu("实用工具");

$menu->addMenuItem(&q

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值