Forum Discussion

Sonu97355's avatar
Sonu97355
Copper Contributor
Apr 25, 2024

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>

surez CDFFAB bessd 

No RepliesBe the first to reply

Resources