Skip to content

Commit 85117e6

Browse files
committed
SharePoint API: workflowservices namespace introduced, examples section refactoring
1 parent 5431363 commit 85117e6

25 files changed

+728
-34
lines changed

examples/__init__.py

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,34 @@
1+
import os
2+
13
import msal
24

35
from tests import settings
46

5-
6-
test_user_principal_name = settings.get('users', 'test_user1')
7-
test_user_principal_name_alt = settings.get('users', 'test_user2')
8-
9-
tenant_prefix = settings.get('default', 'tenant_prefix')
10-
tenant_name = settings.get('default', 'tenant')
7+
#shortcuts
8+
sample_client_id = settings.get('client_credentials', 'client_id')
9+
sample_user_principal_name = settings.get('users', 'test_user1')
10+
sample_user_principal_name_alt = settings.get('users', 'test_user2')
11+
sample_tenant_prefix = settings.get('default', 'tenant_prefix')
12+
sample_tenant_name = settings.get('default', 'tenant')
13+
sample_thumbprint = settings.get('certificate_credentials', 'thumbprint')
14+
sample_cert_path = '{0}/selfsigncert.pem'.format(os.path.dirname(__file__))
1115

1216

1317
def acquire_token_by_client_credentials():
14-
authority_url = 'https://login.microsoftonline.com/{0}'.format(settings.get('default', 'tenant'))
18+
authority_url = 'https://login.microsoftonline.com/{0}'.format(sample_tenant_name)
1519
app = msal.ConfidentialClientApplication(
1620
authority=authority_url,
17-
client_id=settings.get('client_credentials', 'client_id'),
21+
client_id=sample_client_id,
1822
client_credential=settings.get('client_credentials', 'client_secret')
1923
)
2024
return app.acquire_token_for_client(scopes=["https://graph.microsoft.com/.default"])
2125

2226

2327
def acquire_token_by_username_password():
24-
authority_url = 'https://login.microsoftonline.com/{0}'.format(settings.get('default', 'tenant'))
28+
authority_url = 'https://login.microsoftonline.com/{0}'.format(sample_tenant_name)
2529
app = msal.PublicClientApplication(
2630
authority=authority_url,
27-
client_id=settings.get('client_credentials', 'client_id')
31+
client_id=sample_client_id
2832
)
2933
return app.acquire_token_by_username_password(username=settings.get('user_credentials', "username"),
3034
password=settings.get('user_credentials', "password"),
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
from examples import sample_tenant_name, sample_client_id, sample_thumbprint, sample_cert_path
2+
from office365.graph_client import GraphClient
3+
4+
5+
def acquire_token_with_client_certificate():
6+
with open(sample_cert_path, 'r') as f:
7+
private_key = open(sample_cert_path).read()
8+
9+
authority_url = 'https://login.microsoftonline.com/{0}'.format(sample_tenant_name)
10+
credentials = {"thumbprint": sample_thumbprint, "private_key": private_key}
11+
import msal
12+
app = msal.ConfidentialClientApplication(
13+
sample_client_id,
14+
authority=authority_url,
15+
client_credential=credentials,
16+
)
17+
result = app.acquire_token_for_client(scopes=["https://graph.microsoft.com/.default"])
18+
return result
19+
20+
21+
client = GraphClient(acquire_token_with_client_certificate)
22+
drives = client.drives.get().top(10).execute_query()
23+
for drive in drives:
24+
print(drive.web_url)

examples/onedrive/export_files.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@
55
import os
66
import tempfile
77

8-
from examples import acquire_token_by_client_credentials, test_user_principal_name
8+
from examples import acquire_token_by_client_credentials, sample_user_principal_name
99
from office365.graph_client import GraphClient
1010
from office365.onedrive.drives.drive import Drive
1111

1212
client = GraphClient(acquire_token_by_client_credentials)
1313

1414

15-
drive = client.users[test_user_principal_name].drive # type: Drive
15+
drive = client.users[sample_user_principal_name].drive # type: Drive
1616
with tempfile.TemporaryDirectory() as local_path:
1717
drive_items = drive.root.children.get().execute_query()
1818
file_items = [item for item in drive_items if item.file is not None] # files only

examples/onedrive/get_file_by_abs_url.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
from examples import acquire_token_by_username_password, tenant_prefix
1+
from examples import acquire_token_by_username_password, sample_tenant_prefix
22
from office365.graph_client import GraphClient
33

4-
file_abs_url = "https://{0}.sharepoint.com/sites/team/Shared Documents/big_buck_bunny.mp4".format(tenant_prefix)
4+
file_abs_url = "https://{0}.sharepoint.com/sites/team/Shared Documents/big_buck_bunny.mp4".format(sample_tenant_prefix)
55

66
client = GraphClient(acquire_token_by_username_password)
77
file_item = client.shares.by_url(file_abs_url).drive_item.get().execute_query()

examples/onedrive/upload_file.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import os
22

3-
from examples import acquire_token_by_client_credentials, test_user_principal_name_alt
3+
from examples import acquire_token_by_client_credentials, sample_user_principal_name_alt
44
from office365.graph_client import GraphClient
55

66

77
client = GraphClient(acquire_token_by_client_credentials)
88

9-
remote_drive = client.users[test_user_principal_name_alt].drive.root.get_by_path("archive")
9+
remote_drive = client.users[sample_user_principal_name_alt].drive.root.get_by_path("archive")
1010

1111
local_path = "../../tests/data/SharePoint User Guide.docx"
1212
# local_path = "../data/countries.json"

examples/outlook/download_messages.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
import os
22
import tempfile
33

4-
from examples import acquire_token_by_client_credentials, test_user_principal_name
4+
from examples import acquire_token_by_client_credentials, sample_user_principal_name
55
from office365.graph_client import GraphClient
66
from office365.outlook.mail.messages.message import Message
77

88
client = GraphClient(acquire_token_by_client_credentials)
99
# requires Mail.ReadWrite permission
10-
user = client.users[test_user_principal_name]
10+
user = client.users[sample_user_principal_name]
1111
messages = user.messages.select(["id"]).top(2).get().execute_query()
1212
with tempfile.TemporaryDirectory() as local_path:
1313
for message in messages: # type: Message

examples/outlook/download_messages_with_attachments.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import os
22
import tempfile
33

4-
from examples import acquire_token_by_client_credentials, test_user_principal_name
4+
from examples import acquire_token_by_client_credentials, sample_user_principal_name
55
from office365.graph_client import GraphClient
66
from office365.outlook.mail.attachments.attachment import Attachment
77
from office365.outlook.mail.messages.message import Message
@@ -10,7 +10,7 @@
1010
# Permissions: requires Mail.ReadWrite
1111

1212
client = GraphClient(acquire_token_by_client_credentials)
13-
user = client.users[test_user_principal_name]
13+
user = client.users[sample_user_principal_name]
1414
messages = user.messages.filter("hasAttachments eq true").expand(["attachments"]).top(1).get().execute_query()
1515
with tempfile.TemporaryDirectory() as local_path:
1616
for message in messages: # type: Message
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
from examples import acquire_token_by_client_credentials, test_user_principal_name
1+
from examples import acquire_token_by_client_credentials, sample_user_principal_name
22
from office365.graph_client import GraphClient
33
from office365.outlook.mail.messages.message import Message
44

55
# Demonstrates how to read messages (only basic properties!) in user mailbox
66

77
client = GraphClient(acquire_token_by_client_credentials)
88
# requires Mail.ReadBasic.All permission
9-
user = client.users[test_user_principal_name]
9+
user = client.users[sample_user_principal_name]
1010
messages = user.messages.select(["id", "subject"]).top(10).get().execute_query()
1111
for message in messages: # type: Message
1212
print(message.id)
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
from examples import acquire_token_by_client_credentials, test_user_principal_name
1+
from examples import acquire_token_by_client_credentials, sample_user_principal_name
22
from office365.graph_client import GraphClient
33
from office365.outlook.mail.messages.message import Message
44

55
client = GraphClient(acquire_token_by_client_credentials)
66
# requires Mail.Read permission
7-
user = client.users[test_user_principal_name]
7+
user = client.users[sample_user_principal_name]
88
messages = user.messages.select(["subject", "body"]).top(10).get().execute_query()
99
for message in messages: # type: Message
1010
print(message.body.content)

examples/sharepoint/applauncher/__init__.py

Whitespace-only changes.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
from office365.sharepoint.base_entity import BaseEntity
2+
3+
4+
class AppLauncher(BaseEntity):
5+
pass

examples/sharepoint/sites/grant_app_access.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"""
88
import sys
99

10-
from examples import acquire_token_by_client_credentials, test_user_principal_name_alt
10+
from examples import acquire_token_by_client_credentials, sample_user_principal_name_alt
1111
from office365.graph_client import GraphClient
1212
from office365.onedrive.permissions.permission import Permission
1313
from office365.sharepoint.client_context import ClientContext
@@ -45,7 +45,7 @@ def assign_site_access(site_url, roles=None, clear_existing=False):
4545

4646
def verify_site_access():
4747
ctx = ClientContext(test_team_site_url).with_credentials(test_client_credentials)
48-
site = ctx.web.site_users.get_by_email(test_user_principal_name_alt).get_personal_site().execute_query()
48+
site = ctx.web.site_users.get_by_email(sample_user_principal_name_alt).get_personal_site().execute_query()
4949
print(site.url)
5050

5151

generator/import_metadata.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ def export_to_file(path, content):
1515

1616
parser = ArgumentParser()
1717
parser.add_argument("-e", "--endpoint", dest="endpoint",
18-
help="Import metadata endpoint", default="microsoftgraph")
18+
help="Import metadata endpoint", default="sharepoint")
1919
parser.add_argument("-p", "--path",
20-
dest="path", default="./metadata/MicrosoftGraph.xml",
20+
dest="path", default="./metadata/SharePoint.xml",
2121
help="Import metadata endpoint")
2222

2323
args = parser.parse_args()

0 commit comments

Comments
 (0)