![](/img/trans.png)
[英]How to get columns(fields) in sharepoint using microsoft graph api
[英]How do I update the value of Person or Group columns in SharePoint lists using the Microsoft Graph API?
我正在使用Microsoft Graph API (測試版)來更新 SharePoint ListItems。 但是,我無法更改“個人或組”列的值。 該列具有“允許多選”屬性並接受個人和組。 這是作為 ListItem columnSet 的一部分的樣子:
{
"AssignedTo": [
{
"Email": "user@domain.com",
"LookupId": 123,
"LookupValue": "User Name"
}
]
}
更新“Person 或 Group”以外的列的值工作正常: 如文檔所述,我正在向 ListItem 的 columnSet 發送 PATCH 請求。 請求標頭包含內容類型“application/json”,請求正文包含列名稱及其(新)值的 JSON 編碼字典:
{
"RegularColumn": "new value"
}
我已經嘗試了很多使用用戶的 ID、電子郵件和/或姓名,但我得到的只是這個錯誤:“請求格式錯誤或不正確。”
如何更新“個人或組”列的值? 示例 JSON 請求正文會是什么樣子?
感謝您的任何建議!
很長一段時間以來,我一直在尋找同一問題的解決方案,但在 StackOverflow 或 Web 上都沒有找到任何解決方案。 感謝 Vadim Gremyachev 的帖子( 請參閱此處有關“查找”類型字段的相關問題),我能夠通過 Graph Api 使用激活的設置“allowMultipleSelection”成功更新“personOrGroup”類型的字段。 您可以通過將字段名稱與 LookupId 組合並將 LookupId 作為值傳遞來更新單值“personOrGroup”字段:
{
"AssignedToLookupId":"123"
}
如果要更新多值 'personOrGroup' 字段,則需要先指定數據類型並將 id 作為數組傳遞:
{
"AssignedToLookupId@odata.type":"Collection(Edm.String)",
"AssignedToLookupId":["123", "124"]
}
我想我找到了一種解決方法如何制作它而不是 Graph:使用 sharepoint rest api 來創建/更新多個'Person or Group'
字段而不是使用AAD 客戶端(ADAL.js)的Graph api
並連接到AAD 中的應用程序。 它適用於 SPFx webpart 和 Azure Functions。 但無論如何,遺憾的是官方沒有來自微軟的信息。
經過大量修補后,我設法通過使用 msgraph 找到了解決方案,而無需切換回 sharepoint v1.0 api。 解決方案:您可以使用 displayName: "User Information List" 拉取用戶列表
例如:GET https://graph.microsoft.com/v1.0/groups/{group-id}/sites/root/lists/User Information List/(這包含用戶的查找 ID。另外,換句話說,這是 personOrGroup 列用於查找的列表)
如果是新條目,類似地,您首先需要以通常的方式將一個新的 listItem 添加到上面的列表中,然后使用該新創建的 id 來設置 LookupField,如上面在回答中的建議。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.