使用RESTful API创建SharePoint 2013讨论项目
我们有一个名为“团队讨论”的讨论板 我正在尝试使用SharePoint 2013 Restful API创建讨论板项目。 我可以使用以下命令成功创建讨论板项目: 我正在发布的Url(Url包含“团队讨论”讨论列表的guid使用RESTful API创建SharePoint 2013讨论项目,rest,sharepoint-2013,listitem,Rest,Sharepoint 2013,Listitem,我们有一个名为“团队讨论”的讨论板 我正在尝试使用SharePoint 2013 Restful API创建讨论板项目。 我可以使用以下命令成功创建讨论板项目: 我正在发布的Url(Url包含“团队讨论”讨论列表的guid http://OurDomain/sites/99812/40242/23653/_api/Web/Lists(guid'c29cef95-6450-4433-8ac8-72d46c9a7fe7')/Items 标题 接受:application/json;odata=ve
http://OurDomain/sites/99812/40242/23653/_api/Web/Lists(guid'c29cef95-6450-4433-8ac8-72d46c9a7fe7')/Items
标题
接受:application/json;odata=verbose
X-RequestDigest:0x98B316961381BB37DD23B8A1F62EAF853584F74F430774480198682E0B76AB9446D4480FD01F1E27C0AC9DD412BACA2992F0542D49CD1B09CC211BE94DBDCD,2014年7月31日02:13-0000
内容类型:application/json;odata=verbose
身体
{{{u_元数据:{'type':'SP.Data.Team_x0020_DiscussionItem'},'Title':'My Team Discussion Item'}
但是,通过编程创建的讨论板项目与手动创建的项目看起来不一样。当我转到讨论项目时,标题显示为“团队讨论:47.000”
似乎我没有为SharePoint设置正确的元数据以正确创建它。
我甚至尝试创建一个列表资源而不是列表项,并将BaseTemplate设置为108,将BaseType设置为值3。
我还发现存在类似的问题,除非您使用SPUtility.CreateNewDiscussion使用服务器API创建讨论项目
在使用Resftul API时,对于如何纠正此问题的任何帮助都将不胜感激
问候
Nuwan发生这种情况是因为您正在通过
SP.ListItemCollection
资源终结点创建讨论项目。讨论项目实际上是SP.Folder
资源,在这种情况下,SP.Folder.Name
被分配给值.000
下面的示例演示如何正确创建讨论项目:
var listTitle = "Discussions";
var webUrl = _spPageContextInfo.webAbsoluteUrl;
var payload = {
'__metadata': { "type": "SP.Data.DiscussionsListItem" },
'Title': "Discussion 123",
'FileSystemObjectType': 1
};
createNewDiscussion(webUrl,listTitle,payload)
.done(function(item)
{
console.log('Discussion has been created');
})
.fail(function(error){
console.log(JSON.stringify(error));
});
在哪里
hey hi..hv您获得了获取所有问题回复的解决方案。??虽然这似乎有效(回复显示在家长帖子的讨论线程中),但它没有在回复上设置
ParentItemID
属性,它仍然保持null
,这破坏了讨论的一些功能。请参阅本文:
function executeJson(options)
{
var headers = options.headers || {};
var method = options.method || "GET";
headers["Accept"] = "application/json;odata=verbose";
if(options.method == "POST") {
headers["X-RequestDigest"] = $("#__REQUESTDIGEST").val();
}
var ajaxOptions =
{
url: options.url,
type: method,
contentType: "application/json;odata=verbose",
headers: headers
};
if("data" in options) {
ajaxOptions.data = JSON.stringify(options.data);
}
return $.ajax(ajaxOptions);
}
function createListItem(webUrl,listTitle,payload){
var url = webUrl + "/_api/web/lists/getbytitle('" + listTitle + "')/items";
return executeJson({
"url" :url,
"method": 'POST',
"data": payload
});
}
function fixDiscussionFolder(webUrl,listTitle,payload){
var url = webUrl + "/_api/web/lists/getbytitle('" + listTitle + "')/items(" + payload.Id + ")";
var payload = {
'__metadata': payload.__metadata,
'FileLeafRef' : payload.Title,
};
return executeJson({
'url' :url,
'headers': {
'X-HTTP-Method': 'MERGE',
'If-Match': '*'
},
'method': "POST",
'data': payload
});
}