如何模拟用户并使用服务帐户代表其插入日历?

How to impersonate a user and insert a calendar in its behalf using service account?

我正在尝试创建日历并使用服务帐户与我组织的用户共享它们。
我想要获得的是能够从我的网站代码(使用服务帐户)和常规 google 日历 Web 界面管理创建的日历。
所以我想我可以创建一个愚蠢的用户帐户(使用凭据),用服务帐户模拟它,然后创建和共享我的日历并从我的 weba pp 代码和 google 常规用户界面管理事件。
这是正确的方法吗?我错过了什么吗?
如果我最后的猜测是正确的,我如何使用 laravel 和 google-api-clients for PHP?

来实现它

谢谢你的建议

在沉睡之后,我意识到没有必要冒充用户并插入新日历。 要从官方 Web 界面管理服务帐户日历,您只需将其共享给 "dumb user"

的所有者权限即可

像这样:

//create calendar
$calendar = new Google_Service_Calendar_Calendar();
$calendar->setSummary('calendarname');
$calendar->setTimeZone('Europe/Berlin');
$service = new Google_Service_Calendar();
$createdCalendar = $service->calendars->insert($calendar);

//share it with your dumb user 
$rule = new Google_Service_Calendar_AclRule();
$scope = new Google_Service_Calendar_AclRuleScope();
$scope->setType("user");
$scope->setValue('dumbuser@organization.com');
$rule->setScope($scope);
$rule->setRole("owner");
$createdRule = $service->acl->insert(createdCalendar->getId(), $rule);

所以我的问题暂时解决了,我还在想的唯一问题是如何使用服务帐户凭据模拟用户?嗯,等到真正有用的时候再考虑