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

使用Microsoft Graph API更新SharePoint查找字段时遇invalidRequest错误

使用Microsoft Graph API更新SharePoint查找字段的问题与解决方案

问题描述

使用Microsoft Graph API更新SharePoint列表项的常规字段时可正常运行,请求示例:

PATCH https://graph.microsoft.com/v1.0/sites/{site-id}/lists/{list-id}/items/{item-id}/fields

{
  "RegularField": "new_value"
}

但更新查找字段时始终返回invalidRequest错误。尝试过两种请求体格式:
格式一:

{
  "LookupField": [
    {
      "id": "742"
    }
  ]
}

格式二:

{
  "LookupFieldLookupId": "742"
}

错误响应:

{
  "error": {
    "code": "invalidRequest",
    "message": "Invalid request",
    "innerError": {
      "date": "2024-02-04T09:15:57",
      "request-id": "...",
      "client-request-id": "..."
    }
  }
}

已确认site-id、list-id、item-id及授权信息均正确,其他字段可正常更新。

核心问题

  1. 使用Microsoft Graph API更新SharePoint查找字段的正确格式是什么?
  2. 是否存在与当前方法不同的特定属性名称或格式需要使用?

解决方案

1. 单值查找字段更新格式

如果查找字段为单值(不允许多选),请求体需使用字段的内部名称,值为目标项的数字ID(不能是字符串):

{
  "LookupFieldInternalName": 742
}

2. 多值查找字段更新格式

若字段支持多选,需传入包含id属性的对象数组,id同样为数字类型:

{
  "LookupFieldInternalName": [
    { "id": 742 }
  ]
}

关键注意事项

  • 必须使用内部名称:不要用列表显示的友好名称,需到SharePoint列表设置的字段详情页获取内部名称(例如显示名"客户名称"的内部名称可能是客户_x0020_名称)。
  • ID必须是整数类型:不能用引号包裹ID,Graph API要求查找项ID为数字,这是导致invalidRequest的常见原因。
  • 摒弃传统REST格式:LookupFieldLookupId是SharePoint传统REST API的写法,Microsoft Graph API不兼容该格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 14:28:23