Power Automate中如何获取日历邀请参会者的全名?
嗨,我之前也踩过类似的坑,给你分享一套亲测有效的流程,一步步来就能搞定:
1. 先把参会者邮箱字符串拆成正确的数组
你之前的表达式语法出了点小问题,split是Power Automate的内置函数,正确写法是把要拆分的字符串放在第一个参数,分隔符放第二个参数。处理必填参会者的话,用这个表达式就对了:
split(items('Apply_to_each_Calendar_Event')?['requiredAttendees'], ';')
把这个表达式放进一个「Compose」动作里,或者直接作为「Apply to each」的输入,就能得到纯邮箱组成的数组啦。另外要注意:如果原字符串末尾带多余的分号,会生成空字符串元素,后面可以加个过滤步骤避免无效请求。
2. 遍历邮箱数组,过滤空值
添加一个「Apply to each」动作,输入就是上面拆分得到的数组。循环里先加个「Condition」判断:当前项items('Apply_to_each_Email')是否不等于空字符串''。这样能跳过无效的空项,避免调用用户资料时出错。
3. 获取用户全名
在Condition的「Yes」分支里,添加「Get User Profile V2」动作,把当前邮箱items('Apply_to_each_Email')填入「User (UPN)」字段。这个动作会返回用户的Display Name,也就是你要的全名。
4. 格式化并收集全名
先创建一个字符串类型的变量(比如叫FullNamesList),初始值设为空。然后在获取到用户资料后,用「Append to string variable」动作,把格式化后的内容加进去:
[[@{body('Get_User_Profile_V2')?['displayName']}]]
如果想要每个全名单独占一行,就再加个换行符\n,变成:
[[@{body('Get_User_Profile_V2')?['displayName']}]]\n
5. 处理可选参会者(可选)
如果还要处理optionalAttendees,完全可以复用上面的逻辑,只要把拆分表达式里的requiredAttendees换成optionalAttendees就行。
走完这套流程,你的FullNamesList变量里就会是你想要的格式:
[[First Last1]] [[First Last2]]
备注:内容来源于stack exchange,提问作者Rob

