使用超链接字段创建或更新 SharePoint ListItem

Posted

技术标签:

【中文标题】使用超链接字段创建或更新 SharePoint ListItem【英文标题】:Create or Update SharePoint ListItem with hyperlink field 【发布时间】:2018-04-24 05:05:38 【问题描述】:

我无法使用 Microsoft Graph 创建或更新包含超链接字段的 SharePoint Online listitem。如果我从 API 调用的正文中删除超链接字段,我可以创建或更新项目到同一个列表。

为了更新,我发送 PATCH 请求到:

/v1.0/sites/<site>/list/<listid>/items/<item>/fields

带有以下标题:

"Authorization" : "Bearer <token>"
"accept" :"application/json;odata.metadata=full;odata.streaming=true"

这是正文:


    "myUrl": 
        "Description": "http://www.google.com",
        "Url": "http://www.google.com"
    

我将收到以下错误消息作为响应:


    "error": 
        "code": "invalidRequest",
        "message": "The request is malformed or incorrect.",
        "innerError": 
            "request-id": "cfe30f57-31ba-4341-89e9-2c1bd4e15539",
            "date": "2017-11-10T21:55:30"
        
    

值得注意的是,我可以使用确切的标题和目标 URL 更新列表项中的其他字段,只要 json 正文中没有超链接字段。

我发送的格式是我在执行GET 时收到的 URL 字段的确切格式。有谁知道将 URL 字段发送回 SharePoint 的适当格式?

2018 年 1 月 8 日更新

我于 2017 年 11 月 11 日在 Microsoft 的 Graph Github 上发布了同样的问题,但他们尚未提供答案。我非正式地听说,目前不支持对具有嵌套结构(例如超链接、用户、分类)的列表项的 REST 操作。这是问题的链接,以防他们稍后回答:https://github.com/microsoftgraph/microsoft-graph-docs/issues/1965

对于我正在使用的超链接字段,我确实有一个解决方法。我更改了 SharePoint 列表上的列,该列以前是指向“单行文本”字段的超链接。在单行文本字段中输入超链接时,当您在浏览器中查看事件时,它会显示为带下划线且可单击的链接。如果您的 URL 像超链接字段类型那样又长又丑,则不能使用替代文本,但它可以使用!

【问题讨论】:

能否添加完整的 HTTP 请求,包括标头? 嗨,马克,感谢您的回复。我已经更新了问题以包含更多支持细节和请求的标头。 【参考方案1】:

看起来身体的值是相反的。您在描述字段中有您的 URL,在 URL 字段中有描述。试试:


    "myUrl": 
        "Description": "google",
        "Url": "http://www.google.com"
    

【讨论】:

嗨,杰森,感谢您的回复。我在试图混淆这篇文章的真实网址和描述时意外地将它们颠倒过来。如果你交换它们,它会抛出同样的错误。感谢您发现错误,我将更新 OP。

以上是关于使用超链接字段创建或更新 SharePoint ListItem的主要内容,如果未能解决你的问题,请参考以下文章

更新链接到 SharePoint 的 Access 表中的信息

Access App中的超链接控制

使用 JQuery 制作的 SharePoint 2013 超链接在过滤后停止工作

如何从 Sharepoint 搜索修改莲花笔记超链接

指向 SharePoint 2019 文档集的 Word 超链接不起作用

SharePoint Online 客制化开发:如何更新Stylesheet?