嵌入Google日历只有登录我网站的用户(不一定是通过Google)才能看到

时间:2016-05-12 17:49:58

标签: .net authentication google-calendar-api google-oauth google-oauth2

我有一个.NET页面,用户可以通过各种方法登录,包括Google,Facebook,Twitter,以及直接在网站上创建用户名和密码。我有一个页面,只有登录的用户才能看到嵌入了日历的页面。

目前此日历不公开,只有我授权的Google用户才能看到。我当然可以把它公开,但是一旦有人知道日历的网址,他们就可以去那里看看。我也可以与通过谷歌在我的网站上注册的任何人分享,但是通过Facebook或其他方式登录的用户不会看到它。

问题:如何以编程方式接收日历并将其显示给以任何方式登录我网站的任何人,而不必将其公开?

对我来说有意义的两种方法是:

  1. 使用我自己的网站身份验证,可能是从服务器端到 检索日历并以某种方式显示它而不给用户 他们可以在其他地方使用Google身份验证
  2. 向非Google用户提供某种临时Google授权 除了查看日历之外,什么都不好。
  3. 下面是以日历标准嵌入为例的页面。

    @{
        ViewBag.Title = "Calendar";
    }
    
    <h2>Calendar</h2>
    
    
    <iframe src="https://calendar.google.com/calendar/embed?src=sharing.thelangschool.org_hrq83e34uldebnrcd4hptop0ps%40group.calendar.google.com&ctz=America/New_York" style="border: 0" width="800" height="600" frameborder="0" scrolling="no"></iframe>
    

1 个答案:

答案 0 :(得分:0)

您应该使用服务帐户https://developers.google.com/identity/protocols/OAuth2ServiceAccount并与此服务帐户的电子邮件地址共享您的日历。然后,您的应用可以使用服务帐户的凭据来显示事件。