我正在尝试使用服务帐户将文件上载到google drive,但我遇到了如下错误
(403)权限不足错误
尽管从驱动器中提取文件列表工作正常。
require_once 'google-api-php-client-master/src/Google/autoload.php';
require_once 'google-api-php-client-master/src/Google/Service.php';
session_start();
$client = new Google_Client();
$client->setAuthConfigFile('client_secrets.json');
$service_account_name = '251181790499-1en2vs6jjovga1egu15tphm1m7g44m60@developer.gserviceaccount.com';
$key_file_location = 'key.p12'; //key.p12
$key = file_get_contents($key_file_location);;
if (isset($_SESSION['access_token']) && $_SESSION['access_token']) {
$client->setAccessToken($_SESSION['access_token']);
//$client->addScope(Google_Service_Drive::DRIVE_METADATA_READONLY);
//$client->setScopes(array('https://www.googleapis.com/auth/drive'));
$cred = new Google_Auth_AssertionCredentials(
$service_account_name,
array('https://www.googleapis.com/auth/drive'),
$key);
$client->setAssertionCredentials($cred);
$client->setAccessType("offline");
$file = new Google_Service_Drive_DriveFile();
$file->setTitle(uniqid().'.jpg');
$file->setDescription('A test document');
$file->setMimeType('image/jpeg');
$data = file_get_contents('a.jpg');
$service = new Google_Service_Drive($client);
$createdFile = $service->files->insert($file, array(
'data' => $data,
'mimeType' => 'image/jpeg',
'uploadType' => 'multipart'
));
print_r($createdFile);
}
else
{
$redirect_uri = 'http://' . $_SERVER['HTTP_HOST'] . '/googledrive/oauth2callback.php';
header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL));
}
我在论坛上回顾了类似的问题,并尝试了一些建议,但似乎什么都不起作用。
代码有什么问题吗?
将Google Drive范围更改为
Google_Service_Drive::DRIVE
在PHP中
$client->addScope(Google_Service_Drive::DRIVE);
我们还需要能够生成直接链接到他们的照片,视频等。 我们已经成功地以这种方式与Dropbox集成,并希望提供谷歌驱动器作为替代方案。这些场景在Google Drive上可能吗?
使用Quickstart应用程序iOS我能够让Google Drive浏览文件和文件夹、显示图标和缩略图以及下载文件。但是,在上传时,我会遇到以下错误: 发生错误:错误域=com。谷歌。GTLRErrorObjectDomain代码=403“权限不足”用户信息={GTLRStructuredError=GTLRErrorObject 0x61800024ff90:{消息:“权限不足”错误:[1]代
从Gmail的电子邮件附件上载到Google Drive: 朋友们大家好,如果我删除文件目录中的token.pickle和token_drive.pickle文件(这些文件是与google cloud分开创建的)并运行代码: ”ResumableUploadError: 这似乎是Gmail和Drive同时身份验证的问题,因为media\u body和file\u元数据返回一个值,但我无法解决这个问
我一直在尝试使用服务帐户访问Calendar v3 API。我已经添加了范围https://www.googleapis.com/auth/calendar并与该服务帐户的电子邮件地址共享了我的日历。 我也一直在用同一个服务帐户访问https://www.googleapis.com/auth/coordinate scope,它工作得很好。 此外,尝试撤销访问权限,如这里所述:为什么谷歌日历AP
我从一些来自Google的App Engine的示例代码开始。 我的应用程序需要使用目录API和报表API从谷歌管理SDK。 我已经在API控制台中创建了一个项目,并在Services中打开了Admin SDK。 我将作用域(与下面代码中使用的作用域相同)添加到我域的Google cPanel中高级工具的“Manage API client Access”部分。 null 之后,对Reports