I can't find any practical examples of how to apply logging to graph requests. When things don't work as expected it's really handy to be able to see what you are actually sending and receiving from the API.
I've tried the following but it crashes trying to create the client:
$this->tokenRequestContext = new AuthorizationCodeContext(
$this->config['tenant_id'],
$this->config['app_id'],
$this->config['client_secret_value'],
'NOT_AUTHENTICATED', // Auth code dummy value
$this->urlGenerator->generate('ms365_login_callback', [], UrlGeneratorInterface::ABSOLUTE_URL),
);
$tokenCache = new UserAccessTokenCache($this->tokenRequestContext); // Custom cache
// Create the default handler stack
$handlerStack = GraphClientFactory::getDefaultHandlerStack();
// Add the log handler
$handlerStack->push(Middleware::log(
$this->logger,
new \GuzzleHttp\MessageFormatter('{req_headers} - {req_body} - {res_headers} - {res_body}')
));
$adapter = new GraphRequestAdapter(
GraphPhpLeagueAuthenticationProvider::createWithAccessTokenProvider(
GraphPhpLeagueAccessTokenProvider::createWithCache(
$tokenCache,
$this->tokenRequestContext,
self::AZURE_SCOPES
)
),
GraphClientFactory::createWithMiddleware($handlerStack)
);
$this->graphServiceClient = GraphServiceClient::createWithRequestAdapter($adapter);
I can't find any practical examples of how to apply logging to graph requests. When things don't work as expected it's really handy to be able to see what you are actually sending and receiving from the API.
I've tried the following but it crashes trying to create the client:
Any help with this would be very handy.