{"library":"office365-rest-python-client","code":"import os\nfrom office365.sharepoint.client_context import ClientContext\nfrom office365.runtime.auth.client_credential import ClientCredential\n\n# --- Configuration (replace with your actual values or set as environment variables) ---\nsharepoint_site_url = os.environ.get('SHAREPOINT_SITE_URL', 'https://yourtenant.sharepoint.com/sites/yoursite')\nclient_id = os.environ.get('M365_CLIENT_ID', '')\nclient_secret = os.environ.get('M365_CLIENT_SECRET', '')\n\nif not all([sharepoint_site_url, client_id, client_secret]):\n    print(\"Error: Please set SHAREPOINT_SITE_URL, M365_CLIENT_ID, and M365_CLIENT_SECRET environment variables.\")\n    exit(1)\n\ntry:\n    # Initialize ClientContext with app-only credentials\n    ctx = ClientContext(sharepoint_site_url).with_credentials(ClientCredential(client_id, client_secret))\n    \n    # Load the web object and execute the query\n    ctx.load(ctx.web)\n    ctx.execute_query()\n    \n    print(f\"Successfully connected to SharePoint site: {ctx.web.url}\")\n    print(f\"Web title: {ctx.web.title}\")\n\nexcept Exception as e:\n    print(f\"An error occurred: {e}\")\n    print(\"Ensure your Azure AD application is registered, has the necessary API permissions (e.g., 'Sites.Read.All' or 'Sites.FullControl.All'), and admin consent has been granted.\")\n","lang":"python","description":"This quickstart demonstrates how to connect to a SharePoint site using application (client ID and secret) authentication via the `ClientContext`. It retrieves and prints the site's URL and title. Ensure your Azure AD application is registered with appropriate permissions (e.g., 'Sites.Read.All' or 'Sites.FullControl.All') and that admin consent is granted in the Azure Portal. It's recommended to use environment variables for sensitive credentials.","tag":null,"tag_description":null,"last_tested":"2026-04-24","results":[{"runtime":"python:3.10-alpine","exit_code":1},{"runtime":"python:3.10-slim","exit_code":1},{"runtime":"python:3.11-alpine","exit_code":1},{"runtime":"python:3.11-slim","exit_code":1},{"runtime":"python:3.12-alpine","exit_code":1},{"runtime":"python:3.12-slim","exit_code":1},{"runtime":"python:3.13-alpine","exit_code":1},{"runtime":"python:3.13-slim","exit_code":1},{"runtime":"python:3.9-alpine","exit_code":1},{"runtime":"python:3.9-slim","exit_code":1}]}