oauth 2.0 - Google日历API,用于PHP简单的只读请求以获取日历事件


oauth 2.0 - Google calendar API for PHP simple read-only request to get calendar events

我想为一个网站编写一些简单的PHP代码,以便使用Google的日历API V3获得对公共Google日历事件列表的只读访问。我只需要在网页上显示日历中即将发生的事件的列表。我已经阅读了开发人员文档,并查看了入门部分获取事件示例代码,但我有点困惑。我想知道:

  • 是否有一种更简单的方法来做我需要的,避免所有这些OAuth的东西?是否存在未经身份验证的访问方法?

  • 如果没有,看起来我需要在code.google.com/apis/console/为我的应用程序设置访问权限,然后生成一个ApplicationName, ClientID, ClientSecret, RedirectURI和一个DeveloperKey。ApplicationNameDeveloperKey很容易在Google Console中找到。但是对于其他项目,我需要创建一个OAuth 2.0 ClientID,这需要我选择应用程序类型是Web应用程序还是服务帐户。在我的场景中应该是什么?在这种情况下,不需要用户登录,因为我没有请求访问他们的日历——这只是我需要访问的公共日历。

  • 什么是重定向URI以及如何使用它。我该如何设置呢?

  • Google的API示例在会话数据中获取和缓存访问令牌。然后代码注释说不要这样做,而应该使用数据库。严重吗?我真的需要处理缓存访问令牌吗?如果有,在Google API中是否有内置的数据库缓存机制,或者你如何处理这个?

我真的在寻找一个更简单的方法。欢迎您的指导!

谢谢。

我觉得你想太多了。如果您只需要访问公共日历上的事件,那么有一种方法可以做到这一点,而无需调用Google calendar API和所有附加的复杂性。每个公共 Google Calendar都有一个iCal提要,可以在特定的URL上查看,通常形式为:

http://www.google.com/calendar/ical/{OWNER}/public/basic.ics

其中{OWNER}是日历所有者的url编码的电子邮件地址。

您可以通过查看日历设置并滚动到日历详细信息选项卡的底部来查找特定的URL。

在Charles回答的评论中嵌入了一些技巧。无论如何,截至2014年(与谷歌日历v3 API),这是我所做的:
到这里查看v3 API是如何工作的:
https://developers.google.com/google-apps/calendar/v3/reference/events/list试试

在上面链接提供的演示web表单中至少填写以下三个字段:
calendarId:日历所有者的url编码的电子邮件地址。
timeMax: End Time
timeMin: Start Time
(使用此时间格式:2014-05-04T00:00:00-00:00 (Y-m-d T millisecond - offset))

您将看到正在发送以下请求。

GET https://www.googleapis.com/calendar/v3/calendars/{CALENDER_ID}/events?timeMax={start_time}&timeMin={end_time}&key={YOUR_API_KEY}

现在您可以为您的需求定制此请求URL,并从您的代码发送常规GET请求。

p。S—要获取API密钥,请遵循以下步骤:
https://developers.google.com/google-apps/calendar/auth