当我运行此代码时,首先使用密钥=" 4 / XXXXXXX"显示一条消息,稍后将此密钥放入代码中,再次运行并显示以下消息:
警告:file_put_contents(token.json):无法打开流: 第17行/var/www/html/drive1/index8.php中的权限被拒绝
警告:file_get_contents(token.json):无法打开流: 第19行/var/www/html/drive1/index8.php中的权限被拒绝
致命错误:未捕获的异常' Google_AuthException'与消息 ' json无法解码令牌'在 /var/www/html/drive1/google-api-php-client/src/auth/Google_OAuth2.php:162 堆栈跟踪:#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}引入 /var/www/html/drive1/google-api-php-client/src/auth/Google_OAuth2.php 在第162行
有谁知道问题是什么?这是代码:
<?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);
?>
答案 0 :(得分:0)
代码正在尝试写入“token.json”文件。但是由于权限不足,服务器正在阻止这种情况。您应该将此代码所在的目录chmod到777。
也许这个网站有助于https://www.maketecheasier.com/file-permissions-what-does-chmod-777-means/
您也可以跳过写入文件并用以下内容替换这两行:
$drive->setAccessToken($drive->authenticate());