Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message
Microsoft Graph

Microsoft Graph Laravel Package

microsoft/microsoft-graph

The Microsoft Graph SDK for PHP lets you authenticate with Azure AD and call Microsoft 365 APIs to work with users, mail, files, calendars, and Teams from your PHP apps. Requires PHP 8.2+ and Composer.

View on GitHub
Deep Wiki
Context7

Microsoft Graph Library for PHP.

Frequently asked questions about Microsoft Graph
How do I install microsoft/microsoft-graph in a Laravel project?
Install it with Composer by requiring microsoft/microsoft-graph, such as ^3.5.0, in your Laravel project. The SDK requires PHP 8.2 or later, so confirm your Laravel runtime meets that version before adding it. After installation, you can bind GraphServiceClient or your own wrapper in a Laravel service provider.
Is microsoft/microsoft-graph compatible with Laravel?
Yes, the SDK is a PHP 8.2+ library that can integrate with Laravel's dependency injection container, service providers, and middleware. It does not ship native Laravel Auth, session, or cache integrations, so you will typically add a service provider, OAuth middleware, and a persistent token cache yourself. Its PSR-friendly design and Composer packaging keep integration friction low.
How do I register GraphServiceClient in Laravel's service container?
Create a service provider or use AppServiceProvider to bind GraphServiceClient as a singleton or scoped instance. Build the TokenRequestContext and authentication provider from configuration values, then pass them into the GraphServiceClient constructor. Resolving the client through the container lets controllers, jobs, and middleware share the same configuration cleanly.
Which Microsoft Graph OAuth flow should I use in Laravel?
Use client credentials for app-only background jobs and service-to-service calls with application permissions. Use authorization code for user-delegated access when users sign in, and on-behalf-of when a Laravel API must call Graph in the context of an incoming user token. The SDK provides TokenRequestContext classes for client_credentials, authorization_code, and on_behalf_of.
Can Laravel's cache store Microsoft Graph access tokens?
The SDK includes token caching, but its default in-memory cache is process-bound and not ideal for Laravel's stateless or multi-server deployments. You can replace it with a custom cache implementation backed by Laravel's cache system, such as Redis or the database, for persistence across requests and queue workers. Make sure the cache key and expiration logic align with Microsoft identity token lifetimes and refresh behavior.
How do I use client credentials authentication with microsoft/microsoft-graph in Laravel?
Create a ClientCredentialContext with your tenant ID, client ID, and client secret, then pass it to GraphPhpLeagueAuthenticationProvider to build the Graph client. Store those credentials in Laravel configuration or environment variables rather than hard-coding them. This flow is best for app-only operations such as scheduled jobs, admin tasks, and service-to-service Microsoft 365 integrations.
Does microsoft/microsoft-graph support async requests in Laravel?
Yes, the SDK uses Promises for async operations, which can help with non-blocking Microsoft Graph calls. In Laravel, you need to manage Promise resolution carefully inside synchronous controllers or move time-sensitive work to queue workers. Avoid leaving unresolved Promises in the request lifecycle, and handle failures through the SDK's exception model.
How should I handle Microsoft Graph API errors in Laravel?
Catch Graph SDK exceptions such as ApiException and translate them into Laravel-appropriate responses, logs, or retries. For OAuth and token issues, surface clear authentication errors and avoid leaking secrets or raw tokens. Consider centralizing Graph error handling in a service wrapper or exception handler so controllers and jobs stay consistent.
What are alternatives to microsoft/microsoft-graph for Laravel?
For simple Graph calls, raw Laravel HTTP client requests with Guzzle can be lighter than the full SDK, especially for basic CRUD. For OAuth handling, you may combine Laravel Socialite or League OAuth2 with custom Graph requests. The official SDK remains a strong choice when you want typed models, modular authentication contexts, and coverage of many Microsoft Graph endpoints.
Is microsoft/microsoft-graph production-ready and maintained for Laravel apps?
The SDK is an official Microsoft Graph PHP library with Composer releases, PHP 8.2+ support, and regular updates that you should track against your Laravel release cycle. It is production-ready for many integrations, but Laravel teams must add their own service provider, token cache, OAuth redirect handling, and error translation. Because Microsoft Graph evolves frequently, pin versions and test upgrades before deploying.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
robertmarney/lara-hierarchial-collections
simonschaufi/rule-doc-generator
emissaoja/emissaoja
blackbricksoftware/gravityforms-civicrm-form-processor
al-rahabi/fancy-crud
jinas/dhivatar-component
mltstephane/laravel-quality
bernskiold/laravel-talentlms
bernskioldmedia/laravel-form-architect
youbar/easy-crud
c-point-labs/laravel-hostyourai
dbravoan/dbcms-admin-theme-dbcms
dbravoan/dbcms-theme-db-cyber
dbravoan/dbcms-blocks-basic
dbravoan/dbcms-module-content-audit
dbravoan/dbcms-module-ai-assistant
paygate-to/paygate-php
padosoft/askmydocs-connector-base
defstudio/supercharged-carbon
bernskioldmedia/laravel-matomo