Can't access OneDrive via API (Laravel)
Alessio Vietri
6
Reputation points
I'm trying to connect to my OneDrive and upload/download files to/from it, but I always get "User's mysite not found" exception and I don't know why. I'm not using frontend login. This is my code:
$tenantId = '-----';
$clientId = '-----';
$clientSecret = '-----';
$guzzle = new \GuzzleHttp\Client();
$url = 'https://login.microsoftonline.com/' . $tenantId . '/oauth2/token?api-version=1.0';
$token = json_decode($guzzle->post($url, [
'form_params' => [
'client_id' => $clientId,
'client_secret' => $clientSecret,
'resource' => 'https://graph.microsoft.com/',
'grant_type' => 'client_credentials',
],
])->getBody()->getContents());
$accessToken = $token->access_token;
$graph = new \Microsoft\Graph\Graph();
$graph->setBaseUrl("https://graph.microsoft.com/")
->setApiVersion("v1.0")
->setAccessToken($accessToken);
try {
$userId = '-----';
$user = $graph->createRequest("GET", "/users/".$userId."/drive/root")
->execute();
$graph->createRequest("PUT", "/users/".$userId."/drive/root/children/robots.txt/content")
->upload('../public/robots.txt');
dd('OK');
}
catch (\Exception $e) {
dd($e);
}
Any suggestion? Thanks in advance!
Sign in to answer