将项目添加到 Sharepoint 在线列表会使用 GRAPH API V1 创建空项目

问题描述 投票:0回答:1

我正在测试一个证明概念,以将 GRAPH API 与通过 MS Teams 创建的 SharePoint Online (SP) 网站结合使用。我在网站上有一个简单的列表,出于测试目的,我直接在 SP 中填充了 2 条记录,并且我希望使用 POSTMAN 来测试简单的 CRUD 操作。长期目标是使用自动化程序(BPA 平台)来使用其 Web 服务工具来检索此数据,并将其存储在现场 SQL 数据库中以供其他业务系统使用。 SP 列表很可能在顶部有一个低代码解决方案作为用户界面(可能是 PowerApps),因此所有帮助只需要使用 HTTPS 调用,而不是其他代码解决方案,谢谢。

到目前为止我使用的身份验证根是Azure App来创建应用程序秘密并为该应用程序分配正确的权限

SP列表具有以下列定义

我可以通过调用检索列表中的项目

https://graph.microsoft.com/v1.0/sites/{{IT_Testing_Id}}/lists/{{ListID}}/items?expand=fields

返回的是(我只显示了字段)

"fields": {
            "@odata.etag": "\"1512bad7-b01f-494d-924c-88c44104cae2,1\"",
            "Title": "Apple",
            "LinkTitleNoMenu": "Apple",
            "LinkTitle": "Apple",
            "Ref": "1",
            "Number": 2.0,
            "DateTest": "2023-10-30T00:00:00Z",
            "PartNo": "1010910.A",
            "LookupLookupId": "1",
            "id": "1",
            "ContentType": "Item",
            "Modified": "2023-11-02T08:50:53Z",
            "Created": "2023-11-02T08:50:53Z",
            "AuthorLookupId": "9",
            "EditorLookupId": "9",
            "_UIVersionString": "1.0",
            "Attachments": false,
            "Edit": "",
            "ItemChildCount": "0",
            "FolderChildCount": "0",
            "_ComplianceFlags": "",
            "_ComplianceTag": "",
            "_ComplianceTagWrittenTime": "",
            "_ComplianceTagUserId": ""
        }
    },
        
    "fields": {
            "@odata.etag": "\"4c1a4755-1e58-4bac-b04f-f3270d8aed03,1\"",
            "Title": "Orange",
            "LinkTitleNoMenu": "Orange",
            "LinkTitle": "Orange",
            "Ref": "2",
            "Number": 5.0,
            "DateTest": "2023-11-02T00:00:00Z",
            "PartNo": "1020020",
            "LookupLookupId": "2",
            "id": "2",
            "ContentType": "Item",
            "Modified": "2023-11-02T08:56:09Z",
            "Created": "2023-11-02T08:56:09Z",
            "AuthorLookupId": "9",
            "EditorLookupId": "9",
            "_UIVersionString": "1.0",
            "Attachments": false,
            "Edit": "",
            "ItemChildCount": "0",
            "FolderChildCount": "0",
            "_ComplianceFlags": "",
            "_ComplianceTag": "",
            "_ComplianceTagWrittenTime": "",
            "_ComplianceTagUserId": ""
        }
    },

但是,问题出在 POST 上,当我完成 POST 时,我得到的状态为

201 Created

但是在 SP 我看到了这个:

我相信我没有在 Post 命令中发送正确的信息。

这是帖子的详细信息

发布命令调用 https://graph.microsoft.com/v1.0/sites/{{IT_Testing_Id}}/lists/{{ListID}}/items

标题详情

 {
            "Title": "Pear",
            "Ref": "25",
            "Number": 2.0,
            "DateTest": "2023-10-30T00:00:00Z",
            "PartNo": "5000000.A"
            }

回应是

"fields": {
    "@odata.etag": "\"038843b1-b587-441b-aa90-a8cef5e53c28,1\"",
    "Number": 0.0,
    "DateTest": "2023-11-03T11:43:58Z",
    "id": "15",
    "ContentType": "Item",
    "Modified": "2023-11-03T11:43:58Z",
    "Created": "2023-11-03T11:43:58Z",
    "AuthorLookupId": "1073741822",
    "EditorLookupId": "1073741822",
    "_UIVersionString": "1.0",
    "Attachments": false,
    "Edit": "",
    "ItemChildCount": "0",
    "FolderChildCount": "0",
    "_ComplianceFlags": "",
    "_ComplianceTag": "",
    "_ComplianceTagWrittenTime": "",
    "_ComplianceTagUserId": "",
    "AppAuthorLookupId": "10",
    "AppEditorLookupId": "10"
}

注意 id 已移动,但数据为空

有人可以建议尝试一下吗?我猜我没有提供正确的标题信息/格式?

我的主要参考文献是 Graph API 和 Graph Explorer 入门 Microsoft Graph 概述

microsoft-graph-api sharepoint-online
1个回答
0
投票

发送 POST 请求时,字段名称必须位于

fields
属性内。

{
  "fields": {
    "Title": "Pear",
    "Ref": "25",
    "Number": 2.0,
    "DateTest": "2023-10-30T00:00:00Z",
    "PartNo": "5000000.A"
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.