跳到主要内容

联系方式

定义用户可以填写的联系方式字段,以及媒介如何从中选一个,决定每个人的通知发到哪里。

这页办完你会得到:用户表单里正好提供你的媒介需要的联系方式字段——企业微信用户 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_tokenLark 群机器人 token
telegram_robot_tokenTelegram 机器人 token
mm_webhook_urlMattermost webhook 地址

内置条目可以停用,不能删除,标识也不能改。它们来自「每个人的机器人 token 填在个人资料里」的年代; v9 里通常的做法是把机器人 token 填在通知规则里,见钉钉 / 飞书 / 企业微信。

媒介怎么用它​

面向人发送的媒介——Callback、脚本 以及基于 HTTP 的各类媒介——在 变量配置 里有一个 联系方式 下拉框, 列出 phone、email 和所有启用的联系方式。

通知规则给这个媒介选了用户或团队时,夜莺按选中的 key 去取每个人的值:

  1. 没填这个 key 的人静默跳过——不报错,也不重试;
  2. 剩下的值,在 HTTP 模板里是 $sendto / $sendtos,在脚本的 stdin 里是 sendtos。

所以「为什么这个人什么都没收到」,第一步就是来这里:打开他的个人资料, 看媒介用的那个 key 有没有填。

一个例子:按企业微信用户 ID 发送​

假设有个内部服务负责发企业微信应用消息,需要每个接收人的企业微信用户 ID。

  1. 添加一个联系方式:名称 企业微信用户 ID,标识 wecomid;

  2. 让大家在个人资料里填上,或者管理员在用户表单里代填;

  3. 在一个 Callback 媒介上,联系方式 选 企业微信用户 ID,请求体里把列表发出去:

    {"touser": {{ jsonMarshal $sendtos }}, "text": {{ jsonMarshal $tpl.content }}}
  4. 在通知规则里选团队作为接收方。团队里填了 wecomid 的人,都会出现在同一次请求里。

修改或删除条目​

  • 停用:用户表单和媒介下拉框里不再出现这个 key。已经填过的值还留在各人的资料里, 已经指向这个 key 的媒介也照常用它发送。
  • 改自定义条目的标识:已有的值不会跟着搬——它们还存在旧 key 下, 仍指向旧 key 的媒介也继续用旧 key。标识定了就别改。
  • 删除自定义条目:只是从清单里拿掉,已存的值不会被清理。

下一步​