Ich bin mir bewusst, dass es Hunderte von Posts zu Variationen dieses Themas gibt, und ich habe die letzten Stunden damit verbracht, sie durchzulesen, aber ich kann das einfach nicht verstehen Arbeit.Hochladen von Dateien in mein Google Drive-Konto mit PHP
Ich möchte Dateien von meinem Server über mein Google Drive-Konto auf mein Google Drive-Konto hochladen. Dazu verwende ich das Google Drive SDK (ich verwende v2.2.0).
Das Skript läuft gut, es scheint irgendwo hochzuladen und gibt sogar eine Datei-ID zurück (immer die gleiche), aber es wird nicht in meinem Google Drive angezeigt und ich erhalte die folgende Meldung, wenn ich die Datei anschaue :
{
"error": {
"errors": [
{
"domain": "global",
"reason": "notFound",
"message": "File not found: <FILE_ID>.",
"locationType": "parameter",
"location": "fileId"
}
],
"code": 404,
"message": "File not found: <FILE_ID>."
}
}
Ich habe ein Dienstkonto eingerichtet und die JSON-Anmeldeinformationen heruntergeladen. Mein Ziel ist es, eine Funktion zum Hochladen von Dateien zu erstellen, die auf meinem Server gespeichert sind. Daher benötige ich keinen oAuth-Zustimmungsbildschirm.
Hier ist der Test-Code bisher:
<?php
include_once __DIR__ . '/vendor/autoload.php';
putenv('GOOGLE_APPLICATION_CREDENTIALS=../../../keys/MyProject-xxxxxxxxxxxx.json');
$client = new Google_Client();
$client->addScope(Google_Service_Drive::DRIVE);
$client->useApplicationDefaultCredentials();
$client->setApplicationName("MyApplication");
$client->setScopes(['https://www.googleapis.com/auth/drive.file']);
$file = new Google_Service_Drive_DriveFile();
$file->setName(uniqid().'.jpg');
$file->setDescription('A test document');
$file->setMimeType('image/jpeg');
$data = file_get_contents('cat.jpg');
$service = new Google_Service_Drive($client);
$createdFile = $service->files->create($file, array(
'data' => $data,
'mimeType' => 'image/jpeg',
'uploadType' => 'multipart'));
echo("<a href='https://www.googleapis.com/drive/v3/files/".$createdFile->id."?key=<MY_API_KEY>&alt=media' target='_blank'>Download</a>");