公众号
前言
在接入公众号之前,建议先根据 快速开始 中的内容了解程序运行和配置的基础流程,本节更多介绍公众号接入特有的步骤。
准备
首先需要前往 微信公众平台 注册一个公众号,项目支持的公众号类型有两种,可根据你的需求进行选择:
类型 | 要求 | 特点 |
---|---|---|
个人号 | 个人可申请 | 在收到消息时会回复用户一条消息,回复生成后需要用户主动发消息获取 |
企业号 | 企业可申请,同时需要通过微信认证开通客服接口 | 回复生成后可主动推送给用户 |
接下来就是 下载项目代码 和 安装依赖,这两步在 快速开始 中已经说明,可根据你的运行环境选择不同的操作步骤,但需要注意的两点是:
- 公众号目前只支持 服务器 和 docker 环境部署,不支持railway 及 本地部署
- 需要额外安装扩展依赖:
pip3 install -r requirements-optional.txt
一、个人公众号
公众号部署的差别主要体现在配置文件上,打开 config.json
配置文件,除了 配置说明 中必填的配置外,还需要添加以下配置:
{
"channel_type": "wechatmp",
"single_chat_prefix": [""],
"wechatmp_app_id": "wx73f9******d1e48",
"wechatmp_app_secret": "weca******est",
"wechatmp_aes_key": "",
"wechatmp_token": "tok**est",
"wechatmp_port": 80,
}
这些配置需要和 微信公众号后台 中的保持一致,进入页面后,在左侧菜单选择 "设置与开发 - 基本配置 - 服务器配置",按下图进行配置:
配置的流程如下:
- 在公众平台启用开发者密码 (对应配置
wechatmp_app_secret
),并将服务器ip填入白名单中 - 按上图填写
config.json
中与公众号相关的配置,要与公众号后台的配置一致 - 启动程序,启动后会监听80端口 (若无权限监听,则在启动命令前加上sudo;若80端口已被占用,则关闭该占用进程)
- 在公众号后台启用服务器配置并提交,如果保存成功则表示已经成功配置。注意 "服务器地址(URL)" 这一项需要配置为
http://{HOST}/wx
的格式,其中 {HOST} 可以是服务器的ip或域名。
随后关注公众号并发送消息即可看到以下效果:
可以看到,由于受订阅号限制,回复内容较短的情况下 (15s内),可以立即完成回复,但耗时较长的回复则会先回复一句 "正在思考中",后续需要用户输入任意文字主动获取答案,而服务号则可以通过客服接口解决这一问题。
其他问题
- 语音识别:可利用微信自带的语音识别功能,提供语音输入能力。需要在公众号管理页面的 "设置与开发 -> 接口权限" 页面开启 "接收语音识别结果"
- 语音回复:利用项目中的语音生成能力,推荐使用 azure 语音接口
二、企业号
企业公众号号与上述个人订阅号的接入过程基本相同,略微差异如下:
- 在公众平台申请企业服务号并完成微信认证,在接口权限中确认已获得了 客服接口 的权限
- 在
config.json
中设置"channel_type": "wechatmp_service"
,其他配置与上述订阅号相同 - 交互效果上,即使是较长耗时的回复,也可以主动推送给用户,而无需用户手动获取