サービスアカウント認証を使用して、GoogleシートAPIを使用してGoogleシートを作成しています。私はスプレッドシートを作成して、何とか私のチームがそれを開くことを許可します。シートが作成され、私はGoogleシートAPI v4シートを作成してユーザーを招待する
[spreadsheetId] => 1opxZmOf5dEPSLoKD1miMgwJRn643cXip6yCquPYxxx
で応答を受け取るしかし、私はImは、所有者、編集者として追加しても、私のGoogleのアカウントを使用して、ブラウザを介してこのファイルを開くことができませんbeeingてさ
$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);
、作家と読者、Googleのデベロッパーコンソールのプロジェクトの権限で。ブラウザには私が無防備であることが記載されており、許可のために管理者に連絡することができます
何か提案がありますか?ドキュメントを作成し、それにアクセスするための管理方法は誰でも管理していますか?
? goole-api-servicesはどういう意味ですか?また、create for $サービスを追加して、どのように認証されているかを確認することもできます。 – DaImTo
@DalmTo、私は開発者のコンソールで作成されたサービスアカウントを使用しています。それは次のようになります:[email protected] – Mike