企微应用/客服
企业微信应用的消息源。支持应用单聊,客服聊天以及应用和机器人的单向群推送(应用推送仅支持通过应用接口创建的群,没有机器人方便,且机器人支持Markdown,但是机器人不支持发送视频)。
步骤
- 创建一个企业,确保有外网地址。(如果自用,不建议认证,否则后续域名必须备案且为自有域名才能使用,比如用第三方的穿透则不行)
- 登录企微后台,选择我的企业,拉倒最下,看到corpId并记录下来
- 在应用管理中创建自建应用(获取AgentId和Secret),设置应用的可见范围
- 在接收消息中,开启API接收,可以获取到Token和EncodingAESKey,URL地址为 http(s)://你的域名/api/{instanceName}/receive 。接收的类型有普通消息、自定义菜单、##微信客服消息##(如果要支持客服消息,这个必须打开)
- 开发者接口-网页授权及JS-SDK中,添加
可作为应用OAuth2.0网页授权功能的回调域名
的域名为你的域名 - 企业可信IP中,添加你服务器的IP
- 如果要启用客服支持。则还需要以下步骤:
- 在应用管理菜单下,选择微信客服,并开启
- 设置可见范围
- 创建客服账号,具体信息可以随意填,因为后续会通过应用接管
- 拉到最下方的
通过API管理会话消息
,点开企业内部开发
,选择之前创建的应用来管理这个客服账号
- 根据拿到的各个信息,按本文后续的代码创建实例(或者在可视化平台填入)
支持的消息类型
- 文本消息(TEXT)
- 图片消息(IMAGE)
- 语音消息(AUDIO)
- 视频消息(VIDEO)
- 文件消息(FILE)
- 图文消息(ARTICLE)
- 音乐消息(MUSIC)
- 位置消息(POSITION)
- 小程序消息(MP)- 仅客服模式支持
- 自定义消息(CUSTOM)- 支持 "ca_link" 类型
使用代码配置
typescript
const ppagent = new PPAgent({
// ... 其他配置
sources: [
{
type: "wework-app",
name: "企业微信应用", // 可自定义名称
corpId: "ww123456789", // 企业ID,在企微后台-我的企业最下方查看
agentId: "1000001", // 应用的Agent ID,在企微后台-应用管理-自建应用页面详情查看
secret: "xxxxxxxxxxxx", // 应用的Secret,在企微后台-应用管理-自建应用页面详情查看
token: "xxxxxxxxxxxx", // API接口消息的Token,在企微后台-应用管理-自建-应用详情页-功能-消息接收-启用API接口中配置查看
aesKey: "xxxxxxxxxxxx", // API接收消息的AES Key,在企微后台-应用管理-自建-应用详情页-功能-消息接收-启用API接口中配置查看
// 以下为可选配置
apiHost: "https://qyapi.weixin.qq.com", // API地址,默认为https://qyapi.weixin.qq.com
welcomeInKfMode: false, // 客服模式下,用户第一次进入时是否发送欢迎语,默认为false
welcomePrompt: "__欢迎{nickName},有任何问题都可以跟我咨询", // 欢迎词的提示语,可以使用{nickName}对用户的昵称进行占位,如果以__开头,表示直接发送该欢迎词
// 通过应用自动创建群组。自动创建的群组可以由应用主动推送消息,否则只能被动回复用户的消息或者使用webhook进行推送。
appChatGroups: [
{
userlist: ["zhangsan", "lisi"], // 群成员列表,第一个人是群主
chatid: "group_chat_1", // 群聊ID
name: "测试群聊", // 群名称
},
],
},
],
// ... 其他配置
});
服务器运行请参考 install_code.md 文件。
作为应用接入
默认即应用接入,支持单聊和群聊自动回复(被@)。
流式回复支持
企业微信应用支持流式回复,可以通过Markdown消息进行格式化展示。
webhook机器人
WARNING
默认情况使用的是应用机器人。由于webhook机器人无法接受消息,所以只能通过代码调用发送消息的接口实现发送。 ##企业微信支持通过webhook机器人发送消息到群聊。webhook机器人支持更丰富的消息格式,特别是支持Markdown格式的消息,可以实现更好的展示效果。 要使用webhook机器人,需要在企业微信群聊中添加机器人,获取webhook地址,然后配置到toInfo[0].userId
中作为机器人的ID。##
作为客服接入
- 后台创建应用
- 设置应用可以通过API访问(允许的JS回调需先配置)
- 设置可信IP
- 设置API接收,勾选接收客服消息
- 企业微信客服中创建一个客服,指定一个接待人员,最下方打开通过API管理会话消息的企业内部开发,选中之前创建的应用。
注意事项
只有应用创建的群聊才能够主动推送群消息,因此需要先创建群聊。往群里推消息建议使用webhook机器人,而不是应用机器人,webhook支持Markdown消息。
当启动后第一次收到客服消息时,仅会处理最新的一条客服消息。后续有新的消息进来时,将会处理最后一次到当前消息之间所有的消息。
群消息一次只发送一个群。只有机器人消息支持@。
如果希望一次性发给一群人,可以使用应用单聊同时发送多个对象,支持发群到部门ID或者标签ID,而不需要通过群。
未认证的企业,可以配置第三方域名,已经认证的企业则必须配置自己的已备案的的域名。