You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Power Automate收集MS 365用户Teams私人聊天中的Praise?

针对MS 365所有用户私人聊天的Power Automate触发方案及相关细节

一、是否存在原生触发器?

目前Power Automate没有直接针对所有用户私人聊天的原生触发器,但可以通过Microsoft Graph API结合自定义触发器实现需求。

二、核心实现方案

通过Graph API的聊天消息订阅功能,订阅全用户的私人聊天消息事件,再用Power Automate的HTTP触发器接收事件通知,后续处理消息内容。

三、同类脚本参考

1. 创建Graph订阅(可在Power Automate的HTTP动作中执行)

POST https://graph.microsoft.com/v1.0/subscriptions
Content-Type: application/json

{
  "changeType": "created",
  "notificationUrl": "https://prod-xx.westus.logic.azure.com:443/workflows/xxxx/triggers/manual/paths/invoke?api-version=2016-06-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=xxxx",
  "resource": "/chats/getAllMessages",
  "expirationDateTime": "2024-12-31T00:00:00Z",
  "clientState": "YourSecretClientState"
}

说明:使用/chats/getAllMessages需要应用权限,能覆盖所有用户的私人聊天;如果用/users/{userId}/chats/getAllMessages则需要遍历所有用户ID批量创建订阅。

2. Power Automate流核心步骤

  • 触发器:HTTP触发器(接收Graph推送的事件通知)
  • 解析JSON:解析Graph返回的通知内容,提取聊天ID和消息ID
  • 调用Graph API:获取完整消息内容
    GET https://graph.microsoft.com/v1.0/chats/{chatId}/messages/{messageId}
    
  • 内容判断:检查消息是否包含你定义的Praise关键词/格式
  • 写入SharePoint:将符合条件的消息信息(发送人、接收人、内容、时间等)存入目标列表

四、所需权限与关联账号

  • 权限类型:必须使用应用权限(委派权限仅能访问当前登录用户的聊天,无法覆盖全用户)
  • 具体权限:
    • Chat.Read.All:读取所有聊天消息内容
    • ChatMessage.Read.All:订阅所有聊天消息事件
  • 关联账号要求:需要一个拥有全局管理员或Teams服务管理员角色的账号,用于在Azure AD中注册应用并授予上述权限,之后在Power Automate中使用该应用的客户端ID、密钥、租户ID来调用Graph API。

五、关键注意事项

  • 隐私合规:访问全用户私人聊天属于敏感数据操作,必须符合组织隐私政策及当地法规(如GDPR),需提前完成合规审批。
  • 订阅续订:Graph订阅最长有效期为3天,需在流中添加定期续订逻辑,避免触发失效。
  • 性能优化:用户量较大时,建议用Azure函数中转事件,避免Power Automate直接处理大量请求导致性能问题。

内容的提问来源于stack exchange,提问作者AniLuc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 04:07:32