如何在PowerApp中通过Power Automate获取用户所属群组列表?
解决方案:PowerApp触发Flow获取当前用户所属群组
一、Power Automate流程搭建
- 新建云流,触发方式选择「PowerApps」触发器
- 添加「Get my profile (V2)」操作:自动获取触发流程的当前用户信息,无需额外配置
- 添加「List memberOf (Microsoft Graph)」操作:
- 用户标识符选择「Me」,直接获取当前用户的所属组/角色
- 可选:在
$filter参数中输入@odata.type eq '#microsoft.graph.group',过滤掉角色类对象,仅返回群组数据
- 添加「Respond to PowerApp or flow」操作:
- 新建输出参数
GroupList,类型选「数组」 - 切换到输入数组模式,填入「List memberOf」返回的
value字段;若只需精简数据,可使用表达式提取关键信息:select(body('List_memberOf')?['value'], {'GroupName': item()?['displayName'], 'GroupID': item()?['id']})
- 新建输出参数
- 保存流程,记录好流程名称
二、PowerApp端配置
- 进入PowerApp的「数据」选项卡,添加刚才创建的Power Automate流程作为数据源
- 插入按钮控件,设置
OnSelect属性:
(Set(colUserGroups, 你的流程名称.Run().GroupList)colUserGroups为集合变量,用于存储返回的群组数据) - 插入Gallery控件,设置
Items属性为colUserGroups - 在Gallery内添加标签控件,设置
Text属性为ThisItem.GroupName,用于显示群组名称;也可添加其他标签展示ThisItem.GroupID
注意事项
- 权限配置:Power Automate的Microsoft Graph连接器需授予Directory.Read.All权限,需在连接器设置中完成授权
- 进阶替代方案:若偏好HTTP请求,可添加「Send an HTTP request to Microsoft Graph」操作,请求方法为
GET,URL为https://graph.microsoft.com/v1.0/me/memberOf?$filter=@odata.type eq '#microsoft.graph.group',后续数据处理逻辑与上述一致
内容的提问来源于stack exchange,提问作者Yarensky
相关产品推荐
相关产品推荐

