Google sheets API v4 Arbeitsblatt erstellen und Benutzer einladen
Ich verwende eine Dienstkontoauthentifizierung, um mithilfe der Google Sheets-API ein Google Sheet zu erstellen. Ich möchte eine Tabelle erstellen und meinem Team irgendwie erlauben, sie zu öffnen.
$private_key = file_get_contents($rootDir . '/config/googleApiCredentials.p12');
$client_email = '[email protected]';
$scopes = implode(' ', ["https://www.googleapis.com/auth/drive"]);
$credentials = new \Google_Auth_AssertionCredentials(
$client_email,
$scopes,
$private_key
);
// tried once with additional constructor params:
// $privateKeyPassword = 'notasecret',
// $assertionType = 'http://oauth.net/grant_type/jwt/1.0/bearer',
// $sub = '[email protected]
$this->googleClient = new \Google_Client();
$this->googleClient->setAssertionCredentials($credentials);
if ($this->googleClient->getAuth()->isAccessTokenExpired()) {
$this->googleClient->getAuth()->refreshTokenWithAssertion();
}
$service = new \Google_Service_Sheets($this->googleClient);
$newSheet = new \Google_Service_Sheets_Spreadsheet();
$newSheet->setSpreadsheetId('34534534'); // <- hardcoded for test
$response = $service->spreadsheets->create($newSheet);
print_r($response);
Das Blatt wird gerade erstellt, ich erhalte eine Antwort mit
[spreadsheetId] => 34534534
Ich kann diese Datei jedoch nicht über den Browser mit dem Google-Konto öffnen, selbst wenn ich als Eigentümer, Herausgeber, Verfasser und Leser in der Entwicklerkonsole von Google mit Projektberechtigungen hinzugefügt wurde. Der Browser gibt an, dass ich nicht eingeschätzt bin und mich an den Administrator wenden kann, um Berechtigungen zu erhalten.
Irgendwelche Vorschläge? Hat es jemand geschafft, Dokumente zu erstellen und jedem "Menschen" Zugriff darauf zu gewähren?