Skip to main content

This package contains API wrappers to simplify interaction with Microsoft Graph API through Python functions.

Project description

msgraph-py

Description

This package contains API wrappers to simplify interaction with Microsoft Graph API through Python functions.

Some of the benefits of msgraph-py are:

  • Automatic caching and renewal of access tokens, avoiding unnecessary API-calls.
  • Sets the correct headers and parameters for you when required (advanced queries).
  • Pages results automatically when retrieving large datasets.
  • Useful logging and error messages with the Python logging module.
  • Optional integration with Django settings.py for reading environment variables.

[!NOTE]
The latest published version of this package can be found at pypi.org/project/msgraph-py

List of available functions

Identity

Groups

Devices

Mail

Getting Started

  1. Create an app registration in Entra ID with the necessary Graph application permissions for the functions you intend to use:
    Authentication and authorization steps

  2. Install the latest version of the package:

    python3 -m pip install msgraph-py
    
  3. Configure environment variables:

    • If used within a Django project, msgraph-py will by default first attempt to load the following variables from the project's settings.py:

      # project/settings.py
      
      AAD_TENANT_ID = "00000000-0000-0000-0000-000000000000"
      AAD_CLIENT_ID = "00000000-0000-0000-0000-000000000000"
      AAD_CLIENT_SECRET = "client-secret-value"
      
    • Alternatively you will need to set the following key-value pairs in os.environ:

      import os
      
      os.environ["AAD_TENANT_ID"] = "00000000-0000-0000-0000-000000000000"
      os.environ["AAD_CLIENT_ID"] = "00000000-0000-0000-0000-000000000000"
      os.environ["AAD_CLIENT_SECRET"] = "client-secret-value"
      

[!WARNING]
You should never store sensitive credentials or secrets in production code or commit them to your repository. Always load them at runtime from a secure location or from a local file excluded from the repository.

Usage examples

Get a single user by objectId or userPrincipalName

from msgraph import get_user

user = get_user("user@example.com")

List of returned properties for user resource type.

Get a list of users using advanced query parameters

from msgraph import get_user

filtered_users = get_user(
    filter="startsWith(department, 'sales')",
    select=[
        "displayName",
        "department",
        "createdDateTime",
    ],
    orderby="createdDateTime desc",
    all=True,
)

List of returned properties for user resource type.

Get a users Entra ID joined devices

from msgraph import list_owned_devices

user_devices = list_owned_devices(
    user_id="user@example.com",
    filter="isManaged eq true and trustType eq 'AzureAd'",
    select=[
        "deviceId",
        "displayName",
        "isCompliant",
        "approximateLastSignInDateTime",
    ],
    orderby="approximateLastSignInDateTime desc",
)

List of returned properties for device resource type.

Send an e-mail with attachments

from msgraph import send_mail

send_mail(
    sender_id="noreply@example.com",
    recipients=[
        "john.doe@example.com",
        "jane.doe@example.com",
    ],
    subject="Mail from Graph API",
    body="<h1>Content of the mail body</h1>",
    is_html=True,
    priority="high",
    attachments=[
        "/path/to/file1.txt",
        "/path/to/file2.txt",
    ],
)

API documentation

Resource types and properties

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

msgraph_py-1.3.1.tar.gz (17.4 kB view details)

Uploaded Source

Built Distribution

msgraph_py-1.3.1-py3-none-any.whl (16.5 kB view details)

Uploaded Python 3

File details

Details for the file msgraph_py-1.3.1.tar.gz.

File metadata

  • Download URL: msgraph_py-1.3.1.tar.gz
  • Upload date:
  • Size: 17.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for msgraph_py-1.3.1.tar.gz
Algorithm Hash digest
SHA256 d05561ae1c247191044967d6ef2fadf8d643354f5d621590b7a6141559416924
MD5 bc0cab77197ae07067335ef1dc051a69
BLAKE2b-256 ba8807578a82384d07c7cb97fedd6b3c4fb39114167b01f503abcd9b97be34a3

See more details on using hashes here.

Provenance

The following attestation bundles were made for msgraph_py-1.3.1.tar.gz:

Publisher: release.yml on fedamerd/msgraph-py

Attestations:

File details

Details for the file msgraph_py-1.3.1-py3-none-any.whl.

File metadata

  • Download URL: msgraph_py-1.3.1-py3-none-any.whl
  • Upload date:
  • Size: 16.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for msgraph_py-1.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 118526448beef1777337b4a3348a6d63e2e2ca335e4726256c3f961e77970841
MD5 a9394f362f2a188a95a31fefe7b6a961
BLAKE2b-256 ca8bfd6ba7b7971969bc7550335cfe631bd5aab8612d193bfbab559fbdedf64c

See more details on using hashes here.

Provenance

The following attestation bundles were made for msgraph_py-1.3.1-py3-none-any.whl:

Publisher: release.yml on fedamerd/msgraph-py

Attestations:

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page