Microsoft Teams频道webhook URL格式验证:是否有统一规范或官方文档?
Teams 传入Webhook URL格式校验参考
已确认的两类合法格式
目前微软Teams的传入Webhook确实存在两代公开可用的格式,覆盖所有商用、教育版M365租户:
- 旧版全局域名格式:
https://outlook.office.com/webhook/{第一组GUID}/IncomingWebhook/{第二组GUID}/{第三组GUID}
这类格式是早期Teams Webhook的通用格式,没有租户级域名区分,目前所有存量Webhook仍可正常使用 - 新版租户级域名格式:
https://{租户标识}.webhook.office.com/webhookb2/{第一组GUID}/IncomingWebhook/{第二组GUID}/{第三组GUID}
这类是近年微软推送的新格式,租户标识通常为租户名称拼音/英文、随机字符串组合,不同租户没有统一规则
前端基础校验规则建议
只需要做以下几层校验,即可过滤99%以上的无效输入:
- 协议校验:必须为
https,过滤http、自定义协议等非法输入 - 域名校验:仅允许两种域名规则:
- 完全匹配
outlook.office.com - 后缀匹配
.webhook.office.com
- 完全匹配
- 路径校验:
- 域名匹配
outlook.office.com时,路径必须以/webhook/开头,后续结构固定为{GUID}/IncomingWebhook/{GUID}/{GUID},其中IncomingWebhook为固定大小写字符串,GUID仅需符合8-4-4-4-12结构的十六进制字符规则即可 - 域名匹配
.webhook.office.com时,路径必须以/webhookb2/开头,后续结构和旧版完全一致
- 域名匹配
补充说明
- 前端仅做格式校验即可,无需判断GUID的有效性:GUID是否对应真实存在的Webhook,仅能通过向对应地址发送POST请求,根据返回的状态码判断,返回200即为有效地址
- 部分特殊主权云租户(如世纪互联运营的中国区M365、美国政府版M365)的Webhook域名会有差异,如果你的应用需要覆盖主权云租户,可额外对应增加域名规则,比如中国区旧版域名为
outlook.office.cn,新版域名为{租户标识}.webhook.office.cn
内容的提问来源于stack exchange,提问作者thankyoussd
相关产品推荐
相关产品推荐

