上記のコードをhttps://developers.google.com/drive/delegationから使用して、特定の Google ドライブ アカウントにアクセスしています。
function buildService($userEmail) {
global $DRIVE_SCOPE, $SERVICE_ACCOUNT_EMAIL, $SERVICE_ACCOUNT_PKCS12_FILE_PATH;
$key = file_get_contents($SERVICE_ACCOUNT_PKCS12_FILE_PATH);
$auth = new Google_AssertionCredentials(
$SERVICE_ACCOUNT_EMAIL,
array($DRIVE_SCOPE),
$key);
$auth->sub = $userEmail;
$client = new Google_Client();
$client->setUseObjects(true);
$client->setAssertionCredentials($auth);
return new Google_DriveService($client);
}
正常に動作しますが、オブジェクトの作成が非常に遅くなります。サーバーへの各リクエストでサービスを再作成しないように、サービスをセッションに保存したいと考えています。シリアライズ不可。何か案が?