Laravel Developer
David Carr
Web Developer
All Posts Archives Categories Authors
About Books Packages Templates Contact
Blog
All Posts Archives Categories Authors
About Books Packages Templates Contact
Laravel Microsoft Graph
Laravel Packages
Laravel Microsoft Graph Laravel Xero Laravel Sent Emails Laravel Dropbox Laravel Box Laravel Companies House Laravel Countries Laravel Eventbrite Laravel Blade Components
PHP Packages
PDO Wrapper PHP find and replace JSON SQL Import IMAP Export CSV Pagination
v3 v4
Navigation
  • Introduction
  • Install
  • Delta
  • MsGraph
    • Is Connected
    • Disconnect
    • Middleware
    • Queues
    • Login with MsGraph
    • Contacts
    • Emails
    • Files
    • Filesystem
  • MsGraph Admin
    • Middleware
    • Contacts
    • Emails
Navigation
  • Introduction
  • Install
  • Delta
  • MsGraph
    • Is Connected
    • Disconnect
    • Middleware
    • Queues
    • Login with MsGraph
    • Contacts
    • Emails
    • Files
    • Filesystem
  • MsGraph Admin
    • Middleware
    • Contacts
    • Emails

MsGraph

A routes example:

When using with existing users then expect a user to be logged in and use auth middleware

Route::group(['middleware' => ['web', 'auth']], function(){
    Route::get('msgraph', function(){

        if (! MsGraph::isConnected()) {
            return redirect('msgraph/connect');
        } else {
            //display your details
            return MsGraph::get('me');
        }

    });

    Route::get('msgraph/connect', function(){
        return MsGraph::connect();
    });
});

Or using a middleware route, if the user does not have a graph token then automatically redirect to get authenticated:

Route::group(['middleware' => ['web', 'MsGraphAuthenticated']], function(){
    Route::get('msgraph', function(){
        return MsGraph::get('me');
    });
});

Route::get('msgraph/connect', function(){
    return MsGraph::connect();
});

Once authenticated you can call MsGraph:: with the following verbs:

MsGraph::get($endpoint, $array = [], $headers, $id = null)
MsGraph::post($endpoint, $array = [], $headers, $id = null)
MsGraph::put($endpoint, $array = [], $headers, $id = null)
MsGraph::patch($endpoint, $array = [], $headers, $id = null)
MsGraph::delete($endpoint, $array = [], $headers, $id = null)

The second param of array is not always required, its requirement is determined from the endpoint being called, see the API documentation for more details.

The third param $headers is a collection of header options, useful for passing additional header options as required.

$id is optional when used the access token will be attempted to be retrieved based on the id. When omitted the logged-in user will be used.

These expect the API endpoints to be passed, the URL https://graph.microsoft.com/beta/ is provided, only endpoints after this should be used ie:

MsGraph::get('me/messages')

DCBlog

Practical tutorials, code snippets, and in-depth guides for modern web development. Helping developers build better applications since 2009.

Subscribe to my newsletter for the latest updates on my books and digital products.

© 2009 - 2025 DC Blog. All rights reserved.

Privacy Policy • Terms of Service