当我尝试使用Graph Explorer检索照片时,使用示例帐户效果很好。
但是当我使用自己的帐户登录时,该帐户已损坏。
当我请求时:
Out-Gridview
它返回:
$sheet = $collectOutput | Export-Excel -Path 'C:\Users\username\Desktop\testing.xlsx' -PassThru -AutoSize
$sheet.Sheet1.Column(1) | Set-ExcelRange -VerticalAlignment Center
$sheet.Sheet1.Column(2) | Set-ExcelRange -WrapText
$sheet.Sheet1.Column(3) | Set-ExcelRange -WrapText
$sheet.Sheet1.Column(4) | Set-ExcelRange -WrapText
$sheet.Save()
$sheet.Dispose()
我不知道原因,这使我感到困惑。
答案 0 :(得分:3)
呼叫/v1.0/me/contacts/{id}/photo/$value
仅返回一张已存在的照片(即,照片已添加到Outlook中的“联系人”)。如果未添加照片,它将返回HTTP 404 - Not Found
异常。
您可以通过首先调用/v1.0/me/contacts/{id}/photo/
来测试照片的存在,而不是处理异常。如果附有照片。这将返回附件照片的元数据(mediaContentType
,height
,width
)。如果结果返回空白,则说明没有可用的照片。
请记住,Outlook本身会从多个位置提取个人资料照片。例如,如果没有图像附加到联系人,并且它们属于同一组织,则Outlook将尝试从联系人的帐户中提取照片。只要您请求范围User.ReadBasic.All
,就可以复制此功能。
整个过程将是这样的:
致电/v1.0/me/contacts/{id}/photo/
如果存在图像,请调用/v1.0/me/contacts/{id}/photo/$value
来检索图像。如果没有,请继续。
使用联系人中的emailAddress
,呼叫/v1.0/users/{emailAddress}/photo
如果存在图像,请调用/v1.0/users/{emailAddress}/photo/$value
来检索图像。如果没有,则没有可用的图像。