如何通过SharePoint Rest API在主页添加指向文档库文件夹的Quick Links部件
核心实现步骤
Quick Links Web部件的内部标识为QuickLinks,需通过修改主页的CanvasContent1字段(存储页面所有Web部件配置)完成添加,具体操作如下:
1. 获取主页的现有Web部件配置
先发起请求获取目标主页(通常是Home.aspx)的Web部件集合:
GET /_api/web/lists/getbytitle('Site Pages')/items?$filter=FileLeafRef eq 'Home.aspx'&$select=Id,CanvasContent1
返回结果里的CanvasContent1是一个JSON数组,包含页面上已有的所有Web部件配置信息。
2. 构造Quick Links部件的配置JSON
根据Documents库的目标文件夹,生成对应部件配置。示例如下(需替换占位内容):
{ "id": "d2b9d03a-1234-5678-90ab-cdef01234567", // 生成唯一GUID "instanceId": "d2b9d03a-1234-5678-90ab-cdef01234567", // 与id保持一致 "title": "快速链接", "serverProcessedContent": { "links": { "baseUrl": "/sites/你的站点名称" } }, "dataVersion": "2.0", "properties": { "items": [ { "sourceItem": { "itemType": "folder", "url": "/sites/你的站点名称/Documents/目标文件夹路径", // 文件夹服务器相对URL "urlType": "serverRelative" }, "displayName": "文件夹显示名称" } ], "layoutId": "List" // 可选布局:List/Grid/CompactList } }
- 需为每个新部件生成唯一GUID(可通过PowerShell的
New-Guid或在线工具生成) baseUrl填写站点的服务器相对路径items数组可添加多个文件夹项,实现多快速链接配置
3. 更新主页的Web部件集合
将构造好的Quick Links部件JSON追加到CanvasContent1的数组中,发送MERGE请求更新主页:
POST /_api/web/lists/getbytitle('Site Pages')/items(主页Id) Headers: Accept: application/json;odata=verbose Content-Type: application/json;odata=verbose X-HTTP-Method: MERGE If-Match: * Body: { "__metadata": { "type": "SP.Data.SitePagesItem" }, "CanvasContent1": "[原有Web部件数组, 新的Quick Links部件JSON]" }
例如原有CanvasContent1是[{"id":"xxx",...}],则更新后为[{"id":"xxx",...}, {"id":"d2b9d03a-...",...}]
关键注意事项
- 操作账号需拥有站点编辑权限,能修改Site Pages库中的主页
- 文件夹的服务器相对URL需准确,可通过文件夹属性面板获取
- 布局类型
layoutId可按需选择,对应不同的展示样式
内容的提问来源于stack exchange,提问作者Edward
相关产品推荐
相关产品推荐

