Releases: vgrem/Office365-REST-Python-Client
Releases · vgrem/Office365-REST-Python-Client
v 2.5.13
v 2.5.12
v 2.5.11
v 2.5.10
v 2.5.9
Changelog
v 2.5.8
Changelog
- SharePoint resources addressing enhancements
- introduced methods for granting and revoking delegated & application permissions
Example 1: grant an app role to a client service principal
client = GraphClient.with_token_interactive(
tenant_name_or_id, app_client_id, admin_principal_name
)
resource = client.service_principals.get_by_name("Microsoft Graph")
app = client.applications.get_by_app_id(app_client_id)
resource.grant_application(app, "MailboxSettings.Read").execute_query()
Example 2: grant a delegated permission to the client service principal on behalf of a user
client = GraphClient.with_token_interactive(
tenant_name_or_id, app_client_id, admin_principal_name
)
resource = client.service_principals.get_by_name("Microsoft Graph")
app_role = "User.Read.All"
user = client.users.get_by_principal_name(test_user_principal_name)
resource.grant_delegated(app_client_id, user, app_role).execute_query()
v 2.5.7
Changelog
- #836: support for passing a passphrase in
ClientContext.with_client_certificate
method
Example:
cert_credentials = {
"tenant": tenant_name,
"client_id": client_id,
"thumbprint": cert_thumbprint,
"cert_path": "selfsignkeyenc.pem",
"passphrase": "Password",
}
ctx = ClientContext(site_url).with_client_certificate(**cert_credentials)
current_web = ctx.web.get().execute_query()
v 2.5.6
Changelog
- #693: support for folder coloring methods in SharePoint API
Example: create a folder with a color
ctx = ClientContext(site_url).with_credentials(user_credentials)
root_folder = ctx.web.default_document_library().root_folder
folder = root_folder.folders.add(
"archive", color_hex=FolderColors.DarkGreen
).execute_query()
v 2.5.5
Changelog
- #745: better support for Range in OneDrive API
Example: get Range
client = GraphClient.with_username_and_password(
tenant_name, client_id, username, password
)
drive_item = client.me.drive.root.get_by_path("Financial Report.xlsx")
worksheets = drive_item.workbook.worksheets.get().execute_query()
if len(worksheets) == 0:
sys.exit("No worksheets found")
worksheet_range = worksheets["Sheet1"].range(address="A1:B3").execute_query()