使用 REST api 将事件添加到 SharePoint 日历列表
Add event to SharePoint calender list with REST _api
有没有人知道如何使用 Sharepoint REST _api post 事件到 SharePoint 在线日历列表。
我在堆栈中找到了这个 post:link
但它使用了我不必在我的情况下使用的授权,因为我的应用程序位于共享点内。我找到了有关如何将 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"
};
有没有人知道如何使用 Sharepoint REST _api post 事件到 SharePoint 在线日历列表。
我在堆栈中找到了这个 post:link 但它使用了我不必在我的情况下使用的授权,因为我的应用程序位于共享点内。我找到了有关如何将 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"
};