无法从 MS graph API 下载参考附件

问题描述 投票:0回答:2

我正在使用下面提到的图形 API - “client.api(

/users/${data_body.payload.originEmail}/messages/${data_body.payload.emailId}/attachments/${data_body.payload.attachmentId}/$value
).getStream()”

如果附件类型为“fileattachment”,它对我来说效果很好,但在“referenceattachment”的情况下,此 api 不起作用 我还浏览了文档,它说 “尝试获取参考附件的 $value 返回 HTTP 405。”

并且它不返回 contentBytes 在此输入图片描述

参考站点 - https://learn.microsoft.com/en-us/graph/api/attachment-get?view=graph-rest-1.0&tabs=http 1https://i.sstatic.net/fGrft.png

有谁有任何解决方案来获取参考附件的内容数据。如果是的话,那将会有很大的帮助!预先感谢


GET /drive/items/{item-ID}?select=id,@microsoft.graph.downloadUrl

回应=> 点击打开

在这里你可以看到响应中缺少downloadURL

download microsoft-graph-api email-attachments
2个回答
1
投票

图表 v1.0 端点不支持任何参考附件(除了向您显示电子邮件中存在的附件)。您需要切换到 beta 端点,它将提供相关附件的 sourceUrl,例如 https://developer.microsoft.com/en-us/graph/docs/api-reference/beta/resources/referenceattachment

例如

https://graph.microsoft.com/beta/me/mailfolders/inbox/messages/..AA=/attachments/AAM..

会给你类似的东西

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#users('..')/mailFolders('inbox')/messages('..')/attachments/$entity",
    "@odata.type": "#microsoft.graph.referenceAttachment",
    "id": "..",
    "lastModifiedDateTime": "2022-04-11T23:53:54Z",
    "name": "User1.text",
    "contentType": "application/octet-stream",
    "size": 565,
    "isInline": false,
    "sourceUrl": "https://..-my.sharepoint.com/personal/.._com/Documents/Attachments/User1.text",
    "providerType": "oneDriveBusiness",
    "thumbnailUrl": null,
    "previewUrl": null,
    "permission": "other",
    "isFolder": false
}

然后,您需要获取 sourceURL 并通过适用的 API 下载参考附件。例如,在此示例中为 Sharepoint,因此您可以使用 SharePoint API 下载文件。


0
投票

如果其他人在 v1.0 上遇到这个问题。您可以使用引用的附件的id来获取引用的消息

/users/{id}/messages/{referencedAttachmendId}

或哑剧消息

/users/{id}/messages/{referencedAttachmendId}/$value
© www.soinside.com 2019 - 2024. All rights reserved.