在网站中为多组用户嵌入交互式Google日历

时间:2012-12-07 20:36:35

标签: oauth-2.0 google-calendar-api

我正在考虑在我的网站中嵌入谷歌日历以实现以下目标,并且想知道这是否可以在谷歌日历中使用。否则我必须找到另一种解决方案。

我有一组用户和一个超级用户,其余的是常规用户,如下所示:

  • A组
    • 超级用户1
    • 普通用户1
    • 普通用户2
  • B组
    • 超级用户2
    • 普通用户3
    • 普通用户4

每个小组都有自己的日历。每个群组中的用户都无法看到其他群组的日历。只能看到他们自己的小组日历。

每个群组的超级用户都可以访问日历(添加,修改,删除),并且能够控制常规用户对其群组的访问权限。 (只读?读/写等)

所有用户都在我的网站上注册,因此我想只使用一个Google日历帐户(我自己的帐户)为每个群组创建日历。这导致了一个将我的网站验证为谷歌API的问题。我需要验证过程是自动的,远离用户隐藏,并在服务器端完成。

我的网站是使用PHP / Mysql构建的

Q1:
我已经尝试了谷歌提供的Javascript客户端库,但它需要用户输入用户名/密码才能登录谷歌,以便身份验证(OAuth2)过程可以正常工作。如前一段所述,我只希望用户登录我的网站,他们不需要再次登录谷歌帐户。这应该在服务器端完成。

我甚至创建了一个预填充信息的登录表单(用户隐藏,用户名/密码将显示在"查看页面源")并将请求发送到{{3}一旦用户成功登录我的网站,并使表单自动提交。但是,这会导致跨域问题。

Q2: 我可能在我的网站上注册了数十万个团体。每组可能有几百个用户。一个谷歌帐户可以创建多个日历吗?

Q3: 将日历嵌入我的网站后,它似乎是只读的。是否可以使其具有交互性,以便每个组中的超级用户可以添加/删除/修改事件?

非常感谢任何想法/建议。

谢谢

2 个答案:

答案 0 :(得分:0)

没有答案?看起来你的问题很简单。如果我理解正确,您希望从多个Google帐户/用户访问日历。每个用户都需要授权此访问权限,但他们只需要这样做一次。例如,您可以生成这些请求并通过电子邮件发送出去。当用户授予权限时,Google会将授权代码转发给您指定的callback_uri。 授权代码非常不稳定。它用于向Google请求明显持续无限期的令牌。因此,不要求用户不断登录Google。

在Google的calendar / simple.php示例中。令牌存储为SESSION变量。即使令牌是持久的,SESSION变量也不是。每次SESSION变量到期时,用户都必须授予权限。将持久数据存储在volatile变量中是荒谬的,可能会给OAuth2令牌机制留下错误的印象。

我花了很多时间编写我在其他地方找不到的文档。如果您认为它有帮助,请查看:http://www.tqis.com/eloquency/googlecalendar.htm

答案 1 :(得分:0)

Google日历中无法提出您要求的内容。

如果您希望支持数千个群组,并且每个群组都需要自己的日历,那么您说您需要数千个具有访问控制功能的日历,并且您需要对日历进行身份验证才能保持透明。