Skip to content

微信公众号

微信公众号消息源允许PPAgent与公众号后台进行对接,接收和发送公众号消息。

提示

公众号还支持通过微信对话开放平台来对接。

步骤

  • 创建公众号
  • 登录后台,在设置与开发-开发接口管理 中,查看账号开发信息,注意不要启用开发者密码
  • 同样的菜单下,启用服务器配置,填写服务器地址:http(s)://你的域名/api/{instanceName}/receive(实例名称为配置中的instanceName),消息加密方式选择明文模式
  • 建议在账号设置的功能设置中,将您域名加入到业务域名中
  • 确保账号设置的授权管理中,当前公众号的消息没有授权到第三方平台接管(如微信对话开放平台),否则是收不到消息的。

支持的消息类型

  • 文本消息
  • 图片消息
  • 语音消息
  • 视频消息
  • 链接消息
  • 位置消息
  • 关注/取消关注事件

使用代码配置

微信公众号消息源需要以下配置项:

typescript
const ppagent = new PPAgent({
  sources: [
    {
      name: "wcoa",
      options: {
        instanceName: "wechat-oa", // 实例名称,必须在全局唯一
        appId: "你的微信公众号AppID", // 开发者ID,必填
        appSecret: "你的微信公众号AppSecret", // 开发者密码,可以使用__变量形式(如__wechat_oa_secret)
        token: "你配置的Token", // 在公众号后台服务器配置中设置的Token,必填
        apiBase: "https://api.weixin.qq.com", // API地址,可选,默认为https://api.weixin.qq.com
      }
    }
  ],
  bots: [...],
  agents: [...]
})

服务器运行请参考 install_code.md 文件。

流式回复支持

微信公众号不支持流式回复,但支持使用typing状态提示用户正在输入。当用户发送消息后,微信公众号消息源会自动设置输入状态,让用户知道机器人正在处理消息。

配置注意事项

  1. 必须在微信公众平台的"设置与开发 -> 开发接口管理 -> 服务器配置"中设置服务器地址,URL应为http(s)://你的域名/api/{instanceName}/receive(实例名称为配置中的instanceName)

  2. 当前仅支持明文模式,需要在微信公众平台后台设置消息加解密方式为"明文模式"。

  3. 必须配置appId、appSecret和token才能正常使用微信公众号消息源。

  4. 如果需要保护appSecret,可以使用__变量形式(如__wechat_oa_secret),然后在服务端的.secret.json中配置对应的变量。

  5. 微信公众号一次回复允许的条数有限,可以在Agent的配置中对拆分的条数进行限制。