本文主要介绍微信服务号自定义菜单添加扫码功能的详细步骤。
本来百度了一个多小时,愣是没找个一个好用的方法,能够在自定义菜单里添加扫码功能。
这些文章要么就是写的太复杂,要把页面跳转到某https网页,然后调用微信的jssdk来启动扫码功能,要么就是直接照搬官网文档,让人看得一头雾水。
后来就只能到微信公众号的开发平台自己看文档,发现自定义菜单是有接口可以调用的。下面分成几步详细介绍方法。
有一个微信服务号(认证或者未认证)
这是一句废话。😄
获取服务号的AppID和AppSecret
微信服务号刚创建的时候都会有一个AppID,但是AppSecret是默认没有的,这时候要去微信公众平台的后台控制面板,找到左边导航栏最下面的,开发->基本配置:
然后在右边的具体内容界面就会有AppID,但是AppSecret是要自己去开启的:
我这边已经开启了,没有没关系,花几分钟验证一下,开启这个功能就可以了。
获取access_token
这个名字,学过网络应用开发的应该都很熟徐,类似于cookie的一种保持全局连接的技术。
来到微信公众平台的文档界面,选择公众号->开始开发->获取Access_token,微信公众平台的开发文档是这样介绍的:
这时候我们把右边的界面滚到最下面:
然后点击上面红色箭头所示的“使用网络调试工具调试该接口”,来到调试工具界面:
然后在下面的相应位置,输入我们刚才获得的appid和AppSecret。
如果两个都输入正确的话,应该会返回一个json字符串,列出我们获得的Access_token,和超时时间(一般是7200秒):
{"access_token":"ACCESS_TOKEN","expires_in":7200}
调用自定义菜单接口,设置自定义菜单
转回到刚才的微信公众平台,选择自定义菜单->创建接口:
在这个界面,我们能看到有很多的创建自定义菜单的例子:
{
"button": [
{
"name": "扫码",
"sub_button": [
{
"type": "scancode_waitmsg",
"name": "扫码带提示",
"key": "rselfmenu_0_0",
"sub_button": [ ]
},
{
"type": "scancode_push",
"name": "扫码推事件",
"key": "rselfmenu_0_1",
"sub_button": [ ]
}
]
},
{
"name": "发图",
"sub_button": [
{
"type": "pic_sysphoto",
"name": "系统拍照发图",
"key": "rselfmenu_1_0",
"sub_button": [ ]
},
{
"type": "pic_photo_or_album",
"name": "拍照或者相册发图",
"key": "rselfmenu_1_1",
"sub_button": [ ]
},
{
"type": "pic_weixin",
"name": "微信相册发图",
"key": "rselfmenu_1_2",
"sub_button": [ ]
}
]
},
{
"name": "发送位置",
"type": "location_select",
"key": "rselfmenu_2_0"
},
{
"type": "media_id",
"name": "图片",
"media_id": "MEDIA_ID1"
},
{
"type": "view_limited",
"name": "图文消息",
"media_id": "MEDIA_ID2"
}
]
}
上面是官方的示例程序,可以看到这也是一个json字符串,需要以requestBody的形式发送到微信的创建菜单接口,同时要给出刚才上一步获取的Access_token:
跟刚才一样,我们滚到最下面,点击“使用网络调试工具调试该接口”:
输入刚才我们获取的Access_token,然后在最下面的输入框输入我们想要的自定义菜单,我们把上面的官方例子裁剪一下就可以了:
{
"button": [
{
"name": "扫码",
"sub_button": [
{
"type": "scancode_push",
"name": "扫码推事件",
"key": "rselfmenu_0_1",
"sub_button": [ ]
}
]
}
]
}
然后点最下面的按钮,如果access_token没过期,应该都会成功返回:
{"errcode":0,"errmsg":"ok"}
然后开发微信公众号,就可以看到自己的自定义菜单扫码功能已经设置好了😁😁😁