Laravel Microsoft Graph

Queues

When using MsGraph within jobs, commands, or other queued processes, you need to authenticate the user explicitly. Ensure the user model has access_token and refresh_token stored in the database. Use the login method to authenticate the user before making any API calls:

MsGraph::login(User::find(1));
MsGraph::get('me');

Here's an example of how to structure a job that uses MsGraph:

<?php

namespace App\Jobs;

use App\Models\User;
use Dcblogdev\MsGraph\Facades\MsGraph;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;

class ExampleMsGraphJob implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

    protected $user;

    public function __construct(User $user)
    {
        $this->user = $user;
    }

    public function handle(): void
    {
        MsGraph::login($this->user);
        $userData = MsGraph::get('me');
        // Process $userData as needed
    }
}

Dispatch this job with a user instance:

ExampleMsGraphJob::dispatch($user);

This approach ensures that the Microsoft Graph API calls are made with the correct user context, even in background processes.

Copyright © 2006 - 2024 DC Blog - All rights reserved.