如何通过Graph API向Teams用户发送自动化通知消息?
Teams 单用户自动化通知方案指导
你的思路验证
你梳理的「安装应用→获取用户与应用的会话→发送消息」流程是可行的,但存在优化空间,同时需要解决app-id的获取问题。
核心问题解答
1. 如何获取app-id
app-id是你的Teams应用唯一标识,获取方式有两种:
- 手动上传应用包:编写Teams应用的
manifest.json配置文件(包含应用名称、描述、权限等),打包成zip后上传到租户的Teams应用目录(通过Teams管理员中心或客户端「管理应用」入口),上传后可在应用详情中找到app-id; - Graph API上传:调用
POST /appCatalogs/teamsApps接口上传应用包,接口响应会返回该应用的id,也就是你需要的app-id。
2. 是否需要委托流
不需要。你当前使用的**客户端凭证流(应用权限)**更适配后台自动化通知场景,只需确保已申请并授予以下应用权限:
ChatMessage.Send:用于发送会话消息TeamsAppInstallation.ReadWriteSelfForUser.All:用于为用户安装你的应用
3. 是否应该使用机器人
分场景判断:
- 如果仅需单向发送通知,你当前梳理的Graph API方案完全足够,无需使用机器人;
- 如果需要双向交互(接收用户回复、菜单操作等),或需利用Teams高级功能(如卡片交互、频道消息),则推荐使用Teams机器人。机器人可直接发起与用户的1:1会话,无需预先为用户安装应用,消息触达更便捷。
简化方案建议
如果不需要用户安装应用的前置操作,可通过Graph API直接创建会话再发送消息:
- 调用
POST /users/{user-id}/chats创建会话,请求体指定chatType为oneOnOne并关联你的应用; - 使用返回的
chat-id调用发送消息接口。
内容的提问来源于stack exchange,提问作者Anonymoose
相关产品推荐
相关产品推荐

