如何模拟用户并使用服务帐户代表其插入日历?
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);
所以我的问题暂时解决了,我还在想的唯一问题是如何使用服务帐户凭据模拟用户?嗯,等到真正有用的时候再考虑
我正在尝试创建日历并使用服务帐户与我组织的用户共享它们。
我想要获得的是能够从我的网站代码(使用服务帐户)和常规 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);
所以我的问题暂时解决了,我还在想的唯一问题是如何使用服务帐户凭据模拟用户?嗯,等到真正有用的时候再考虑