在我的 ASP.NET 核心 MVC 2.2 项目中显示 google 日历
Show google calendar within my ASP.NET Core MVC 2.2 project
我只是希望我的用户能够在我的应用程序中访问他们的(不是我的!)google 日历。我不需要他们 google 日历中的任何数据。所以首先我尝试使用一个简单的 iframe,但是 google 阻止了它。
我试过这个:https://developers.google.com/calendar/quickstart/js。它正在工作,但我只能从 google 日历访问数据,但我没有日历视图..
那么显示用户google日历的最简单方法是什么?
您需要了解 X-Frame-Options header 的工作原理。 Google 日历以两种可能的方式响应日历请求:
如果有问题的日历被标记为 Public,返回的响应没有 "X-Frame-Options" header,因此您可以在您的站点中呈现它。
如果有问题的日历未标记为 Public,则响应包括 "X-Frame-Options" header,其值设置为 DENY。根据 HTTP 规范,这意味着您不能在 IFrame 中显示响应,并且假设您使用的是 standards-based 浏览器,您无能为力。
您提到的其他应用程序可能包含 Web 浏览器控件,因此直接呈现日历,这意味着框架选项不会影响它,但没有一个很好的方法在浏览器中模拟它(同样,HTTP 规范的一部分,并且是预期的)。
如果您真的希望能够向他们展示他们的日历,您最好的选择是使用您提到的 API 端点的数据,然后生成您自己的视图。
我只是希望我的用户能够在我的应用程序中访问他们的(不是我的!)google 日历。我不需要他们 google 日历中的任何数据。所以首先我尝试使用一个简单的 iframe,但是 google 阻止了它。
我试过这个:https://developers.google.com/calendar/quickstart/js。它正在工作,但我只能从 google 日历访问数据,但我没有日历视图..
那么显示用户google日历的最简单方法是什么?
您需要了解 X-Frame-Options header 的工作原理。 Google 日历以两种可能的方式响应日历请求:
如果有问题的日历被标记为 Public,返回的响应没有 "X-Frame-Options" header,因此您可以在您的站点中呈现它。
如果有问题的日历未标记为 Public,则响应包括 "X-Frame-Options" header,其值设置为 DENY。根据 HTTP 规范,这意味着您不能在 IFrame 中显示响应,并且假设您使用的是 standards-based 浏览器,您无能为力。
您提到的其他应用程序可能包含 Web 浏览器控件,因此直接呈现日历,这意味着框架选项不会影响它,但没有一个很好的方法在浏览器中模拟它(同样,HTTP 规范的一部分,并且是预期的)。
如果您真的希望能够向他们展示他们的日历,您最好的选择是使用您提到的 API 端点的数据,然后生成您自己的视图。