Power Automate循环调用Graph API查询用户时遇表达式错误
问题解决方案
错误原因
在Power Automate的Apply to each循环里,item()函数不需要传任何参数,你写的item('Apply_to_each')不符合语法要求,这就是报错的根本原因。
修正后的请求URL
把原来的URL改成下面这样:
https://graph.microsoft.com/beta/users?$count=true&$filter=companyName eq '@{item()?['CompanyName']}' and accountEnabled eq true
几点说明:
- 用
item()直接获取循环里当前的公司对象 ?['CompanyName']是安全读取该对象的CompanyName属性,防止对象为空时触发错误- 给公司名称套上单引号,符合OData筛选器对字符串的格式要求
额外要注意的点
- 必须在请求头里设置
ConsistencyLevel: Eventual,毕竟你用了$count和$filter组合查询,这个头部是必填的 - 确认Graph API的权限配置正确,至少要有
User.Read.All权限才能查询用户列表 - 如果公司名称里有单引号这类特殊字符,得先转义,把单个单引号换成两个单引号,转义后的URL示例:
https://graph.microsoft.com/beta/users?$count=true&$filter=companyName eq '@{replace(item()?['CompanyName'], '''', '''''')}' and accountEnabled eq true
内容的提问来源于stack exchange,提问作者Ivan
相关产品推荐
相关产品推荐

