如何在Power Apps中枚举Microsoft Graph API返回的toRecipients数组
解决方案:处理PowerApp中Graph API返回的嵌套toRecipients数组
1. 将嵌套收件人数组转为可读字符串(适合直接显示)
你之前尝试的Concat函数未成功,大概率是没正确遍历嵌套的emailAddress对象。针对单封邮件的toRecipients数组,正确的用法是逐层访问嵌套属性:
Concat( ThisItem.toRecipients, emailAddress.name & " <" & emailAddress.address & ">", "; " )
- 说明:遍历
toRecipients数组中的每一项,提取收件人的名称和邮箱地址,用;分隔拼接成字符串。如果不需要显示名称,直接使用emailAddress.address即可。 - 空值处理:如果存在无收件人的邮件,可添加判断避免空字符串:
If( IsEmpty(ThisItem.toRecipients), "无收件人", Concat(ThisItem.toRecipients, emailAddress.name & " <" & emailAddress.address & ">", "; ") )
2. 在Gallery中枚举单个收件人(嵌套控件实现)
如果需要单独展示每个收件人(比如每行一个收件人),可以在主邮件Gallery中嵌套一个子Gallery:
- 主Gallery的Items属性:你的Graph API返回结果(例如
Office365Groups.HttpRequest(...)的返回值) - 添加子Gallery到主Gallery的模板中,设置子Gallery的
Items属性为:ThisItem.toRecipients - 在子Gallery的模板里添加标签,设置Text属性为:
ThisItem.emailAddress.name & " (" & ThisItem.emailAddress.address & ")"
3. 确保Graph API请求正确返回字段
确认你的Office365Groups.HttpRequest调用的Graph API端点正确指定了toRecipients字段,示例如下:
Office365Groups.HttpRequest( "https://graph.microsoft.com/v1.0/me/messages?$select=subject,toRecipients,receivedDateTime&$top=100", "GET", "" ).value
- 这里用
$top=100可以获取最多100条邮件(Graph API默认返回100条,最大可调整至999),解决Office365.GetEmails仅能获取25条的限制。
内容的提问来源于stack exchange,提问作者Yabett
相关产品推荐
相关产品推荐

