使用 Microsoft Graph 访问、存储和检索 SharePoint Embedded 中的文件

已完成

在本练习中,你将使用 Postman 通过 Postman 客户端访问、存储和检索 SharePoint Embedded 容器中的文件和文档。

先决条件

重要

目前,许多用于创建、访问和管理 SharePoint Embedded 特定资源的 Microsoft Graph 终结点仅存在于 Microsoft Graph beta 终结点上。 但是,访问容器和包含内容的所有终结点都位于 Microsoft Graph v1.0 终结点上。

配置 Postman 集合的委托文件夹

第一步是在之前创建的 Postman 集合中配置 Delegated 文件夹,以获取 app+user 访问令牌(也称为 委托 访问令牌),以便我们可以对应用程序进行调用。

在 Postman 客户端中,选择 SharePoint Embedded 集合,选择“ 委托” 文件夹,然后选择“ 授权 ”选项卡。配置以下设置 (忽略以下列表中未提及的字段) :

  • 类型: OAuth 2.0
  • 将身份验证数据添加到:请求标头
  • 当前令牌:
    • 令牌:可用令牌
    • 标头前缀:持有者
  • 配置新令牌
    • 令牌名称:Graph App+用户令牌
    • 授权类型:授权代码
    • 回调 URL:https://oauth.pstmn.io/v1/browser-callback
    • 授权 URLhttps://login.microsoftonline.com/common/oauth2/v2.0/authorize
    • 访问令牌 URLhttps://login.microsoftonline.com/common/oauth2/v2.0/token
    • 客户端 ID{{ClientID}}
    • 客户端密码{{ClientSecret}}
    • 范围FileStorageContainer.Selected offline_access

Postman 中“委派”文件夹的“身份验证”选项卡的屏幕截图。

选择窗体底部的“ 获取新访问令牌 ”按钮。 这将触发一个弹出窗口,其中包含Microsoft Entra ID 登录页。 使用 Microsoft 365 租户 的工作和学校 管理员帐户登录,如果系统提示授予对请求的权限的同意,请选择“ 接受”。 弹出窗口关闭时,Postman 将收到令牌并将其显示在确认弹出窗口中。 选择“ 使用令牌 ”将其保存以供将来的请求使用。

注意

通过添加范围 offline_access,Microsoft Entra ID 将使用刷新令牌进行响应,因此 Postman 不仅可以将访问令牌存储在工作站本地,而且可以在下次使用令牌过期时自动刷新令牌。

在“ 集合 ”窗格中,选择“ 委托的 > 容器 ”文件夹,然后选择“ 授权 ”选项卡。将 “类型 ”设置为 “从父级继承身份验证”。

Postman 中委托文件夹的身份验证配置的屏幕截图。

使用 Microsoft 图形 REST API 列出所有容器

现在,Postman 集合的 “委托 ”和 “容器” 文件夹已配置完毕,请添加一个新请求来获取所有容器的列表。

通过选择空“委托>的容器”文件夹中的“添加请求”链接,或选择 ...,创建新的请求。 >将鼠标悬停在“委托>的容器”文件夹上并在新请求上设置以下值时,从上下文菜单中添加请求:

  • 名称:列出容器
  • HTTP 方法:GET
  • HTTP 终结点https://graph.microsoft.com/beta/storage/fileStorage/containers?$filter=containerTypeId eq {{ContainerTypeId}}

选择“发送”来执行此请求。 应会看到找到零个容器的有效响应。

列出容器请求的屏幕截图。

使用 Microsoft Graph REST API 创建新容器

让我们使用 Microsoft 图形 REST API 创建第一个容器。

使用以下值创建新请求:

  • 名称:创建容器

  • HTTP 方法:POST

  • HTTP 终结点https://graph.microsoft.com/beta/storage/fileStorage/containers

  • 正文:原始 > JSON

    {
      "displayName": "Sample App Container 1",
      "description": "First container description.",
      "containerTypeId": "{{ContainerTypeId}}"
    }
    

通过选择“ 发送”执行请求。

如果成功,Microsoft Graph 将使用 HTTP 201 代码进行响应,并包含新容器详细信息的摘要:

显示新的“创建容器”请求以及成功执行的响应的屏幕截图。

现在,如果重新运行 “列出容器” 请求,你将看到它现在正在返回你创建的容器。

让我们存储容器的 ID 以供将来使用。

选择响应 id 属性的值,右键单击它,然后选择环境的 ContainerID 属性。

显示如何使用当前响应更新环境变量的屏幕截图。

使用 Microsoft Graph REST API 获取特定容器的详细信息

接下来,创建一个新请求,以使用 Microsoft Graph REST API 获取单个容器。

返回到集合 SharePoint Embedded,导航回 “委托 > 的容器 ”文件夹,并使用以下值创建新请求:

  • 名称:获取容器

  • HTTP 方法:GET

  • HTTP 终结点

    https://graph.microsoft.com/beta/storage/fileStorage/containers/{{ContainerID}}?$select=id,displayName,containerTypeId,status,description,customProperties&$expand=permissions
    

通过选择“ 发送”执行请求。 Microsoft Graph 将使用容器的详细信息进行响应。

将文件添加到现有容器

SharePoint Embedded 中的所有容器都可以被视为Microsoft Graph 驱动器对象,开发人员习惯于在 Microsoft Graph 中使用 OneDrive 终结点。 这意味着可以使用之前创建的所有现有驱动器终结点和代码来管理 Drive 对象中的内容,以管理 SharePoint Embedded Containers 中的内容。

以驱动器对象的形式访问容器

在 Postman 集合的“委托”文件夹中创建新文件夹文件

接下来,使用以下值在 “委托 > 的文件” 文件夹中创建新请求:

  • 名称:获取驱动器
  • HTTP 方法:GET
  • HTTP 终结点https://graph.microsoft.com/v1.0/drives/{{ContainerID}}

重复此过程,使用 items 终结点获取 Drive 对象中所有文件(也称为 DriveItems)的列表:

  • 名称:获取 DriveItems
  • HTTP 方法:GET
  • HTTP 终结点https://graph.microsoft.com/v1.0/drives/{{ContainedID}}/items/root/children

通过选择“ 发送”执行请求。 Microsoft Graph 将使用 SharePoint Embedded 容器的内容进行响应:

显示使用现有 Microsoft Graph v1.0 驱动器和 DriveItems 终结点的容器内容的屏幕截图。

将文件上传到容器

创建容器并使用现有的 Microsoft Graph 驱动器和 DriveItems 终结点查看容器中的文件后,让我们将文件添加到容器。

创建Microsoft Word 文档。 在此示例中,我们将一个文档用于 2024 年 1 月的可编辑日历,该日历是从 Word 模板Microsoft之一创建的。 在此示例中,文件称为 Jan2024.docx

使用以下值在 “委托 > 的文件” 文件夹中创建新请求:

  • 名称:上传文件
  • HTTP 方法:PUT
  • HTTP 终结点https://graph.microsoft.com/v1.0/drives/{{ContainerId}}/root:/Jan2024.docx:/content
  • 身体:
    • 类型: binary
    • 在此示例中选择Microsoft Word 文件 (Jan2024.docx)

注意

更新终结点以使用要在容器中创建的文件的名称。 在此示例中,我们使用 Jan2024.docx

选择“ 发送 ”以上传文件:

显示使用 Microsoft Graph 的驱动器终结点将文件上传到容器的结果的屏幕截图。

重新运行 “获取 DriveItems ”请求以查看容器中的文件:

显示使用 Microsoft Graph 的 DriveItems 终结点的容器的包含的屏幕截图。

摘要

在本练习中,你使用 Postman 通过使用应用+用户访问令牌调用 Microsoft Graph REST API,使用 Postman 客户端访问、存储和检索 SharePoint Embedded 容器中的文件和文档。

知识检查

1.

开发人员可以使用什么来访问 SharePoint Embedded 容器中的文件和文档?

2.

如何在使用租户中创建新的容器?

3.

如何将文件上传到容器?