CSOM Retrieving ListItemCollection is empty

%3CLINGO-SUB%20id%3D%22lingo-sub-1825053%22%20slang%3D%22en-US%22%3ERe%3A%20CSOM%20Retrieving%20ListItemCollection%20is%20empty%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1825053%22%20slang%3D%22en-US%22%3E%3CP%3EI've%20have%20found%20the%20similar%20issue%20with%20SharePoint%202013%2C%20but%20this%20trick%20doesn't%20work%20for%20me.%20May%20be%20I%20should%20take%20a%20different%20approach%20to%20access%20the%20items%3F%3CBR%20%2F%3E%3CA%20href%3D%22https%3A%2F%2Fsharepoint.stackexchange.com%2Fquestions%2F191493%2Fmodify-the-writesecurity-property-for-an-issue-tracking-list%2F191500%23191500%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fsharepoint.stackexchange.com%2Fquestions%2F191493%2Fmodify-the-writesecurity-property-for-an-issue-tracking-list%2F191500%23191500%3C%2FA%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1824714%22%20slang%3D%22en-US%22%3ECSOM%20Retrieving%20ListItemCollection%20is%20empty%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1824714%22%20slang%3D%22en-US%22%3E%3CP%3EHello%20everyone%2C%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EI%20have%20tried%20to%20make%20a%20simple%20console%20application%20that%20retrieves%20list%20items%20from%20Share%20Point%20Online.%20It%20works%20fine%20when%20I%20retrieve%20list%20of%20the%20sites%20or%20list%20titles%20from%20the%20site%2C%20but%20I%20receive%20no%20list%20items%20when%20I%20try%20to%20get%20it%20from%20the%20particular%20list.%20Source%20list%20contains%20less%20then%2050%20items%20and%20this%20list%20was%20made%20by%20using%20%3CSPAN%3E%22GenericList%22%20template%20(%22CustomList%22%2C%20ListTemplateId%3D100).%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3EI've%20listed%20many%20examples%20of%20similar%20tasks%20and%20almost%20all%20of%20them%20were%20written%20in%20the%20same%20way.%20That's%20why%20I%20don't%20exclude%20that%20thet%20reason%20of%20my%20case%20might%20be%20in%20an%20insufficient%20permissions%20(I%20attach%20a%20screenshot%20of%20the%20API%20permissions).%3C%2FP%3E%3CP%3E%3CBR%20%2F%3EAlso%20I%20checked%20that%20item-level%20permissions%20is%20set%20to%20%221%22%20-%20allow%20user%20read%20all%20items.%3C%2FP%3E%3CP%3EPlease%2C%20check%20my%20code%20and%20app%20permissions.%20Any%20help%20will%20be%20highly%20appreciated.%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-csharp%22%3E%3CCODE%3Eusing%20System%3B%0Ausing%20System.Collections.Generic%3B%0Ausing%20System.Linq%3B%0Ausing%20System.Text%3B%0Ausing%20System.Security%3B%0Ausing%20System.Threading.Tasks%3B%0Ausing%20Microsoft.SharePoint.Client%3B%0Ausing%20SP%20%3D%20Microsoft.SharePoint.Client%3B%0A%0Anamespace%20SharePointTrigger%0A%7B%0A%20%20%20%20class%20Program%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20static%20async%20Task%20Main(string%5B%5D%20args)%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20Uri%20site%20%3D%20new%20Uri(%22https%3A%2F%2FMyCompany.sharepoint.com%2Fsites%2FMyProject%22)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20string%20user%20%3D%20%24%22ServiceUser%40MyCompany.com%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20string%20rawPassword%20%3D%20%24%22password%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20SecureString%20password%20%3D%20new%20SecureString()%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20foreach%20(char%20c%20in%20rawPassword)%20password.AppendChar(c)%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20using%20(var%20authenticationManager%20%3D%20new%20AuthenticationManager())%20%2F%2FHELPER%20CLASS%20TO%20OBTAIN%20ACCESS%20TOKEN%0A%20%20%20%20%20%20%20%20%20%20%20%20using%20(var%20context%20%3D%20authenticationManager.GetContext(site%2C%20user%2C%20password))%0A%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2FRETRIVING%20LIST%20TITLE%20-%20WORKS%20FINE%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F*%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Web%20web%20%3D%20context.Web%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20context.Load(web.Lists%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20lists%20%3D%26gt%3B%20lists.Include(list%20%3D%26gt%3B%20list.Title%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20list%20%3D%26gt%3B%20list.Id))%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20context.ExecuteQuery()%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20foreach%20(SP.List%20list%20in%20web.Lists)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Console.WriteLine(list.Title)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*%2F%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2FRETRIVING%20LIST%20ITEM%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Web%20myWeb%20%3D%20context.Web%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20SP.List%20myList%20%3D%20myWeb.Lists.GetByTitle(%22List_of_Items%22)%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20SP.ListItemCollection%20listItemCollection%20%3D%20myList.GetItems(CamlQuery.CreateAllItemsQuery())%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20context.Load(listItemCollection%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20eachItem%20%3D%26gt%3B%20eachItem.Include(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20item%20%3D%26gt%3B%20item%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20item%20%3D%26gt%3B%20item%5B%22Title%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20item%20%3D%26gt%3B%20item%5B%22ID%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20)%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20context.ExecuteQuery()%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20foreach%20(SP.ListItem%20listItem%20in%20listItemCollection)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Console.WriteLine(%22ID%3A%20%22%20%2B%20listItem%5B%22ID%22%5D.ToString()%20%2B%20%22Title%3A%20%22%20%2B%20(string)listItem%5B%22Title%22%5D.ToString())%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Console.ReadKey()%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%7D%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22API_Permissions.jpg%22%20style%3D%22width%3A%20999px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F229606iEA6EF835DD8593DB%2Fimage-size%2Flarge%3Fv%3D1.0%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22API_Permissions.jpg%22%20alt%3D%22API_Permissions.jpg%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E
Regular Visitor

Hello everyone,

 

I have tried to make a simple console application that retrieves list items from Share Point Online. It works fine when I retrieve list of the sites or list titles from the site, but I receive no list items when I try to get it from the particular list. Source list contains less then 50 items and this list was made by using "GenericList" template ("CustomList", ListTemplateId=100).

I've listed many examples of similar tasks and almost all of them were written in the same way. That's why I don't exclude that thet reason of my case might be in an insufficient permissions (I attach a screenshot of the API permissions).


Also I checked that item-level permissions is set to "1" - allow user read all items.

Please, check my code and app permissions. Any help will be highly appreciated.

 

 

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Security;
using System.Threading.Tasks;
using Microsoft.SharePoint.Client;
using SP = Microsoft.SharePoint.Client;

namespace SharePointTrigger
{
    class Program
    {
        static async Task Main(string[] args)
        {
            Uri site = new Uri("https://MyCompany.sharepoint.com/sites/MyProject");
            string user = $"ServiceUser@MyCompany.com";
            string rawPassword = $"password";
            SecureString password = new SecureString();
            foreach (char c in rawPassword) password.AppendChar(c);

            using (var authenticationManager = new AuthenticationManager()) //HELPER CLASS TO OBTAIN ACCESS TOKEN
            using (var context = authenticationManager.GetContext(site, user, password))
            {

                //RETRIVING LIST TITLE - WORKS FINE
                /*
                Web web = context.Web;
                context.Load(web.Lists,
                lists => lists.Include(list => list.Title,
                                    list => list.Id));

                context.ExecuteQuery();

                foreach (SP.List list in web.Lists)
                {
                    Console.WriteLine(list.Title);
                }
                */

                //RETRIVING LIST ITEM
                Web myWeb = context.Web;
                SP.List myList = myWeb.Lists.GetByTitle("List_of_Items");

                SP.ListItemCollection listItemCollection = myList.GetItems(CamlQuery.CreateAllItemsQuery());

                context.Load(listItemCollection,
                            eachItem => eachItem.Include(
                                                        item => item,
                                                        item => item["Title"],
                                                        item => item["ID"]
                                                        )
                            );

                context.ExecuteQuery();

                foreach (SP.ListItem listItem in listItemCollection)
                {
                    Console.WriteLine("ID: " + listItem["ID"].ToString() + "Title: " + (string)listItem["Title"].ToString());

                }
                Console.ReadKey();
            }
        }
    }
}

 

 

 

 

API_Permissions.jpg

 

 

 

0 Replies