sharepoint - Microsoft Graph Api 将文件上传到 SharePoint
问题描述
我正在使用 microsoft graph api 采访 sharepoint。
将文件上传到共享点。
然后我们可以得到响应。
{ "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#sites('abc78c05-a77b-45bf-a1a1-51f09548b497')/drive/root/$entity", "@microsoft.graph.downloadUrl": "https://yeeofficesg.sharepoint.com/sites/GdTest/_layouts/15/download.aspx?UniqueId=b9d25e13-c915-432f-b9fb-f2d36a188d9f&Translate=false&tempauth=eyJ0eXAiOiJKV1QiLCJhbGciOiJub25lIn0.eyJhdWQiOiIwMDAwMDAwMy0wMDAwLTBmZjEtY2UwMC0wMDAwMDAwMDAwMDAveWVlb2ZmaWNlc2cuc2hhcmVwb2ludC5jb21AMzgzMDNhNTQtMjUwMS00MDcwLTlkYjItYzNmNTY2OTc2NGUxIiwiaXNzIjoiMDAwMDAwMDMtMDAwMC0wZmYxLWNlMDAtMDAwMDAwMDAwMDAwIiwibmJmIjoiMTU4NDY4MjQ5OSIsImV4cCI6IjE1ODQ2ODYwOTkiLCJlbmRwb2ludHVybCI6InltcjVvWHhDU0FIaFhhV0tYVnZuVDVjK05ETnZsejhzcC9YeFp3MStQaHc9IiwiZW5kcG9pbnR1cmxMZW5ndGgiOiIxMzUiLCJpc2xvb3BiYWNrIjoiVHJ1ZSIsImNpZCI6IlpUUmhPVFk1WkdFdE5EQXlOQzAwWlRnMExUazFZelF0WkRkalpqRmpOR1UxTm1ZMCIsInZlciI6Imhhc2hlZHByb29mdG9rZW4iLCJzaXRlaWQiOiJZV0pqTnpoak1EVXRZVGMzWWkwME5XSm1MV0V4WVRFdE5URm1NRGsxTkRoaU5EazMiLCJhcHBfZGlzcGxheW5hbWUiOiJIdHRwUmVxdWVzdCBUZXN0IiwibmFtZWlkIjoiNTk3ZDQ4YmMtMDVmMy00MTU4LThhY2MtYWU1Y2M3YTljNmFkQDM4MzAzYTU0LTI1MDEtNDA3MC05ZGIyLWMzZjU2Njk3NjRlMSIsInJvbGVzIjoiYWxsc2l0ZXMud3JpdGUgYWxsZmlsZXMud3JpdGUiLCJ0dCI6IjEiLCJ1c2VQZXJzaXN0ZW50Q29va2llIjpudWxsfQ.aTVxeDdWNkowcWFDK0xYOHUvZGo3K0VVSEd1dU02MFVheEFJbnBWWUJHTT0&ApiVersion=2.0", "createdDateTime": "2020-03-20T05:34:59Z", "eTag": "\"{B9D25E13-C915-432F-B9FB-F2D36A188D9F},1\"", "id": "016REKDTITL3JLSFOJF5B3T67S2NVBRDM7", "lastModifiedDateTime": "2020-03-20T05:34:59Z", "name": "test1212123.txt", "webUrl": "https://yeeofficesg.sharepoint.com/sites/GdTest/Shared%20Documents/test1212123.txt", "cTag": "\"c:{B9D25E13-C915-432F-B9FB-F2D36A188D9F},1\"", "size": 12, "createdBy": { "application": { "id": "597d48bc-05f3-4158-8acc-ae5cc7a9c6ad", "displayName": "HttpRequest Test" } }, "lastModifiedBy": { "application": { "id": "597d48bc-05f3-4158-8acc-ae5cc7a9c6ad", "displayName": "HttpRequest Test" } }, "parentReference": { "driveId": "b!BYzHq3unv0WhoVHwlUi0l_EO2rYM2NNCptmOTvJ-EqeM9aeJ-zj_TZktSrctfA1S", "driveType": "documentLibrary", "id": "016REKDTN6Y2GOVW7725BZO354PWSELRRZ", "path": "/drive/root:" }, "file": { "mimeType": "text/plain", "hashes": { "quickXorHash": "RBBCDGQwAxrUIARAFAEJSgAAAAA=" } }, "fileSystemInfo": { "createdDateTime": "2020-03-20T05:34:59Z", "lastModifiedDateTime": "2020-03-20T05:34:59Z" } }
然后我想更新这个列表的自定义列。 https://graph.microsoft.com/v1.0/sites/abc78c05-a77b-45bf-a1a1-51f09548b497/lists/89a7f58c-38fb-4dff-992d-4ab72d7c0d52/items/80/fields
第 3 步,我需要商品 ID(本示例为:80),但是当我上传文件时,我无法直接从响应中获取商品 ID。
使用这个 api:https ://graph.microsoft.com/v1.0/sites/abc78c05-a77b-45bf-a1a1-51f09548b497/lists/89a7f58c-38fb-4dff-992d-4ab72d7c0d52/items/ 我可以得到项目列表其中需要包含项目 ID。
最后,我的问题是,当我将文件上传到共享点时,如何获得更新项目所需的项目 ID。
解决方案
我最终从响应中提取了项目 GUID,即
"@microsoft.graph.downloadUrl": "https://yeeofficesg.sharepoint.com/sites/GdTest/_layouts/15/download.aspx?UniqueId= b9d25e13-c915-432f-b9fb-f2d36a188d9f &Translate=false&tempauth=... .
或者
"eTag": ""{ B9D25E13-C915-432F-B9FB-F2D36A188D9F },1""
或者
"cTag": ""c:{ B9D25E13-C915-432F-B9FB-F2D36A188D9F },1""
然后在需要项目 ID 的 PATCH 调用中使用它,即https://graph.microsoft.com/v1.0/sites/abc78c05-a77b-45bf-a1a1-51f09548b497/lists/89a7f58c-38fb-4dff- 992d-4ab72d7c0d52/items/**B9D25E13-C915-432F-B9FB-F2D36A188D9F**/fields
可能是解决问题的更优雅的方法,但这对我有用
推荐阅读
- opengl - 如何使用 ImageLoad() 访问深度纹理?
- c# - Linq Groupby在c#中没有分组
- git - 如何获取项目内所有 git 存储库头的提交 ID?
- java - 我怎样才能使我的应用程序 MS EDGE 兼容
- docusignapi - Docusign Embedded Signing , 发件人如何与多个签名者共享“收件人签名 URL”?
- java - 春季调度程序未启动
- tensorflow - Tensorflow 2.3.0 要求是 protobuf 3.8.0 或更高版本,但 tensorflow 仅在 protobuf 3.6.0 导入(对于 python 3.6.0,windows)
- reactjs - 有条件地使用反应进口
- google-cloud-platform - 无法将磁盘附加到实例
- excel - 使用 VBA 创建具有多个系列的 xy 散点图