SharePoint rest api creates list items in the folder
Hi Community,
As I was performing the operation, ‘SharePoint rest api creates list items in the folder.’.
I have used the below code:
Here, I am getting the access token error. Due to this, I can load the User data in the dropdown.
I am having difficulties performing the operation
Can anyone guide me
<script src=”https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js”></script>
<div id=”createItemDiv”>
<h2>Create Item</h2>
<label for=”title”>Title:</label><br>
<input type=”text” id=”title” name=”title” value=”Item Title”><br>
<label for=”category”>Product Category:</label><br>
<select id=”category” name=”category”>
<option value=”Books”>Books</option>
<option value=”Electronics”>Electronics</option>
<option value=”Home & Kitchen”>Home & Kitchen</option>
</select><br>
<label for=”user”>User:</label><br>
<select id=”user” name=”user”>
<!– User options will be populated dynamically –>
</select><br><br>
<button id=”createItemBtn”>Create Item</button>
</div>
<script type=”text/javascript”>
$(document).ready(function() {
var clientId = “your-client-id”;
var clientSecret = “your-client-secret”;
var resource = encodeURIComponent(“https://szg52.sharepoint.com”); // URL encode your SharePoint site URL
// Populate user dropdown
populateUsers();
// Function to populate user dropdown
function populateUsers() {
getAccessToken(function(accessToken) {
$.ajax({
url: “https://szg52.sharepoint.com/sites/Sales/_api/web/siteusers”,
type: “GET”,
headers: {
“Authorization”: “Bearer ” + accessToken,
“Accept”: “application/json;odata=nometadata”
},
success: function(data) {
$(“#user”).empty();
data.value.forEach(function(user) {
// Exclude groups and system users
if (!user.IsHiddenInUI && !user.PrincipalTypeFlags.includes(“SharePointGroup”) && !user.PrincipalTypeFlags.includes(“System”)) {
$(“#user”).append(‘<option value=”‘ + user.LoginName + ‘”>’ + user.Title + ‘</option>’);
}
});
},
error: function(error) {
console.error(“Error fetching users:”, error);
}
});
});
}
// Event listener for Create Item button
$(“#createItemBtn”).click(function(event) {
event.preventDefault(); // Prevent page refresh
// Obtain access token and then create item
getAccessToken(function(accessToken) {
var siteUrl = “https://szg52.sharepoint.com/sites/Sales”;
var listTitle = “Sales”;
var folderPath = “/User Manual”;
var title = $(“#title”).val();
var category = $(“#category”).val();
var user = $(“#user”).val();
var url = siteUrl + “/_api/web/lists/GetByTitle(‘” + listTitle + “‘)/AddValidateUpdateItemUsingPath”;
var itemData = {
“listItemCreateInfo”: {
“FolderPath”: {
“DecodedUrl”: siteUrl + “/lists/” + listTitle + folderPath
},
“UnderlyingObjectType”: 0
},
“formValues”: [
{
“FieldName”: “Title”,
“FieldValue”: title
},
{
“FieldName”: “ProductCategory”,
“FieldValue”: category
},
{
“FieldName”: “User”,
“FieldValue”: {
“Key”: user
}
}
],
“bNewDocumentUpdate”: false
};
$.ajax({
url: url,
type: “POST”,
headers: {
“Authorization”: “Bearer ” + accessToken,
“Accept”: “application/json;odata=nometadata”,
“Content-Type”: “application/json;odata=nometadata”,
“X-RequestDigest”: $(“#__REQUESTDIGEST”).val()
},
data: JSON.stringify(itemData),
success: function(data) {
console.log(“Item created successfully.”);
console.log(data);
alert(“Item created successfully.”);
},
error: function(error) {
console.log(“Error creating item:”, error);
alert(“Error creating item.”);
}
});
});
});
// Function to obtain access token
function getAccessToken(callback) {
$.ajax({
url: “https://accounts.accesscontrol.windows.net/common/tokens/OAuth/2”,
type: “POST”,
data: {
“grant_type”: “client_credentials”,
“client_id”: clientId,
“client_secret”: clientSecret,
“resource”: resource
},
success: function(response) {
var accessToken = response.access_token;
console.log(“Access Token:”, accessToken);
if (typeof callback === ‘function’) {
callback(accessToken);
}
},
error: function(error) {
console.error(“Error getting access token:”, error);
}
});
}
});
</script>
Hi Community,As I was performing the operation, ‘SharePoint rest api creates list items in the folder.’.I have used the below code:Here, I am getting the access token error. Due to this, I can load the User data in the dropdown.I am having difficulties performing the operationCan anyone guide me <script src=”https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js”></script>
<div id=”createItemDiv”>
<h2>Create Item</h2>
<label for=”title”>Title:</label><br>
<input type=”text” id=”title” name=”title” value=”Item Title”><br>
<label for=”category”>Product Category:</label><br>
<select id=”category” name=”category”>
<option value=”Books”>Books</option>
<option value=”Electronics”>Electronics</option>
<option value=”Home & Kitchen”>Home & Kitchen</option>
</select><br>
<label for=”user”>User:</label><br>
<select id=”user” name=”user”>
<!– User options will be populated dynamically –>
</select><br><br>
<button id=”createItemBtn”>Create Item</button>
</div>
<script type=”text/javascript”>
$(document).ready(function() {
var clientId = “your-client-id”;
var clientSecret = “your-client-secret”;
var resource = encodeURIComponent(“https://szg52.sharepoint.com”); // URL encode your SharePoint site URL
// Populate user dropdown
populateUsers();
// Function to populate user dropdown
function populateUsers() {
getAccessToken(function(accessToken) {
$.ajax({
url: “https://szg52.sharepoint.com/sites/Sales/_api/web/siteusers”,
type: “GET”,
headers: {
“Authorization”: “Bearer ” + accessToken,
“Accept”: “application/json;odata=nometadata”
},
success: function(data) {
$(“#user”).empty();
data.value.forEach(function(user) {
// Exclude groups and system users
if (!user.IsHiddenInUI && !user.PrincipalTypeFlags.includes(“SharePointGroup”) && !user.PrincipalTypeFlags.includes(“System”)) {
$(“#user”).append(‘<option value=”‘ + user.LoginName + ‘”>’ + user.Title + ‘</option>’);
}
});
},
error: function(error) {
console.error(“Error fetching users:”, error);
}
});
});
}
// Event listener for Create Item button
$(“#createItemBtn”).click(function(event) {
event.preventDefault(); // Prevent page refresh
// Obtain access token and then create item
getAccessToken(function(accessToken) {
var siteUrl = “https://szg52.sharepoint.com/sites/Sales”;
var listTitle = “Sales”;
var folderPath = “/User Manual”;
var title = $(“#title”).val();
var category = $(“#category”).val();
var user = $(“#user”).val();
var url = siteUrl + “/_api/web/lists/GetByTitle(‘” + listTitle + “‘)/AddValidateUpdateItemUsingPath”;
var itemData = {
“listItemCreateInfo”: {
“FolderPath”: {
“DecodedUrl”: siteUrl + “/lists/” + listTitle + folderPath
},
“UnderlyingObjectType”: 0
},
“formValues”: [
{
“FieldName”: “Title”,
“FieldValue”: title
},
{
“FieldName”: “ProductCategory”,
“FieldValue”: category
},
{
“FieldName”: “User”,
“FieldValue”: {
“Key”: user
}
}
],
“bNewDocumentUpdate”: false
};
$.ajax({
url: url,
type: “POST”,
headers: {
“Authorization”: “Bearer ” + accessToken,
“Accept”: “application/json;odata=nometadata”,
“Content-Type”: “application/json;odata=nometadata”,
“X-RequestDigest”: $(“#__REQUESTDIGEST”).val()
},
data: JSON.stringify(itemData),
success: function(data) {
console.log(“Item created successfully.”);
console.log(data);
alert(“Item created successfully.”);
},
error: function(error) {
console.log(“Error creating item:”, error);
alert(“Error creating item.”);
}
});
});
});
// Function to obtain access token
function getAccessToken(callback) {
$.ajax({
url: “https://accounts.accesscontrol.windows.net/common/tokens/OAuth/2”,
type: “POST”,
data: {
“grant_type”: “client_credentials”,
“client_id”: clientId,
“client_secret”: clientSecret,
“resource”: resource
},
success: function(response) {
var accessToken = response.access_token;
console.log(“Access Token:”, accessToken);
if (typeof callback === ‘function’) {
callback(accessToken);
}
},
error: function(error) {
console.error(“Error getting access token:”, error);
}
});
}
});
</script>@surez @CDFFAB @bessd Read More