You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Graph API在SharePoint指定列表创建页面遇itemNotFound错误求助

解决Graph API创建SharePoint页面时的itemNotFound错误

问题根源分析

你遇到的itemNotFound错误核心原因有两个:

  1. API端点误用:你试图通过列表的Drive端点上传页面,但SharePoint标准页面是站点专属资源,需要通过专门的/pages端点创建,而非直接上传ASPX文件到列表的文档库。
  2. 请求逻辑不匹配:/drive/root:/{filename}.aspx:/content端点用于上传二进制文件内容,你传入的却是页面元数据JSON,导致服务无法识别请求意图,返回资源未找到错误。

正确解决方案

场景1:创建子站点下的标准SharePoint页面(推荐)

如果要生成可在SharePoint站点内编辑、展示的官方页面,使用/pages端点:

请求端点

POST https://graph.microsoft.com/beta/sites/{parent-site-id}/sites/{subsite-id}/pages

注:也可直接使用子站点的完整ID,格式为sites/{subsite-full-id},可通过GET https://graph.microsoft.com/beta/sites/{parent-site-id}/sites获取子站点ID。

请求体(JSON格式)

{
  "name": "sample.aspx",
  "title": "sample",
  "pageLayout": "article",
  "description": "Share your creative work with the global Microsoft community by joining this annual showcase of visual art.",
  "promotionKind": "page",
  "webParts": [
    {
      "type": "rte",
      "innerHTML": "<p>填写页面的具体内容</p>"
    }
  ]
}

场景2:上传ASPX文件到列表关联的文档库

如果确实需要将ASPX文件上传到指定列表的文档库(而非创建标准站点页面),调整请求逻辑:

请求端点

PUT https://graph.microsoft.com/beta/sites/{parent-site-id}/sites/{subsite-id}/lists/{list-id}/drive/root:/sample.aspx:/content

请求配置

  • 请求头设置:Content-Type: text/html
  • 请求体:直接传入ASPX文件的二进制HTML内容(而非元数据JSON)

额外排查步骤

  1. 验证资源存在性:先通过GET请求确认子站点和列表是否存在:
    GET https://graph.microsoft.com/beta/sites/{parent-site-id}/sites/{subsite-id}/lists/{list-id}
    
    若返回404,说明站点/列表ID有误,需核对ID(可通过SharePoint站点URL转换,或Graph API的站点列表接口获取)。
  2. 权限检查:确保应用或用户拥有Sites.ReadWrite.All/Sites.Manage.All应用权限,或站点Edit级别的委派权限。

内容的提问来源于stack exchange,提问作者Madhu Nali

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 11:04:58