使用 Microsoft Graph 访问、存储和检索 SharePoint Embedded 中的文件
在本练习中,你将使用 Postman 通过 Postman 客户端访问、存储和检索 SharePoint Embedded 容器中的文件和文档。
先决条件
- Postman 安装的 桌面客户端 登录到 Postman 免费或付费帐户。
- 访问 Microsoft 365 租户中的管理员帐户。
重要
目前,许多用于创建、访问和管理 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
-
授权 URL:
https://login.microsoftonline.com/common/oauth2/v2.0/authorize
-
访问令牌 URL:
https://login.microsoftonline.com/common/oauth2/v2.0/token
-
客户端 ID:
{{ClientID}}
-
客户端密码:
{{ClientSecret}}
-
范围:
FileStorageContainer.Selected offline_access
选择窗体底部的“ 获取新访问令牌 ”按钮。 这将触发一个弹出窗口,其中包含Microsoft Entra ID 登录页。 使用 Microsoft 365 租户 的工作和学校 管理员帐户登录,如果系统提示授予对请求的权限的同意,请选择“ 接受”。 弹出窗口关闭时,Postman 将收到令牌并将其显示在确认弹出窗口中。 选择“ 使用令牌 ”将其保存以供将来的请求使用。
注意
通过添加范围 offline_access
,Microsoft Entra ID 将使用刷新令牌进行响应,因此 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 驱动器和 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。
选择“ 发送 ”以上传文件:
重新运行 “获取 DriveItems ”请求以查看容器中的文件:
摘要
在本练习中,你使用 Postman 通过使用应用+用户访问令牌调用 Microsoft Graph REST API,使用 Postman 客户端访问、存储和检索 SharePoint Embedded 容器中的文件和文档。