Google Calendar PHP Api - 检查用户是否具有编辑权限

时间:2014-12-10 15:45:54

标签: php google-calendar-api google-api-client

我有一个网站,用户可以授予该网站编辑其Google日历的权限。 在网站的主页上显示公司日历中的事件列表,事件是可编辑的。

问题在于,网站上的所有用户都无权在日历中编辑活动(即他们的Google帐户)。有没有办法检查用户是否有权通过PHP API client来编辑日历? 为了澄清,所有用户都不应该有权编辑日历。如果他们的Google帐户具有访问权限,则应显示编辑工具。否则他们只会得到活动清单。

在这种情况下,日历是公开的,因此每个人都应该能够看到事件。
(如果它也适用于非公开日历也不会受到伤害,但我想这更棘手。需要一个备用服务帐户或其他东西。)

我目前正在使用list methodEvents Resource来获取活动。

1 个答案:

答案 0 :(得分:1)

Calendar list get返回calendar list resource

有一个叫做访问角色的东西

accessRole string经过身份验证的用户在日历上具有的有效访问角色。只读。

可能的值是:

  • “freeBusyReader” - 提供对忙/闲信息的读访问权限。
  • “reader” - 提供对日历的读取权限。私人活动将显示给具有读者访问权限的用户,但会隐藏活动详细信息。
  • “writer” - 提供对日历的读写访问权限。具有编写者访问权限的用户将看到私有事件,并且可以看到事件详细信息。
  • “owner” - 提供日历的所有权。此角色具有writer角色的所有权限,并具有查看和操作ACL的附加功能。

php代码是这样的:

calendarListEntry = $service->calendarList->get('calendarId');

注意:使用服务帐户会比脚本更容易访问日历,您可以使用脚本编辑日历而无需访问用户帐户。