Msgraph Sdk Python Save Abandoned

Microsoft Graph SDK for Python.

Project README

Microsoft Graph SDK for Python

This library is no longer actively supported. To integrate Microsoft Graph into your Python solution, we recommend using REST and taking a look at our new Python samples and documentation.


Build status PyPI version

Please note that this SDK is in preview at current time - feel free to provide feedback/report issues as appropriate.

Installation

Once you've downloaded the Graph SDK for Python, open a command prompt and type the following to install it:

pip install msgraph

Next, include the SDK in your Python project by adding:

import msgraph

Getting Started with Microsoft Graph

Registering your application

Register your application to use the Microsoft Graph API by using one of the following supported authentication portals:

  • Microsoft Application Registration Portal (Recommended): Register a new application that authenticates using the v2.0 authentication endpoint. This endpoint authenticates both personal (Microsoft) and work or school (Azure Active Directory) accounts.
  • Microsoft Azure Active Directory: Register a new application in your tenant's Active Directory to support work or school users for your tenant, or multiple tenants.

Authentication

To interact with the Graph API, your app must authenticate. Choose the scopes needed for your app.

Graph uses OAuth to Authenticate. Use the following endpoints to authenticate: https://login.microsoftonline.com/common/oauth2/v2.0/authorize

https://login.microsoftonline.com/common/oauth2/v2.0/token

You must implement an authentication provider that derives from AuthProviderBase. Once that is complete, the graph client will use the supplied provider for authenticating calls to the graph.

Examples

Note: All examples assume that your app has already been authenticated.

Creating a client

import msgraph

graph_base_url = 'https://graph.microsoft.com/v1.0/'
http_provider = msgraph.HttpProvider()
auth_provider = <instantiate your auth provider implementation here>

client = msgraph.GraphServiceClient(graph_base_url, http_provider, auth_provider)

Upload an Item

returned_item = client.item(drive="me", id="root").children["newfile.txt"].upload("./path_to_file.txt")

Download an Item

root_folder = client.item(drive="me", id="root").children.get()
id_of_file = root_folder[0].id

client.item(drive="me", id=id_of_file).download("./path_to_download_to.txt")

Add a folder

f = graph.Folder()
i = graph.Item()
i.name = "New Folder"
i.folder = f

returned_item = client.item(drive="me", id="root").children.add(i)

Copy an Item

from msgraph.item_reference import ItemReference

ref = ItemReference()
ref.id = "yourparent!id" #path also supported

copy_operation = client.item(drive="me", id="youritemtocopy!id").copy(name="new copied name", parent_reference=ref).post()

#copy_operation.item will return None until the copy has completed.
#If you would like to block until the operation has been completed
#and copy_operation.item is no longer None
copy_operation.poll_until_complete()

Rename an Item

renamed_item = graph.Item()
renamed_item.name = "NewItemName"
renamed_item.id = "youritemtorename!id"

new_item = client.item(drive="me", id=renamed_item.id).update(renamed_item)

Paging through a collection

#get the top three elements of root, leaving the next page for more elements
collection = client.item(drive="me", id="root").children.request(top=3).get()

#get the first item in the collection
item = collection[0]

#get the next page of three elements, if none exist, returns None
collection2 = collection.next_page_request.get()

Async operations

For async operations, you can create an asyncio.coroutine and execute it with loop.run_until_complete.

import asyncio

@asyncio.coroutine
def run_gets(client):
    coroutines = [client.drive("me").request().get_async() for i in range(3)]
    for future in asyncio.as_completed(coroutines):
        drive = yield from future
        print(drive.id)

loop = asyncio.get_event_loop()
loop.run_until_complete(run_gets(client))   

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

Open Source Agenda is not affiliated with "Msgraph Sdk Python" Project. README Source: microsoftarchive/msgraph-sdk-python
Stars
48
Open Issues
0
Last Commit
6 years ago

Open Source Agenda Badge

Open Source Agenda Rating