网易首页 > 网易号 > 正文 申请入驻

「白熊原创」PHP开发微信公众号(自定义菜单和高级接口)

0
分享至

自定义菜单和高级接口

自定义菜单和高级接口都需要使用AppID和AppSecret来创建,对于暂时没有这些权限的微信公众账号,开发者可以申请测试账号来体验、测试微信公众平台的所有高级接口功能。

access Tokenaccess Token概述

在微信公众平台接口开发中,access_token相当于进入各种接口的钥匙,拿到这个钥匙才有调用其他各种特殊接口的权限。

access_token是微信公众账号的全局唯一凭证,微信公众账号调用各接口时需要使用access_token。正常情况下,access_token有效期为7200秒,重复获取将导致上次获取的access_token失效。

可以使用AppID和AppSecret调用接口来获取access_token,AppID和AppSecret可以在开发模式中获得,注意调用所有微信接口时均需要使用HTTPS协议。

接口调用请求说明

获取access_token的接口地址如下:

access_token接口的参数说明见下表:

正常情况下,微信会返回下述JSON数据包给公众号:

{"access_token":"ACCESS_TOKEN","expires_in":7200}

返回结果的参数说明见下表:

错误时微信会返回错误码等信息,JSON数据包示例如下(该示例为AppID无效错误):

{"errcode":40013,"errmsg":"invalid appid"}

实现代码自定义菜单

自定义菜单能够帮助微信公众账号丰富界面,增强用户与微信公众账号互动。

自定义菜单介绍

自定义菜单最多包括3个一级菜单,每个一级菜单最多包含5个二级菜单。

一级菜单最多4个汉字,二级菜单最多7个汉字,多出来的部分将会以"..."代替。

创建自定义菜单后,菜单的刷新策略是,在用户进入公众号会话页,如果发现上一次拉取菜单的请求在5分钟以前,就会拉取一下菜单,如果菜单有更新,就会刷新客户端的菜单。测试时可以尝试取消关注公众账号后再次关注,则可以看到创建后的效果。

按钮类型

自定义菜单接口可实现多种类型按钮,如下:

Click——单击事件推

用户点击click类型按钮后,微信服务器会通过消息接口推送消息类型为event的结构给开发者(参考消息接口指南),并且带上按钮中开发者填写的key值,开发者可以通过自定义的key值与用户进行交互;

View——跳转URL

跳转URL用户点击view类型按钮后,微信客户端将会打开开发者在按钮中填写的网页URL,可与网页授权获取用户基本信息接口结合,获得用户基本信息。

scancode_push——扫码推事件

用户点击按钮后,微信客户端将调用"扫一扫"工具,完成扫码操作后显示扫描结果(如果是URL,将进入URL),且会将扫码的结果传给开发者,开发者可以下发消息。

scancode_waitmsg——扫码推事件且弹出"消息接收中"提示框

用户点击按钮后,微信客户端将调起扫一扫工具,完成扫码操作后,将扫码的结果传给开发者,同时收起

用户点击按钮后,微信客户端将调起扫一扫工具,完成扫码操作后,将扫码的结果传给开发者,同时收起扫一扫工具,然后弹出"消息接收中"提示框,随后可能会收到开发者下发的消息。

pic_sysphoto——弹出系统拍照发图

用户点击按钮后,微信客户端将调起系统相机,完成拍照操作后,会将拍摄的相片发送给开发者,并推送事件给开发者,同时收起系统相机,随后可能会收到开发者下发的消息。

pic_photo_or_album——弹出拍照或者相册发图

用户点击按钮后,微信客户端将弹出选择器供用户选择"拍照"或者"从手机相册选择"。用户选择后即走其他两种流程。

pic_weixin——弹出微信相册发图器

用户点击按钮后,微信客户端将调起微信相册,完成选择操作后,将选择的相片发送给开发者的服务器,并推送事件给开发者,同时收起相册,随后可能会收到开发者下发的消息。

location_select——弹出地理位置选择器

用户点击按钮后,微信客户端将调起地理位置选择工具,完成选择操作后,将选择的地理位置发送给开发者的服务器,同时收起位置选择工具,随后可能会收到开发者下发的消息。

media_id——下发消息(除文本消息)

用户点击media_id类型按钮后,微信服务器会将开发者填写的永久素材id对应的素材下发给用户,永久素材类型可以是图片、音频、视频、图文消息。请注意:永久素材id必须是在"素材管理/新增永久素材"接口上传后获得的合法id。

view_limited——跳转图文消息URL

用户点击view_limited类型按钮后,微信客户端将打开开发者在按钮中填写的永久素材id对应的图文消息URL,永久素材类型只支持图文消息。请注意:永久素材id必须是在"素材管理/新增永久素材"接口上传后获得的合法id。

请注意,3到8的所有事件,仅支持微信iPhone5.4.1以上版本,和Android5.4以上版本的微信用户,旧版本微信用户点击后将没有回应,开发者也不能正常接收到事件推送。9和10,是专门给第三方平台旗下未微信认证(具体而言,是资质认证未通过)的订阅号准备的事件类型,它们是没有事件推送的,能力相对受限,其他类型的公众号不必使用。

创建菜单

创建菜单接口调用请求说明

http请求方式:POST(使用https协议)

创建菜单时,需要将菜单内容组织成如下结构,以POST方式向微信服务器提交。

自定义菜单内容的参数说明见下表:

给微信公众号创建自定义菜单的代码实现如下所示:

正确时返回JSON数据包如下:

{"errorcode":0,"errormsg":"ok"}

错误时返回JSON数据包如下(示例为无效菜单名长度):

{"errorcode":40018,"errormsg":"invalid button name size"}

查询菜单

使用接口创建自定义菜单后,开发者还可使用接口查询自定义菜单的结构。另外请注意,在设置了个性化菜单后,使用本自定义菜单查询接口可以获取默认菜单和全部个性化菜单信息。

查询菜单接口调用请求说明

http请求方式:GET(使用https协议)

查询自定义菜单代码实现如下所示:

正确时返回JSON数据包如下:

删除菜单

使用接口创建自定义菜单后,开发者还可使用接口删除当前使用的自定义菜单。另请注意,在个性化菜单时,调用此接口会删除默认菜单及全部个性化菜单。

删除菜单的接口调用请求说明:

http请求方式:GET(使用https协议)

菜单事件推送

用户点击自定义菜单后,微信会把点击事件推送给开发者,请注意,点击菜单弹出子菜单,不会产生上报。如果菜单类型为click,则微信公众平台会把此次单击事件推送给接口程序;按钮类型为view的菜单单击后不会上报,而是直接跳转到对应的URL。

单击click类型的菜单时,接口程序收到的XML数据包如下所示

toUser

FromUser

event

CLICK

EVENTKEY

自定义菜单推送参数说明(click类型)

单击view类型的菜单时,接口程序收到的XML数据包如下所示

toUser

FromUser

event

VIEW

www.qq.com

MENUID

自定义菜单推送参数说明(view类型)

单击scancode_push类型的菜单时,接口程序接收到的XML数据包如下所示

gh_e136c6e50636

oMgHVjngRipVsoxg6TuX3vz6glDg

event

scancode_push

6

qrcode

1

微信会返回该XML给接口程序,但用户收不到这个消息,而是直接运行解码后的内容,比如直接进入关注界面。

自定义菜单推送参数说明(scancode_push类型)

单击scancode_waitmsg类型的菜单时,接口程序接收到的XML数据包如下所示

gh_e136c6e50636

oMgHVjngRipVsoxg6TuX3vz6glDg

event

scancode_waitmsg

6

qrcode

2

自定义菜单推送参数说明(scancode_waitmsg类型):

单击pic_sysphoto类型的菜单时,接口程序接收到的XML数据包如下所示

gh_e136c6e50636

oMgHVjngRipVsoxg6TuX3vz6glDg

event

pic_sysphoto

6

1

1b5f7c23b5bf75682a53e7b6d163e185

单击pic_sysphoto类型的菜单后没有XML数据推送过来,它调用的是手机里面的照相机功能,而拍照以后再发过来时就收到一个图片消息。

自定义菜单推送参数说明(pic_sysphoto类型)

单击pic_photo_or_album类型的菜单时,接口程序接收到的XML数据包格式如下所示

gh_e136c6e50636

oMgHVjngRipVsoxg6TuX3vz6glDg

event

pic_photo_or_album

6

1

5a75aaca956d97be686719218f275c6b

toUser

fromUser

image

this is a url

media_id

单击pic_photo_or_album类型的菜单之后,和pic_weixin一样,先推送菜单事件,再推送图片消息。

自定义菜单推送参数说明(pic_photo_or_album类型)

单击pic_weixin类型的菜单时,接口程序接收到的XML数据包格式如下所示

单击pic_weixin类型的菜单时,微信客户端将调用微信相册,用户可以选择已有照片,微信会将照片发送给开发者。下面是一次选择3张照片时的XML数据。

gh_e136c6e50636

oMgHVjngRipVsoxg6TuX3vz6glDg

event

pic_weixin

6

3

5a75aaca956d97be686719218f275c6b

5a75aaca956d97be686719218f275c6b

5a75aaca956d97be686719218f275c6b

上述XML数据下发后,微信会推送3个图片消息给接口:

toUser

fromUser

image

this is a url

media_id

toUser

fromUser

image

this is a url

media_id

toUser

fromUser

image

this is a url

media_id

对于上述每个图片的消息,后台收到都能进行单独回应,用户可以收到响应消息。

自定义菜单推送参数说明(pic_weixin类型)

单击location_select类型的菜单时,接口程序接收到的XML数据包格式如下所示

单击location_select类型的菜单之后,将会调用发送位置功能,在用户发送位置之后,会再推送一个地理位置消息功能给用户,两个消息的XML数据分别如下所示:

gh_e136c6e50636

oMgHVjngRipVsoxg6TuX3vz6glDg

event

location_select

6

23

113

15

广州市海珠区客村艺苑路 106号

toUser

fromUser

location

20

广州市海珠区客村艺苑路 106号 7 days inn 便利店

自定义菜单推送参数说明(location_select类型)

消息接口中,响应自定义菜单单击事件的核心代码如下所示:

语音识别接收识别结果处理识别消息客服接口客服接口实现消息接口与客服接口相结合客服接口的意义OAuth2.0网页授权Oauth2.0授权过程详细步骤效果展示生成带参数的二维码场景二维码创建二维码ticket通过ticket换取二维码下载二维码扫描带参数二维码事件获取用户地理位置获取用户地理位置的方式转换坐标到地址用户地理位置的意义获取用户基本信息获取用户基本信息的方式制作个性欢迎语获取关注者列表获取关注者列表的方式分批获取用户分组管理创建分组查询所有分组查询用户所在组修改分组名移动用户分组上传/下载多媒体文件上传多媒体文件下载多媒体文件高级群发接口准备群发内容选择群发对象执行群发接收群发结果模板消息添加模板模板消息开发附录 错误提示Q1:查询菜单时提示accessToken故障

使用自定义菜单查询接口查询菜单时,返回如下错误提示:

解决方法:

经排查、分析,原因是accessToken获取的不正确,修改代码,accessToken获取正确后,再次查询,返回如下信息:

菜单显示不完整

使用自定义菜单查询接口查询菜单,总共有三个一级菜单,但查询后返回的却只用两个一级菜单,在手机微信端也只能看到两个一级菜单

下面是微信上的截图,可以看到只显示了两个菜单项。

解决方法:

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
歪打正着?伊朗发射导弹,无一命中,导弹残骸却意外击中以军基地

歪打正着?伊朗发射导弹,无一命中,导弹残骸却意外击中以军基地

聚焦瞬间
2026-06-13 04:35:37
全部作废!赶人16年的张桂梅终于变了,人民日报都来点赞

全部作废!赶人16年的张桂梅终于变了,人民日报都来点赞

北纬的咖啡豆
2026-06-12 09:40:45
嫁给林丹十几年,如今拖家带口定居西班牙,10岁儿子要走网球路

嫁给林丹十几年,如今拖家带口定居西班牙,10岁儿子要走网球路

泠泠说史
2026-06-12 22:03:03
辅酶Q10被禁用了?医生再次警告:服用者千万要注意这3个细节

辅酶Q10被禁用了?医生再次警告:服用者千万要注意这3个细节

路医生健康科普
2026-06-10 16:26:36
女婿和岳母独自在家,半夜误进岳母房间,却看到她不为人知的秘密

女婿和岳母独自在家,半夜误进岳母房间,却看到她不为人知的秘密

林林故事揭秘
2025-04-02 16:35:44
董洁阴间造型炸上热搜!网友:赔她点钱吧

董洁阴间造型炸上热搜!网友:赔她点钱吧

李东阳朋友圈
2026-06-09 21:48:18
31岁奥运冠军官宣领证结婚!妻子是舞蹈演员 全网祝福:郎才女貌

31岁奥运冠军官宣领证结婚!妻子是舞蹈演员 全网祝福:郎才女貌

念洲
2026-06-12 10:59:16
马斯克正式成为人类首个10000亿美元富豪,还带动约400名员工成为亿万富翁

马斯克正式成为人类首个10000亿美元富豪,还带动约400名员工成为亿万富翁

封面新闻
2026-06-13 01:14:03
男单八强定4席:国乒锁定2席!陈垣宇涨球了,期待与温瑞博会师

男单八强定4席:国乒锁定2席!陈垣宇涨球了,期待与温瑞博会师

烧体坛
2026-06-12 19:20:02
安徽医科大学学术副校长增至4人:山东大学齐鲁医学院张澄到任

安徽医科大学学术副校长增至4人:山东大学齐鲁医学院张澄到任

澎湃新闻
2026-06-11 11:54:31
世界女排十大强力接应下赛季尘埃落定!欧美垄断,中国女排太无奈

世界女排十大强力接应下赛季尘埃落定!欧美垄断,中国女排太无奈

金毛爱女排
2026-06-13 00:00:07
央媒锐评,戳穿刀郎在乐坛的“真实地位”,估计和你想的不一样

央媒锐评,戳穿刀郎在乐坛的“真实地位”,估计和你想的不一样

枯蝶
2026-06-13 02:34:25
夜夜求欢!50岁妻子苦不堪言: 本分妻设局灌醉保姆助丈夫性侵

夜夜求欢!50岁妻子苦不堪言: 本分妻设局灌醉保姆助丈夫性侵

深夜探案馆
2026-06-11 01:48:36
经纪人富保罗:10-12支队想签詹姆斯 快42岁还被各队争抢令人敬佩

经纪人富保罗:10-12支队想签詹姆斯 快42岁还被各队争抢令人敬佩

罗说NBA
2026-06-13 04:45:04
光刻机巨头意识到,中国造不成光刻机,但是要造一个光刻工厂!

光刻机巨头意识到,中国造不成光刻机,但是要造一个光刻工厂!

科技故事聚焦
2026-06-12 12:17:14
演员陈敏儿去世

演员陈敏儿去世

扬子晚报
2026-06-12 18:49:13
高考刚结束,央视、人民日报接连“点名”张桂梅,句句直戳心窝

高考刚结束,央视、人民日报接连“点名”张桂梅,句句直戳心窝

各生欢喜者
2026-06-13 03:28:10
雷霆计划开发哈滕底角三分

雷霆计划开发哈滕底角三分

体坛周报
2026-06-13 06:00:20
WTT萨格勒布赛:国乒新增外战5胜1负!已无缘1冠,约战张本美和

WTT萨格勒布赛:国乒新增外战5胜1负!已无缘1冠,约战张本美和

全言作品
2026-06-12 20:49:37
养路费改革:油价降0.8元/升,新能源车0.12元/公里,谁受益?

养路费改革:油价降0.8元/升,新能源车0.12元/公里,谁受益?

娱乐圈的笔娱君
2026-06-12 08:51:16
2026-06-13 06:24:49
尧宝欢乐多呀
尧宝欢乐多呀
同学们好我叫张思尧?16年的小猴子? 在这里记录分享我的欢乐??生活,
107文章数 211关注度
往期回顾 全部

科技要闻

刚刚,人类历史上首位万亿美元富豪诞生!

头条要闻

SpaceX上市首日收涨19% 总市值报2.1万亿美元

头条要闻

SpaceX上市首日收涨19% 总市值报2.1万亿美元

体育要闻

欧洲恐韩?肉德维德?

娱乐要闻

一天4个瓜,肖战热巴最意外

财经要闻

万亿美元顺差背后,透露这些信号

汽车要闻

标配激光雷达/双动力可选 昊铂S600限时售17.99万起

态度原创

时尚
数码
亲子
艺术
公开课

夏天别总穿一身白或一身黑!试试一半彩色、一半基础色,高级亮眼

数码要闻

英国监管机构警告:亚马逊、eBay仍在售可能致命的假冒手机充电器

亲子要闻

给孩子报个幼儿园还要工资流水?难道这就是传说中的“因财施教”

艺术要闻

砸了640亿,再赔160亿!沙特“The Line”项目彻底凉了?

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版