Ich muss eine Excel-Datei auf Google Drive lesen. Ich brauche automatisch an Google ohne Aufforderung irgendeiner Form fahren verbinden ... ein Bot Dokument lesen muss ... Ich habe diesen Code:Fehler 404 beim Zugriff auf eine Datei über ein Dienstkonto
$service_account_file = dirname(__FILE__) . '/key-85ac95ab1e62.json';
$spreadsheet_id = 'the_id_inside_the_url_of_the_file';
$spreadsheet_range = 'Sheet1!A1:A1';
putenv('GOOGLE_APPLICATION_CREDENTIALS=' . $service_account_file);
$client = new Google_Client();
$client->useApplicationDefaultCredentials();
$client->addScope(Google_Service_Sheets::SPREADSHEETS);
$service = new Google_Service_Sheets($client);
$result = $service->spreadsheets_values->get($spreadsheet_id, $spreadsheet_range);
var_dump($result->getValues());
etwas schief geht ... ich erklären, wie ich erzeugt die key-*.json
-Datei:
Auf Google Console Developer
Ich habe auf Dienstkonto geklickt, dann habe ich ein neues erstellt und die JSON heruntergeladen .. diese JSON ist die key-*.json
Datei. Ich habe diese Datei in meinem Projekt hinzugefügt (wie Sie in der ersten Zeile sehen können) ... Hier kopierte ich die Account Service Id
, die ich später verwenden werde ...
Jetzt erkläre ich, wie ich die spreadheet_id
bekomme ... Ich ging auf meiner Google Drive, rechtsklicken Sie auf die Datei und ich teilte es mit der Account Service Id
(kopiert zuvor) und eine URL wurde generiert ... wenn ich die URL im Browser kopieren und hinterher geht alles funktioniert aber nicht im Projekt ... ich nehme die spreadsheet_id von url
dies ist der Fehler, den ich erhalten:
PHP Fatal error: Uncaught Google_Service_Exception: {
"error": {
"code": 404,
"message": "Requested entity was not found.",
"errors": [
{
"message": "Requested entity was not found.",
"domain": "global",
"reason": "notFound
}
],
"status": "NOT_FOUND
}
}
Was ist los? die Datei existiert und ich kann es im Browser sehen mit der gleichen URL, die ich in der PHP-Datei verwende ... so denke ich, es ist eine Verbindung oder Anmeldung Problem ...
keine Idee?
Sie benötigen ein Dienstkonto in der Google API und verwenden dieses Konto zum Herstellen einer Verbindung. Die API-Dokumentation erklärt alles mit Beispielen. – ADyson
Ich habe einen Dienst-Account ... und ich lese die Dokumente .... Der Code, den ich auf Post eingefügt habe, stammt aus der Dokumentation ... aber es ist nicht das, was ich brauche – Ciccio
Wenn Sie ein Dienstkonto haben, warum ist es dann Nach Benutzeranmeldeinformationen fragen? Wo haben Sie dieses Codebeispiel genau gefunden? – ADyson