0

使用 Microsoft 图形 API,我会收到每个 MS Teams 消息的 webhook 通知。当收到以下格式的带有文件附件的消息时:

"attachments": [
    {
        "id": "aa567f71-4702-4b43-b756-2f453ddb662a",
        "contentType": "reference",
        "contentUrl": "... the url",
        "content": null,
        "name": "my file.xlsm",
        "thumbnailUrl": null
    }
],

然后我试图调用图形 API 来检索文件信息并使用上面的 id 对其执行操作(特别是删除)(https://graph.microsoft.com/v1.0/groups/" + teamId + " /drive/items/" + id) 并得到一个错误(找不到资源)。我猜我在附件中得到的 id 不是文件项 ID。有什么办法可以使用图形 API 从附件 ID 中获取项目 ID?

4

1 回答 1

0

我们在附件响应中收到的 ID 实际上是 etag id,除了直接下载内容外,我们根本无法使用它。

可能有两种方法可以检索文件元数据信息。

  1. 搜索标签 作为您收到的资源数据的一部分,您将收到团队或用户 ID。您可以将请求 url 创建为: /groups/<team-id>/drive/root/delta?search(q='<attachment-name>')

上面的查询不可靠,根据 MS 索引它的速度可能需要 2-5 分钟。

  1. 过滤标签 我目前使用的另一种方法是使用“filesFolder”查询获取文件夹 id,然后使用过滤 odata 标签获取文件元数据。

示例:/teams/<team-id>/channels/<channel-id>/filesFolder?$select=id<-- 获取频道的文件夹 ID。

使用上面的 id,我们可以做以下事情。 /groups/<team-id>/drive/item/folder-id/children?filter=name eq 'attachment_name'

于 2020-08-17T18:40:11.123 回答