簡體   English   中英

使用REST _api將事件添加到SharePoint日歷列表

[英]Add event to SharePoint calender list with REST _api

是否有人知道如何使用Sharepoint REST _api將事件發布到SharePoint Online日歷列表。

我在堆棧上找到了這篇文章: 鏈接但是它使用的授權在我的情況下不必使用,因為我的應用程序位於共享點內。 我已經找到有關如何使CRUD成為Outlook日歷的文檔。 但這當然不包括共享點。

到目前為止,這是代碼:

    function PostToBokningar() {
    var url = `${_spPageContextInfo.webAbsoluteUrl}/_api/web/lists/getbytitle('Bokningar')/items`;
    //requestHeaders
    var requestHeaders = {
        "accept": "application/json;odata=verbose",
        "content-type": "application/json;odata=verbose",
        "X-RequestDigest": jQuery('#__REQUESTDIGEST').val()
    }
    //Data
    var data = {
        __metadata: { "type": "SP.Data.BokningarListItem" },
        Title: "Test title",
        EventDate: moment.utc("2017-12-12 10:00").format('YYYY-MM-DD HH:mm:ssZ'),
        EndTime: moment.utc("2017-12-12 17:00").format('YYYY-MM-DD HH:mm:ssZ'),
        Description: "test description"
    };
    //requestBod
    var requestBody = JSON.stringify(data);
    //Post
    var post = jQuery.ajax({
        url: url,
        type: "POST",
        headers: requestHeaders,
        data: data
    })

}

我收到的錯誤消息是:

{"error":{"code":"-1, Microsoft.SharePoint.Client.InvalidClientQueryException","message":{"lang":"en-US","value":"Invalid JSON. A token was not recognized in the JSON content."}}}

有什么建議么?

是的,您的代碼中有兩個錯誤。 您沒有將字符串化的json發送到REST服務。 將呼叫替換為:

var post = jQuery.ajax({
    url: url,
    type: "POST",
    headers: requestHeaders,
    data: requestBody
})

而且,事件結束的字段稱為EndDate而不是EndTime,因此替換為:

var data = {
    __metadata: { "type": "SP.Data.BokningarListItem" },
    Title: "Test title",
    EventDate: moment.utc("2017-12-12 10:00").format('YYYY-MM-DD HH:mm:ssZ'),
    EndDate: moment.utc("2017-12-12 17:00").format('YYYY-MM-DD HH:mm:ssZ'),
    Description: "test description"
};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM