Sharepoint

These are the scopes needed to work with the SharePoint and Site classes.

Raw Scope

Included in Scope Helper

Description

Sites.Read.All

sharepoint

To only read sites, lists and items

Sites.ReadWrite.All

sharepoint_dl

To read and save sites, lists and items

Assuming an authenticated account, create a Sharepoint instance, and connect to a Sharepoint site.

#Create Sharepoint instance and connect to a site
from O365 import Account
acct = Account(('app_id', 'app_pw'))
sp_site = acct.sharepoint().get_site('root', 'path/tosite')

Common commands for sp_site include .display_name, .get_document_library(), .get_subsites(), .get_lists(), and .get_list_by_name('list_name').

Accessing Subsites

If a Sharepoint site contains subsites they can be returned as a list of Sharepoint sites by the .get_subsites() function.

#Return a List of subsites
sp_site_subsites = sp_site.get_subsites()
print(sp_sites_subsites)
[Site: subsitename1, Site: subsitename2]

#Make another Site object from a desired subsite
new_sp_site = sp_site_subsites[0] #return the first subsite

Sharepoint Lists

Sharepoint Lists are accessible from their Sharepoint site using .get_lists() which returns a Python list of Sharepoint list objects. A known list can be accessed by providing a list_name to .get_list_by_name('list_name') which will return the requested list as a sharepointlist object.

#Return a list of sharepoint lists
sp_site_lists = sp_site.get_lists()

#Return a specific list by name
sp_list = sp_site.get_list_by_name('list_name')

Commmon functions on a Sharepoint list include .get_list_columns(), .get_items(), .get_item_by_id(), .create_list_item(), .delete_list_item().

Sharepoint List Items

Accessing a list item from a Sharepoint list is done by utilizing .get_items(), or .get_item_by_id(item_id).

#Return a list of sharepoint list Items
sp_list_items = sp_list.get_items()

#Return a specific sharepoint list item by its object ID
sp_list_item = sp_list.get_item_by_id(item_id)

Creating & Deleting Sharepoint Items

A Sharepoint list item can be created by passing the new data in a dictionary consisting of {'column_name': 'new_data'}. Not all columns in the Sharepoint list have to be accounted for in the dictionary, any Sharepoint List column not in the dictionary will be filled with a blank. The column_name must be the internal column name of the sharepoint list. .column_name_cw of a sharepoint list will provide a dictionary of {'Display Name': 'Internal Name'} if needed.

#Create a new sharepoint list item
new_item = sp_list.create_list_item({'col1': 'New Data Col 1',
                                     'col2': 'New Data Col 2'})

#Delete the item just created
sp_list.delete_list_item(new_item.object_id)  #Pass the item ID to be deleted

Updating a Sharepoint List Item

Sharepoint list items can be updated by passing a dictionary of {'column_name': 'Updated Data'} to the .update_fields() function of a Sharepoint list item. The column_name keys of the dictionary must again refer to the internal column name, otherwise an error will occur.

#Update a Sharepoint List item
new_item.update_fields({'col1': 'Updated Data Col1',
                        'col2': 'Updated Data Col2'})

#Once done updating a sharepoint item save changes to the cloud
new_item.save_updates() #Returns True if successful