Skip to main content

公众号

前言

在接入公众号之前,建议先根据 快速开始 中的内容了解程序运行和配置的基础流程,本节更多介绍公众号接入特有的步骤。

准备

首先需要前往 微信公众平台 注册一个公众号,项目支持的公众号类型有两种,可根据你的需求进行选择:

类型要求特点
个人号个人可申请在收到消息时会回复用户一条消息,回复生成后需要用户主动发消息获取
企业号企业可申请,同时需要通过微信认证开通客服接口回复生成后可主动推送给用户

接下来就是 下载项目代码安装依赖,这两步在 快速开始 中已经说明,可根据你的运行环境选择不同的操作步骤,但需要注意的两点是:

  1. 公众号目前只支持 服务器 和 docker 环境部署,不支持railway 及 本地部署
  2. 需要额外安装扩展依赖: 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,
}

这些配置需要和 微信公众号后台 中的保持一致,进入页面后,在左侧菜单选择 "设置与开发 - 基本配置 - 服务器配置",按下图进行配置:


配置的流程如下:

  1. 在公众平台启用开发者密码 (对应配置 wechatmp_app_secret),并将服务器ip填入白名单中
  2. 按上图填写 config.json 中与公众号相关的配置,要与公众号后台的配置一致
  3. 启动程序,启动后会监听80端口 (若无权限监听,则在启动命令前加上sudo;若80端口已被占用,则关闭该占用进程)
  4. 在公众号后台启用服务器配置并提交,如果保存成功则表示已经成功配置。注意 "服务器地址(URL)" 这一项需要配置为 http://{HOST}/wx 的格式,其中 {HOST} 可以是服务器的ip或域名。

随后关注公众号并发送消息即可看到以下效果:


可以看到,由于受订阅号限制,回复内容较短的情况下 (15s内),可以立即完成回复,但耗时较长的回复则会先回复一句 "正在思考中",后续需要用户输入任意文字主动获取答案,而服务号则可以通过客服接口解决这一问题。

其他问题
  1. 语音识别:可利用微信自带的语音识别功能,提供语音输入能力。需要在公众号管理页面的 "设置与开发 -> 接口权限" 页面开启 "接收语音识别结果"
  2. 语音回复:利用项目中的语音生成能力,推荐使用 azure 语音接口

二、企业号

企业公众号号与上述个人订阅号的接入过程基本相同,略微差异如下:

  1. 在公众平台申请企业服务号并完成微信认证,在接口权限中确认已获得了 客服接口 的权限
  2. config.json 中设置 "channel_type": "wechatmp_service",其他配置与上述订阅号相同
  3. 交互效果上,即使是较长耗时的回复,也可以主动推送给用户,而无需用户手动获取