联系方式
定义用户可以填写的联系方式字段,以及媒介如何从中选一个,决定每个人的通知发到哪里。
这页办完你会得到:用户表单里正好提供你的媒介需要的联系方式字段——企业微信用户 ID、 内部 IM 账号、寻呼号码——通知规则里选了人或团队时,也知道该给每个人用哪个地址。
联系方式是什么
每个用户都有手机号和邮箱两个固定字段。除此之外的——机器人 token、IM 账号 ID、 你自己的集成需要的任何东西——都是联系方式:管理员维护的一份清单里的条目, 用户在个人资料的 联系方式 下按这些 key 填写自己的值。
| 条目的组成 | 说明 |
|---|---|
| 名称 | 用户在下拉框里看到的文字 |
| 标识 | 值存在哪个 key 下,也是媒介引用它的名字。只能用字母、数字、_ 和 - |
| 启用 | 关掉后,所有下拉框里都看不到它 |
在哪里维护这份清单
只有 Admin 能改,入口有三个,打开的是同一份清单:
- 用户表单里 联系方式 旁边的 联系方式管理 链接(人员组织 → 用户管理 → 新增 / 编辑);
- 自己的个人资料页上同样的链接;
- 通知媒介 变量配置 里 联系方式 旁边的齿轮图标。
这份清单也有一个独立页面,地址是 /contacts。
点 添加,填名称和标识,保持启用,保存。改动立即生效,不用重启任何进程。
新装环境一开始有什么
v9 新装环境里,这份清单是空的。 在你添加之前,用户看不到任何可填的联系方式 key。
从老版本升级上来的环境,会保留老版本建的六个内置条目:
| 标识 | 用途 |
|---|---|
dingtalk_robot_token | 钉钉群机器人 token |
wecom_robot_token | 企业微信群机器人 key |
feishu_robot_token | 飞书群机器人 token |
lark_robot_token | Lark 群机器人 token |
telegram_robot_token | Telegram 机器人 token |
mm_webhook_url | Mattermost webhook 地址 |
内置条目可以停用,不能删除,标识也不能改。它们来自「每个人的机器人 token 填在个人资料里」的年代; v9 里通常的做法是把机器人 token 填在通知规则里,见钉钉 / 飞书 / 企业微信。
媒介怎么用它
面向人发送的媒介——Callback、脚本
以及基于 HTTP 的各类媒介——在 变量配置 里有一个 联系方式 下拉框,
列出 phone、email 和所有启用的联系方式。
通知规则给这个媒介选了用户或团队时,夜莺按选中的 key 去取每个人的值:
- 没填这个 key 的人静默跳过——不报错,也不重试;
- 剩下的值,在 HTTP 模板里是
$sendto/$sendtos,在脚本的 stdin 里是sendtos。
所以「为什么这个人什么都没收到」,第一步就是来这里:打开他的个人资料, 看媒介用的那个 key 有没有填。
一个例子:按企业微信用户 ID 发送
假设有个内部服务负责发企业微信应用消息,需要每个接收人的企业微信用户 ID。
-
添加一个联系方式:名称
企业微信用户 ID,标识wecomid; -
让大家在个人资料里填上,或者管理员在用户表单里代填;
-
在一个 Callback 媒介上,联系方式 选
企业微信用户 ID,请求体里把列表发出去:{"touser": {{ jsonMarshal $sendtos }}, "text": {{ jsonMarshal $tpl.content }}} -
在通知规则里选团队作为接收方。团队里填了
wecomid的人,都会出现在同一次请求里。
修改或删除条目
- 停用:用户表单和媒介下拉框里不再出现这个 key。已经填过的值还留在各人的资料里, 已经指向这个 key 的媒介也照常用它发送。
- 改自定义条目的标识:已有的值不会跟着搬——它们还存在旧 key 下, 仍指向旧 key 的媒介也继续用旧 key。标识定了就别改。
- 删除自定义条目:只是从清单里拿掉,已存的值不会被清理。
下一步
- 每个人的资料在哪里填:用户与团队
- 在请求里用这些地址:Callback(通用 Webhook)
- 或者在你自己的程序里用:脚本媒介