Google嵌入式iframe日历无法始终显示事件

时间:2018-09-25 19:06:12

标签: iframe google-calendar-api

我已经为与之合作的公司建立了一个内部网。内联网要求用户使用其Google帐户登录才能访问。因此,我还使用默认的iframe嵌入为Google日历设置了嵌入代码,并使用了一些php换出了日历以查看用户的电子邮件,以向他们显示适当的日历(例如:以joe身份登录)登录时,@ gmail.com将使用joe@gmail.com的地址填充日历,而jill@gmail.com将使用jill@gmail.com的地址填充日历。)

这对于大多数人来说效果很好,但是某些浏览器会遇到一些麻烦,并且错误非常不一致,这使得故障排除变得很困难。另外,当我检查源代码时,正确的电子邮件会显示在iframe中,因此php交换可能不是问题。

示例1:我在Windows 10上使用Firefox登录。日历按预期工作。

示例2:我在Windows 10上使用Chrome登录。显示了日历,但未显示事件。没有错误。

示例3:#1号同事在Windows 10上使用Chrome登录。日历按预期工作。

示例4 :#2同事在Windows 10上使用Chrome登录。尽管源代码明确指出,他仍收到“您无权查看一个或多个日历”错误。毫无疑问,他只能访问他的个人日历(他也已在Google本身上登录了自己的Google帐户,因此也没有冲突)。

示例5::我在Windows 10上以隐身模式使用Chrome登录。日历可以正常工作。

示例6:我在Windows 10上使用Edge登录。日历在初始登录时有效,但是当我导航到另一页时,日历仍然显示,但所有事件消失而没有显示的错误。这一直持续到我再次登录。

示例7:#3号同事在Mac OSX上使用Chrome登录。日历可以在初始登录时使用,但是当她导航到另一个页面时,日历仍然显示,但是所有事件都消失了,没有显示任何错误。这一直持续到她再次登录。 (这在她使用的所有浏览器中都是一致的)

示例8:#4号同事在Mac OSX上使用Chrome登录。日历可以正常工作。

最终,我只是迷失了从哪里开始寻找这些错误并缩小原因的范围。清除缓存似乎有时仅能起作用,而有时甚至会导致弹出另一个错误。有谁知道是什么原因导致这些不一致的错误,以及从哪里开始寻找解决此问题的方法?

1 个答案:

答案 0 :(得分:1)

当通过其他浏览器使用嵌入式iframe日历时,这仍然是intermitttent issue

以下是针对此问题的一些建议解决方案:

  • 清除缓存和cookie
  • 在集成日历之前,请从how to embed on your website上的Google日历设置中单击 自定义 按钮,然后尝试浏览。
  • 在此github post中,rullzer建议采用一种更清洁的方法来处理IFRAME上的cookie,以便将所有cookie迁移为宽松的相同站点cookie。

      

    这只会使cookie更加安全。另外,它可以确保   您在某个人的某个地方嵌入了一些公共页面   事情。 (因为IFRAME不会发送任何cookie,因此会导致   “ publicpage”呈现)。