Microsoft Graph创建含multiValueExtendedProperties的隐藏邮件文件夹后无法获取属性
问题原因与解决办法
核心问题:Get请求未显式指定获取扩展属性
Microsoft Graph默认不会返回扩展属性——哪怕创建文件夹时已成功添加该属性,必须在Get请求中明确声明要获取这类属性,否则接口不会返回相关数据。
解决步骤
PowerShell中创建带扩展属性的隐藏文件夹
先确保创建逻辑正确,以下是可直接使用的PowerShell代码(需先通过Connect-MgGraph完成身份验证):$graphApiUri = "https://graph.microsoft.com/v1.0/me/mailFolders" $requestBody = @{ displayName = "Test" isHidden = $true multiValueExtendedProperties = @( @{ id = "StringArray {66f5a359-4659-4830-9070-00050ec6ac6e} Name Recreation" value = @("Food","Hiking","Swimming") } ) } | ConvertTo-Json -Depth 3 $createdFolder = Invoke-MgGraphRequest -Method Post -Uri $graphApiUri -Body $requestBody -ContentType "application/json"正确获取包含扩展属性的文件夹数据
执行Get请求时,必须通过$expand或$select参数指定返回扩展属性,两种实现方式如下:# 方式1:用$expand直接展开扩展属性 $folderWithExtProps = Invoke-MgGraphRequest -Method Get -Uri "$graphApiUri/$($createdFolder.id)?`$expand=multiValueExtendedProperties" # 方式2:用$select指定要返回的字段(包含扩展属性) $folderWithExtProps = Invoke-MgGraphRequest -Method Get -Uri "$graphApiUri/$($createdFolder.id)?`$select=displayName,isHidden,multiValueExtendedProperties"
额外验证要点
- 检查创建请求的返回响应:如果响应中完全没有
multiValueExtendedProperties字段,可能是扩展属性的ID格式有误,需确认GUID、属性类型和名称的拼写是否符合规范。 - 确认权限:当前账号或应用必须拥有
Mail.ReadWrite权限,这是读写邮件文件夹及扩展属性的必要前提。
内容的提问来源于stack exchange,提问作者Manfred P.
相关产品推荐
相关产品推荐

