Google云端硬盘:file_put_contents(token.json):无法打开流:权限被拒绝

When I run this code firstly show a message with the key key="4/XXXXXXX", later put this key in the code, run again and appear this message:

Warning: file_put_contents(token.json): failed to open stream: Permission denied in /var/www/html/drive1/index8.php on line 17

Warning: file_get_contents(token.json): failed to open stream: Permission denied in /var/www/html/drive1/index8.php on line 19

Fatal error: Uncaught exception 'Google_AuthException' with message 'Could not json decode the token' in /var/www/html/drive1/google-api-php-client/src/auth/Google_OAuth2.php:162 Stack trace: #0 /var/www/html/drive1/google-api-php-client/src/Google_Client.php(174): Google_OAuth2->setAccessToken(NULL) #1 /var/www/html/drive1/index8.php(19): Google_Client->setAccessToken(false) #2 {main} thrown in /var/www/html/drive1/google-api-php-client/src/auth/Google_OAuth2.php on line 162

Does anyone know what the problem is? This is the code:

<?php

require_once 'google-api-php-client/src/Google_Client.php';
require_once 'google-api-php-client/src/contrib/Google_DriveService.php';

$drive = new Google_Client();

$drive->setClientId('XXXXX');
$drive->setClientSecret('XXXXXX');
$drive->setRedirectUri('urn:ietf:wg:oauth:2.0:oob');
$drive->setScopes(array('https://www.googleapis.com/auth/drive'));

$gdrive = new Google_DriveService($drive);

$_GET['code']= '4/XXXXX';

file_put_contents('token.json', $drive->authenticate());

$drive->setAccessToken(file_get_contents('token.json'));

$doc = new Google_DriveFile();

$doc->setTitle('Test Drive');
$doc->setDescription('Document');
$doc->setMimeType('text/plain');

$content = file_get_contents('drive.txt');

$output = $gdrive->files->insert($doc, array(
      'data' => $content,
      'mimeType' => 'text/plain',
    ));

print_r($output);

?>

The code is trying to write to the "token.json" file. But the server is preventing that because of unsufficient permissions. You should chmod the directory where this code is in to 777.

Maybe this website helps https://www.maketecheasier.com/file-permissions-what-does-chmod-777-means/

You can also skip the writing to the file and replace those two lines with this:

$drive->setAccessToken($drive->authenticate());