and*_*w g 8 sharepoint-online microsoft-graph-api
我无法listitem使用 Microsoft Graph创建或更新包含超链接字段的 SharePoint Online 。如果我从 API 调用的主体中删除超链接字段,我可以创建或更新相同列表的项目。
对于更新,我将 PATCH 请求发送到:
/v1.0/sites/<site>/list/<listid>/items/<item>/fields
Run Code Online (Sandbox Code Playgroud)
带有以下标题:
"Authorization" : "Bearer <token>"
"accept" :"application/json;odata.metadata=full;odata.streaming=true"
Run Code Online (Sandbox Code Playgroud)
这是身体:
/v1.0/sites/<site>/list/<listid>/items/<item>/fields
Run Code Online (Sandbox Code Playgroud)
我将收到以下错误消息作为响应:
"Authorization" : "Bearer <token>"
"accept" :"application/json;odata.metadata=full;odata.streaming=true"
Run Code Online (Sandbox Code Playgroud)
值得注意的是,我可以使用确切的标题和目标 URL 更新列表项中的其他字段,只要 json 正文中没有超链接字段。
我发送的格式是我在执行GET. 有谁知道将 URL 字段发送回 SharePoint 的适当格式?
我于 2017 年 11 月 11 日在 Microsoft 的 Graph Github 上发布了同样的问题,但他们尚未提供答案。我非正式地听说,目前不支持对具有嵌套结构(例如超链接、用户、分类法)的列表项进行 REST 操作。这是该问题的链接,以防他们稍后回答:https : //github.com/microsoftgraph/microsoft-graph-docs/issues/1965
我确实有我正在使用的超链接字段的解决方法。我更改了 SharePoint 列表上的列,该列以前是指向“单行文本”字段的超链接。在单行文本字段中输入超链接时,当您在浏览器中查看事件时,它会显示为带下划线的可点击链接。如果您有一个像超链接字段类型那样又长又丑的 URL,则不能使用替代文本,但它确实有效!
您可以使用Sharepoint REST API v1创建或更新 URL:
首先,使用 GET 请求检索文件的所有属性<yourSharepointUrl>/sites/<site>/_api/web/GetFileByServerRelativePath(decodedurl='<filepath>')/ListItemAllFields
确保包含您的令牌以进行身份验证。还添加以下两个标头:
Content-Type: application/json;odata=verbose
Accept: application/json;odata=verbose
Run Code Online (Sandbox Code Playgroud)
d.__metadata.etag记下JSON 响应中etag 字段的值。
然后,您可以使用 POST 请求更新该 URL 到同一 URL。
除了身份验证标头之外,还包括以下标头:
Content-Type: application/json;odata=verbose
X-HTTP-Method: MERGE
If-Match: <etag>
Run Code Online (Sandbox Code Playgroud)
将 etag 标记替换为先前请求中的值。请务必保留引号!
请求的正文应如下所示:
{
"__metadata": {
"type": "SP.Data.Shared_x0020_DocumentsItem"
},
"myUrl": {
"__metadata": {
"type": "SP.FieldUrlValue"
},
"Description": "Link",
"Url": "https://www.example.com"
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2204 次 |
| 最近记录: |